Concepts of Object-oriented Programming
- Classes and instances
- Encapsulation of code and data
- Abstract data types
- Operator overloading
- (Reading: Kafura, chapter 1)
- Assignment 1 - Due Friday, Sep 22, 6 p.m.
Java Syntax and Usage
- Features of Java
- Differences between C++ and Java
- (Sun/Oracle Java tutorial or any Java book)
Introduction to Graphical User Interface (GUI) Programming
- GUI programming: callback style, event loop
- Java AWT and window system
- Java Swing toolkit and widgets
- Assignment 2 - Due Friday, Oct 6, 6 p.m.
GUI Implementation with Java and Swing
- Assignment 3 - Due Friday, Oct 20, 6 p.m.
- Assignment 4 - Due Friday, Nov 3, 6 p.m.
- Lab 1 - Due Thursday, Nov 9, 6 p.m.
Software Design for GUIs
- Widgets as objects, encapsulation of widgets
- Main loop
- Callback procedures
- Mouse picking
- Panning and zooming
- (Kafura, chapter 7)
- Assignment 5 - Due Friday, Nov 17, 6 p.m.
- Aggregation vs. inheritance
- Unified Modeling Language (UML)
- CRC method
- (Kafura, chapter 5)
- Basic concepts
Non-WIMP Interaction Styles
- Eye tracking
- Head or object tracking
- Affective interfaces
- Gesture recognition
- Assignment 6 - Due Tuesday, Nov 28, 6 p.m.
Also brief presentation/discussion/critique of your project plans in class Wednesday Nov 29.
- Basic concepts
- World coordinates, modelling, viewing
- Assignment 7 - Due Sunday, Dec 3, 6 p.m.
Additional Java Topics
- Creating widgets
- (Kafura, chapter 9)
- Brief introduction to Python
- Object-oriented programming in Python
- GUI programming in Python
Object-oriented Programming Concepts in Other Languages
- Dynamic vs. static binding
- Pure vs. hybrid object-oriented model
- Memory management, garbage collection
- Assignment 8 - Due Sunday, Dec 10, 6 p.m. (= last assignment except for grad students). Also presentation/demo in class Monday Dec 11.
- Graduate student assignment - Due Tuesday, December 12, 6 p.m.