Object-Oriented Programming (CAS1102-02, Fall 2026)

Learn to write clean, readable, and maintainable software.

Instructor: Yonghyeon Lee

Course Overview

This course introduces object-oriented programming in Python and C++. Topics include classes and objects, abstraction, encapsulation, inheritance, polymorphism. Through hands-on code, students learn to build modular, reusable, and maintainable software.

Syllabus

Course Object Oriented Programming
Term Fall 2026
Meeting times 목 7,8,9 (Thursday 3 ~ 6pm)
Location Songdo Campus (I자A102)
Contact yonghyeon.lee@yonsei.ac.kr

Prerequisites

  • Introductory programming experience (variables, control flow, functions)

Learning outcomes

By the end of the course, students should be able to:

  • Understand and implement the fundamentals of Python and C++ needed for future AI research.
  • Understand how the core principles of object-oriented programming—abstraction, encapsulation, inheritance, and polymorphism—are implemented in Python and C++.
  • Design and develop complex software that is readable, modular, and maintainable using object-oriented programming.

Grading

Component Weight
Programming Assignments 15%
Quiz 50%
Final project 35%

Policies

Late work. Assignments submitted after the deadline may receive a penalty unless an extension was approved in advance.

Collaboration. Discuss ideas with classmates, but submit your own work unless an assignment explicitly allows pairs or teams.

AI usage. You may discuss ideas with AI tools and use them for writing help. Submitted work must still be yours—you are here to learn, and learning requires doing the work yourself. Acknowledge AI assistance when it materially helped you.

Academic integrity. Follow your institution’s honor code. Cite sources and acknowledge help received.

Lecture Schedule

  • Slide, source code, and assignment links will be posted as materials become available.
  • Each lecture is planned for one week, though the pace may vary.
Week Lecture Slides
W1 Lecture 01: Introduction to Object-Oriented Programming Link
W2 Lecture 02: Python Foundations: Functions, Modules, and Program Structure Link
W3 Lecture 03: Python: Classes, Objects, Abstraction, and Encapsulation Link
W4 Holidays
W5 Lecture 04: Python: Composition, Inheritance, and Polymorphism Link
W6 Lecture 05: Python Software Development: Type Hints, Dataclasses, and Testing Link
W7 Lecture 06: C++ Introduction: Setup, Compilation, Makefile, Linker, and Libraries Link
W8 Lecture 07: C++ Basics: I/O, Types, Strings, Arrays, Control Flow, and Functions Link
W9 Lecture 08: C++: Pointers, References, Const, and Parameter Passing Link
W10 Lecture 09: C++: Classes I: Classes, Objects, Encapsulation, Access Levels, Headers, and this Pointer Link
W11 Lecture 10: C++ Classes II: Constructors, Destructors, Copy/Move Semantics, and Object Lifetime Link
W12 Lecture 11: C++: Resource Management: Stack, Heap, RAII, Smart Pointers, and Rule of Zero Link
W13 Lecture 12: C++ Generic Programming: Operator Overloading, STL Containers and Algorithms, and Basic Templates Link
W14 Lecture 13: C++ Polymorphism: Inheritance, Virtual Functions, Abstract Classes, and Design Trade-offs Link
W15-W16 Final Projects