|
|
|
CS 420/520 Object-Oriented Programming |
This schedule is tentative, but should give you a rough idea of
what we will cover in this course.
Weekly Schedule (subject to change, as the quarter progresses)
|
Date |
Reading |
Lecture material |
Homework Assignments (due at 14:00 on date) |
||
|---|---|---|---|---|---|
| 1 | Monday 28th March | Introduction to the Course, and Introduction to Objects | Assignment
0 |
||
|
Wednesday 30th March |
|
|
|||
| 2 | Monday 4th April |
Chapter 2 of POODR |
Designing Classes with a Single Responsibility |
Good Smalltalk, Part I |
|
|
Wednesday 6th April |
|
Iterator pattern in Smalltalk | |
||
| 3 | Monday 11th April | Chapter 3 of POODR |
Managing Dependencies |
Simple Smalltalk testing: with Patterns. Testing slides (pdf) Trie slides (pdf) |
(Assignment 1 due on Monday 21st) |
| Wednesday 13th April |
Design
Patterns — what are they? Singleton, Proxy, & State Patterns Reading on the State Pattern |
Dan Ingalls on History of OO
programming (local
download (57MB) and on YouTube). Refactoring to the State Pattern |
Code on SqueakSource in packages Morphic-ReflexGame ("before") and Morphic-ReflexGameUsingStatePattern ("after") | ||
| 4 | Monday 18th April |
LOOM
chapter from Bits of History |
Martin McClure (VMWare, Inc) on Object Memories, Object Persistence and Object Databases. |
(Assignment 2 due) | |
| Wednesday 20st April |
Beck pages 1–42 |
Coding Patterns for Messages | Best Practice Patterns (slides) |
||
| 5 | Monday 25th April |
Beck pp 43–78 |
Coding patterns for Method |
Best Practice Patterns continued | |
| Wednesday 27th April |
Refactoring TrieDictionary |
Best Practice Patterns continued | Assignment 3 due Project Proposals assigned |
||
| 6 | Monday 2nd May |
|
|
||
|
Wednesday 4th May |
Mark Guzdial's chapter
on Morphic. Worksheet on Morphic |
Elements of Design |
OO GUI Slides MorphicDemo-Dice is on SqueakSource |
Assignment 4 | |
| 7 | Monday 9th May | Alpert extract on Observer | Project Process
Programming GUIs. |
Project Proposals due today
|
|
| Wednesday 11th May |
Designing a User-Interface |
Project Process
Slides Slides: User Interface Aza Raskin Video |
|
||
| 8 | Monday 16th May | Cook's Essay | Understanding Data Abstraction. |
Data Abstraction Slides |
Assignment 4 due |
| Wednesday 18th May | Checks Pattern
Language
Pratt's Null
Object Pattern, |
Parser Combinators in Smalltalk |
Slides |
||
| 9 | Monday 23rd May | Parser Combinators II
|
Composition and Law of Demeter | ||
| Wednesday 25th May | Visit Prof Antoy's Design
Patterns Class. (If you have a schedule conflict, you are excused.) |
||||
| 10 | Monday 30th May | Memorial day
holiday (no class) |
Traits and the Smalltalk Collections Hierarchy | Traits Slides (1-up) | |
| Wednesday 1st June |
Read: Chapter 26 of Goldberg and Robson, "Smalltalk-80: The Language and Its Implementation" ("the blue book") and Deutsch and Schiffman, "Efficient Implementation of the Smalltalk-80 System," POPL 1983. (Can't read it? Zoom your browser, or print it.) | Subtyping, conformity and Polymorphism | Subtyping
slides
Trampoline code in SqueakSource in package Collections-EnumerationEnhancements |
||
| Exam Week |
Wednesday 8th
June 12:30–14:20 |
Project Demonstrations | Demo Schedule | Projects due |
Most recently modified sometime in the past