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 and distributing applications with modern software development tools (e.g., PyInstaller).
Course Content
Object-oriented programming; inheritance, polymorphism, and abstract classes; debugging and exception handling; text processing with regular expressions; multithreaded programming; desktop GUI development with PySide6; application packaging and distribution with PyInstaller; 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 and Deriving Our Own Widgets |
| 3 | Inheritance II — super(), Method Overriding, MRO, and Multiple Inheritance |
| 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 | Packaging and Distributing Applications with PyInstaller |
| 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 distribute applications using modern software development tools (e.g., PyInstaller).
- 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.
Additional Resources
- Object-Oriented Programming Course — Damian Gordon
- Object-Oriented Python — Avi Kak, Purdue University (PDF)
- BTK Akademi
Course Materials
Interactive lecture slides are available at the link below.