Advanced Programming

Ramazan Ozgur Dogan · Tue, 27 Jan 2026

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:

  1. Process text and clean data using regular expressions.
  2. Perform debugging and exception handling in programs.
  3. Apply the core principles (classes, encapsulation) and advanced concepts (inheritance, polymorphism, abstract classes) of object-oriented programming.
  4. Implement thread-based and asynchronous programming.
  5. Package and run applications using modern software development tools (e.g., Docker).
  6. Develop model classes by understanding the OOP approach on PyTorch used in AI and data science.
  7. Build reusable and maintainable software by applying design patterns.
  8. 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

Ramazan Ozgur Dogan

Academic blog of Asst. Prof. Ramazan Özgür Doğan — AI researcher at Trabzon University. Deep learning, medical imaging, and beyond.

Contents
Share