Home
Teaching
 
CS U213 Sp '09
General
Readings
Syllabus
Assignments
Communication
Blog
Labs
Office Hours
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. Remember, that the daily quizzes may refer not only to the material covered during the lectures, but also to the weekly reading.

The text for the last part of the course will be either in the form of additional reading, lab notes, or lecture notes. You will also learn to read Java documentation and to use Java libraries. At this point you have to take responsibility for your own learning.

A comprehensive list of lectures from earlier semesters can be found here.

A complete list of lectures for Spring 2007 semester can be found here.

Lectures for Fall 2008 semester can be found here.

Current lecture notes (Spring 2009) will be posted as needed here. Consult also the course wiki.

Topic of the Week: Lectures, ReadingDates
1. Designing Programs: Abstractions, Accumulators; Classes of Data
  • 1. Design Recipe: Loops, Abstractions, Functions, Accumulator style programs: pp. 430-473 HtDP
  • 2. Data Definitions: Classes of data, Containment, Class diagrams, Unions: 1-36
  • 3. Data Definitions: Containment in unions; Mutual reference: 37-84
1/5, 7, 8
2. Methods for Class Hierarchies
  • 4. Functional methods: Computing with primitive types and String; Methods for classes, containment; Conditional computation: 84-116
  • 5. Methods for unions, Dispatch, Design Recipe 117-145
  • 6.Methods for mutually referential data; Designing methods 145-184
1/12, 14, 15
3. Understanding Method Evaluation
  • 7. Case Study: the World library. 185-198
  • 8. Classes and Methods: Calls; Type checking; Errors. 199-226
1/21, 22
4. Data Abstractions
  • 9. Similarities in classes. 227-258
  • 10. Designing class hierarchies with methods; How libraries work. 258-297
  • 11. State encapsulation, Self-preservation. 297-315
1/26, 28, 29
5. Data Integrity: State Encapsulation, Preservation; Understanding OO Compututation
  • 12. Extensional equality; Abstract classes, Privacy. 315-336
  • 13. Circular Data. 337-356
  • 14. Methods for circular data. 357-369
2/2, 4, 5
6. Methods for Circular Data; Assignment and Stateful Classes
  • 15. Assignment and changes in the World. 370-383
  • 16. Designing stateful classes and methods. 384-406
  • 17. More Stateful Classes, Imperative Methods. 407-464
2/9, 11, 12
7. Similarities Between Classes
  • 18. Similarities between plain classes; Subtyping; Types and similarities between class hierarchies; Generics. 465-473
  • 19. Types and similarities between hierarchies; Generics. 474-494
2/18, 19
8. Designing to Interfaces; Exceptions
  • 20. General classes, frameworks, Exceptions 497-524
  • 21. Designing to interfaces: getters, setters, predicates. 525-563
  • 22. Case study: Towers of Hanoi. 545-567
2/23, 25, 26
9. Traversals
  • 23. Patterns in traversals. 567-602
  • 24. Abstracting over method calls. 603-612
  • 25. Visitor traversals; Designing visitors. 613-635
3/9, 11, 12
10. Abstracting Traversals; Loops
  • 26. Traversing with effects. 636-660
  • 27. Function objects; Inner classes.
  • 28. Abstracting traversals: recursive loops, imperative loops, generic loops
3/16, 18, 19
11. Libraries
  • 29. Java Collections Framework: ArrayList, Stack, Queue
  • 30. Java Collections Framework: Map, HashMap, TreeMap
  • 31. Java Collections Framework: Array
3/23, 25, 26
12. Complexity of Computation
  • 32. Complexity of computation: Searching (linear, binary, map-based)
  • 33. Complexity of computation: Sorting (quadratic, n-log-n); Exponential explosion
  • 34. Designing synchronous user interactions: coding and decoding.
3/30, 4/1, 2
13. User Interactions
  • 33. Designing asynchronous user interactions: event handling; GUIs.
  • 36. Project Discussion.
  • 37. Looking back -- Looking forward.
4/6, 8, 9
14. Conclusion
  • 38. Project Presentations.
4/13

last updated on Thu Jan 15 11:18:13 EST 2009generated with PLT Scheme