Syllabus



Home
Teaching
 
CS 2510 Fl '10
General
Readings
Syllabus
Assignments
Communication
Blog
Labs
Office Hours
Advice

The table specifies the topics we will cover in each week. You must read the relevant sections of the text for each week. Read as much as possible before you come to class and lab. Daily quizzes may refer to the material covered during the lectures, and in the weekly reading.

Lecture notes will be posted (eventually) on the Blog.

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

Last updated on Wed Oct 20 15:24:12 EDT 2010Created with DrRacket