Home
Teaching
 
CS U213 Fl '06
General
Texts
Syllabus
Assignments
Communication
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.

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.

The week starts with the Monday lecture and ends with the Friday lab.

WeekTopic of the Week: Lectures, ReadingDates
1     
Classes of Data: The Basics
  • Classes of data, Containment, Class diagrams: 1-23
  • Unions of data; Designing unions; Containment in unions; Self reference 23-41
9/6, 7
2     
Complex Class Hierarchies; Methods
  • Designing unions with containment: Self reference: 41-61
  • Functional methods: Computing with primitive types and String; Designing methods for classes; Conditional computation: 66-89
  • Methods for containment; Design recipe for methods: 89-96
9/11, 13, 14
3     
Methods for Class Hierarchies
  • Methods for unions of data: 96-120
  • Methods for self-referential data: 120-151
  • Designing methods; Wish lists: 151-176
9/18, 20, 21
4     
Abstractions with Classes
  • Designing methods for complex class hierarchies: 151-176
  • Abstracting classes; Creating a super class; Creating a union: 180-207
  • Case study: Graphics and the World: 228-241
9/25, 27, 28
5     
Data Abstractions; Circular Data
  • Deriving classes; Design recipe for abstraction: 207-228
  • Designing classes for special objects; State encapsulation, Self-preservation: 241-259
  • Circular data: 261 - 281
10/2, 4, 5
6     
Understanding the Assignment
  • Methods for circular data: 281 - 293
  • Assignment; Changes in the World: 293-328
10/11, 12
7     
Stateful Classes; Abstracting over the Data Type
  • Case studies of stateful classes: 328 - 369
  • Equality of complex data: 369 - 385
  • Abstracting over the data type: new text
10/16, 18, 19
8     
Abstracting over the Data Type; Abstracting over the Behavior
  • Generic ADTs: new text
  • Methods for generic lists --- functional interfaces: new text
  • Function objects: new text
10/23, 25, 26
9     
Abstracting over Traversals
  • Abstracting traversals: Functional iterator
  • Implementing iterators; ArrayList
  • Structural recursion vs. iteration; Java loops
  • Extra: Encapsulating functional behavior: Inner classes and the singleton
10/30, 11/1, 2
10     
Direct Access Data Structures; Algorithm Complexity
  • Direct access data --- working with indices
  • Understanding complexity: find, add, and remove operations; List, stack, queue
  • Measuring complexity: insertion sort, selection sort
11/6, 8, 9
11     
Techniques for Optimizing the Performance
  • Divide and conquer: algorithms and complexity
  • Key-value based data structures: IMapping, BST, HashMap, TreeMap
  • Key-value based data structures: methods, complexity
11/13, 15, 16
12     
Design Case Study: Graph Traversals
  • Graph traversals case study: Data representation
  • Graph algorithms: DFS and BFS traversals
  • Graph algorithms: Shortest path, MST -- priority queue
11/20, 27, 29
13     
User Interactions
  • Accessing, displaying, and storing data: Files, the console, GUIs, the web
  • Interactivity (MVC): GUI components, layout, Events/actions
  • Data transfer and communication: Streams, ports
11/30, 12/4, 6

last updated on Wed Oct 4 19:08:46 EDT 2006generated with PLT Scheme