Home
Teaching
 
CS U213 Fl '07
General
Texts
Syllabus
Assignments
Communication
Labs
Ofc Hrs
Announcements
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.

The text for the second part of the course will be either in the form of additional reading, lab notes, or lecture notes (either new ones, or from the past years). 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 the Spring 2007 can be found here.

WeekTopic of the Week: Lectures, ReadingDates
0     
Designing Programs: Abstractions, Accumulators
  • 1. Design Recipe: Loops, Abstractions, Functions pp. 430-473 HtDP
  • 2. Accumulator style programs: pp. 430-473 HtDP
9/5, 6
1     
Classes of Data
  • 3. Data Definitions: Classes of data, Containment, Class diagrams, Unions: 1-37
  • 4. Data Definitions: Containment in unions; Mutual reference: 37-82
  • 5. Functional methods: Computing with primitive types and String; Methods for classes, containment; Conditional computation: 84-117
9/10, 12, 13
2     
Methods for Class Hierarchies
  • 6. Methods for unions, Dispatch, Design Recipe. 117-145
  • 7. Methods for mutually refeerential data. 145-177
  • 8. Designing methods; World library. 177-198
9/17, 19, 20
3     
Methods for Class Hierarchies; Data Abstractions
  • 9. Classes and Methods: Intermezzo 199-221
  • 10. Abstracting classes; Creating a super class; Creating a union; Deriving classes; Designing class hierarchies
  • 11. Designing classes for special objects; How libraries work
9/24, 26, 27
4     
Data Integrity; Understanding OO Compututation; Circular Data
  • 12. State encapsulation, Self-preservation: Data integrity: Overloading constructors
  • 13. Intermezzo: Looking back, looking forward
  • 14. Circular data
10/1, 3, 4
5     
Review, Reflection, Assessment; Methods for Circular Data
  • 15. Review: EXAM 1
  • 16. Methods for circular data
10/10, 11
6     
Stateful Classes, Imperative Methods; Equality
  • 17. Assignment; Changes in the World; Designing Stateful Classes, Imperative Methods
  • 18. Case studies of stateful classes
  • 19. Equality
10/15, 17, 18
7     
Abstracting over the Data Type and Functional Behavior; Exceptions
  • 20. Abstracting over the data type; Generics
  • 21. Function objects; Encapsulating functional behavior
  • 22. Abstracting over Traversal; Exceptions
10/22, 24, 25
8     
Loops; Direct Access Data: ArrayList
  • 23. Understanding Accumulators: Designing loops
  • 24. ArrayList: mutation, traversal, loops
  • 25. Java Libraries; Stack, Queue, Linked List
11/29, 31, 11/1
9     
Algorithms and Data Structures: Complexity of Computation
  • 26. Abstract Data Types: sorted container, map, stack, queue
  • 27. Complexity of computation: Searching (linear, binary, map-based)
  • 28. Complexity of computation: Sorting (quadratic, n-log-n); Exponential explosion
11/5, 7, 8
10     
Techniques for Optimizing the Performance
  • 29. Divide and conquer; Mutating sorting algorithms
  • 30. Key-value based data structures: IMapping, BST, HashMap, TreeMap; Linked lists
  • 31. Graph traversal algorithms: DFS, BFS, Shortest path. Priority queue: heap
11/14, 15, 19
11     
User Interactions: Model-View-Controller
  • 32. Designing synchronous user interactions: coding and decoding
  • 33. Review: EXAM 2
  • 34. Designing asynchronous user interactions: event handling
  • 35. Designing GUIs
  • 36. Design patterns; Reflection and looking ahead
11/26, 28, 29, 12/3, 5

last updated on Mon Sep 10 12:18:31 EDT 2007generated with PLT Scheme