PSU Logo
Department of
Computer Science

 

CS 420/520 Object-Oriented Programming


Weekly Schedule

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
(to be read
by this date)

Topic

Lecture material
(links will be activated as slides are available)

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


Big, up-front Design (BUFD)


Assignment 1

2 Monday 4th April

Chapter 2 of POODR

Designing Classes with a Single Responsibility

Good Smalltalk, Part I

The KWIC-index problem


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)

Assignment 2

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)

Assignment 3

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.
The Observer and Explicit Interest patterns


Slides: Observer & Explicit Interest Patterns

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,
Woolf'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


Andrew P. Black