Home
Teaching
 
CS U213 Sp '06
General
Texts
Syllabus
Assignments
Communication
Blog
Labs
Ofc Hrs
Advice

Syllabus

The table specifies the topics we will cover in each week. Make sure to read the relevant sections of the text for a given week. Read as much as possible before you come to class and lab.

There is no specific text for the last part of the course. You will learn a lot from reading Java documentation and from the lab materials. At this point you have to take responsibility for your own learning.

The week starts on Monday and ends on Thursday.

WeekTopic of the WeekLectures: ReadingsDates
1     
Classes of Data: The Basics
  • Classes of data, Containment, Class diagrams: 1-24
  • Unions of data; Designing unions; Containment in unions: 24-41
  • Designing unions with containment: Self reference: 41-61
1/9, 11 12
2     
Complex Class Hierarchies; Methods
  • Classes that represent a Java program: 62-64
  • Functional methods: Computing with primitive types and String; Designing methods for classes; Conditional computation: 69-91
1/18, 19
3     
Methods for Class Hierarchies
  • Methods for containment; Design recipe for methods: 91-111
  • Types and how methods compute; Designing methods for unions: 111-120
  • Methods for self-referential data: 120-151
23, 25, 26
4     
Designing Methods; Abstracting Classes
  • Designing methods; Wish lists; Java classes that represent Java programs: 152-173
  • Case study
  • Abstracting classes: 175-191
1/30, 2/1, 2
5     
Abstracting with Classes
  • Creating a super class; Creating a union: 191-208
  • Designing class hierarchies; Wish lists: 208-218
  • Designing classes for special objects; State encapsulation, Self-preservation: 218-240, 240-256
2/6, 8, 9
6     
The Need for Memory
  • Cyclical data
  • Abstract data type
  • The need for memory: Sharing a structure
2/13, 15, 16
7     
Mutating a Structure
  • Mutating the content of a structure; equality of structures
  • Mutating the structure of a structure; equality
2/22, 23
8     
Abstractions
  • Abstracting over data definition: Object/genericity
  • Abstracting over functional behavior
  • Function objects
2/27, 3/1, 2
9     
Abstracting over Functional Behavior; Traversals
  • Abstracting traversals: Functional iterator
  • Structural recursion vs. iteration
  • Encapsulating functional behavior: Inner classes and the singleton
3/13, 15, 16
10     
The Big Picture
  • Java Collections and Algorithms: A case study in the design of class hierarchies
  • Big Oh: Divide and conquer vs. sequential processing.
  • Linearly organized data: List, stack, queue; Sequential vs. direct access.
3/20, 22, 23
11     
Optimization
  • Graph Algorithms: Representing data, designing algorithms, processing cyclical data.
  • Optimizing data representation: Map, TreeMap, HashMap
  • Optimizing the result: Shortest path; Priority queue.
3/27, 29, 30
12     
User Interactions
  • Designing user interactions: Files, the console, GUIs, the network
  • MVC: GUI components, layout; Events/actions
  • Streams, ports: Data transfer and communication
4/3, 5, 6
13     
Algorithms, Data structures, Design patterns, Program evaluation; Epilogue
  • Data structure vs. the algorithm: Minimum spanning tree.
  • Design patterns.
  • Java classes that represent a Java program.
  • Epilogue
4/10, 12, 13, 19

last updated on Mon Jan 23 16:46:51 EST 2006generated with PLT Scheme