Course Information
| Course Code | YPZ209 |
| Program | Artificial Intelligence Engineering |
| Language | Turkish |
| Level | Undergraduate |
| Type | Compulsory |
| Prerequisites | None |
| Theory | 3 Hours |
| Practice | 1 Hour |
| Laboratory | — |
| Credits | 3.50 |
| ECTS | 4.00 |
| Delivery | Face-to-face |
| Instructor | Asst. Prof. Ramazan Özgür Doğan |
Course Objective
This course aims to teach students the principles of object-oriented programming (OOP) in depth and to build advanced skills in algorithm design and high-level programming languages. Through hands-on practice, students learn abstract data types, inheritance, polymorphism, multithreaded programming, debugging, testing, and text processing with regular expressions. In addition, students gain insight into the computational performance of data science and AI libraries (e.g., NumPy, Pandas, PyTorch) and practice building applications with modern software development tools (e.g., Docker).
Course Content
Object-oriented programming; inheritance, polymorphism, and abstract classes; debugging and exception handling; text processing with regular expressions; multithreaded programming; project management with GitHub; application containerization with Docker; OOP and AI/data-science applications on PyTorch; and design patterns.
Weekly Schedule
| Week | Topic |
|---|---|
| 1 | Introduction to Object-Oriented Programming |
| 2 | Inheritance I — Fundamentals & Project Sharing/Management on GitHub |
| 3 | Inheritance II — Multiple Inheritance and super() |
| 4 | Polymorphism |
| 5 | Method Overriding and Method Overloading |
| 6 | Abstract Classes and Interfaces (Abstract Base Classes) |
| 7 | Exception Handling and Debugging |
| 8 | Regular Expressions — Text Processing and Data Cleaning |
| 9 | Midterm Exam |
| 10 | Thread-Based Programming — Managing Multiple Threads |
| 11 | Containerizing Python Applications with Docker |
| 12 | OOP in PyTorch I — Model Classes and Module Inheritance |
| 13 | OOP in PyTorch II — Advanced Structures and AI/Data-Science Applications |
| 14 | Design Patterns — Singleton, Factory, and Observer Examples |
| 15 | Term Project Submission and Evaluation |
| 16 | Final Exam |
Assessment
| Component | Weight |
|---|---|
| Final Exam | 50% |
| Midterm Exam | 25% |
| Project | 25% |
Course Learning Outcomes
Upon successful completion of this course, students will be able to:
- Process text and clean data using regular expressions.
- Perform debugging and exception handling in programs.
- Apply the core principles (classes, encapsulation) and advanced concepts (inheritance, polymorphism, abstract classes) of object-oriented programming.
- Implement thread-based and asynchronous programming.
- Package and run applications using modern software development tools (e.g., Docker).
- Develop model classes by understanding the OOP approach on PyTorch used in AI and data science.
- Build reusable and maintainable software by applying design patterns.
- Deepen their understanding of the development process through hands-on practice.
Recommended Textbooks
- Ceder, N. (2025). The Quick Python Book (4th ed.). Manning.
- Gaddis, T. (2021). Starting Out with Python (5th ed.). Pearson.
- Liang, Y. D. (2013). Introduction to Programming Using Python. Pearson.
- Sweigart, A. (2019). Automate the Boring Stuff with Python. No Starch Press.