Object Oriented Programming (OOP) is a paradigm that allows us to write programs by objects and their interactions. This course introduces the fundamental concepts of OOP, such as abstraction, encapsulation, inheritance and polymorphism, through teaching an object oriented language: Java. Some important features of Java will also be highlighted.
date | syllabus | todo/done | suggested reading |
2/26 | course introduction | ||
3/5 | motivation | ||
3/12 | classes and objects | ||
3/19 | TA lecture: git usage (and homework 1) classes and objects | homework 1 announced | |
3/26 | classes and objects | ||
4/2 | no class today because of spring break | ||
4/9 | encapsulation and Java array | ||
4/16 | TA lecture: OOP demo (and homework 2) inheritance | homework 1 due; final project announced | |
4/23 | inheritance | ||
4/30 | polymorphism | homework 2 announced | |
5/7 | polymorphism | ||
5/14 | interface/OOP summary | ||
5/21 | TA lecture: game programming (and homework 3) exception | homework 3 announced | |
5/28 | thread | homework 2 due | |
6/4 | inner class | ||
6/11 | generics | homework 3 due | |
6/18 | TA lecture: UML + OOP in the industry | ||
6/25 | no class today because of final week | ||
7/2 | final project demo | final project due (7/1 23:59) |