This class meets every Monday, Wednesday, and Friday from 11:00 AM to 11:50 AM, except on University holidays or if I cancel class.
All dates in the following schedule are tentative, except those fixed by the University; if some topic listed here as taking one lecture in fact takes two lectures to cover adequately, or vice versa, the schedule will shift.
Note that the reading assignments for the first half of the course have little or nothing to do with the corresponding lectures. Feel free to organize your time differently, so long as you finish chapters 0--3 and Appendix C before we start on C++.
I expect you to have read the reading assignments before the lecture that deals with that topic; this way I can concentrate my time on answering questions and clarifying subtle or difficult points in the textbook, rather than on reading the textbook to you, which will bore both of us. Please read ahead!
Date(s) | Assignment | Reading | Lecture Subject | |
---|---|---|---|---|
22 Jan | Administrivia, ``what is software engineering?'' | |||
24 Jan | chap. 0 | Typographic techniques for readability | ||
26 Jan | HW1 | 1--1.3 | Constants, enumerated types, and defined types | |
29 Jan | 1.4--1.6 | Avoiding duplicate code | ||
31 Jan | 1.7,1.9 | ``Chunking'' with modules and functions | ||
2 Feb | HW2 | 1.8 | Abstraction and information-hiding | |
Last day to add courses | ||||
5 Feb | HW1 due | Appendix C | Objects vs. sequence | |
7 Feb | 2--2.4 | Data stored in objects; CLOS slots | ||
9 Feb | 2.5--2.8 | Classes and subclasses in CLOS | ||
12 Feb | HW2 due | 2.9--2.10 | Operations on objects; run-time polymorphism | |
14 Feb | HW3 | 2.11 | Programming with CLOS generics and methods | |
16 Feb | 2.12--2.14 | How to design an object-oriented program | ||
Last day to drop courses | ||||
19 Feb | 2.15--2.16 | Entities and Relationships | ||
21 Feb | 2.17--2.21 | Kinds of Hierarchies | ||
23 Feb | 3--3.4 | Interfaces and Implementations | ||
26 Feb | 3.5--3.6 | Top-down, Bottom-up, etc. | ||
28 Feb | 3.7--3.8 | Discuss HW3; catch up | ||
1 Mar | 3.9--3.10 | Discuss HW3; catch up | ||
4 Mar | HW3 due | 3.11 | Catch up, review for midterm | |
6 Mar | Midterm exam | |||
8 Mar | Centennial Symposium; no classes | |||
11 Mar | 5--5.1 | Objects in C++: aggregating data | ||
13 Mar | 5.2--5.3 | Objects in C++: class member functions | ||
15 Mar | 5.4--5.5 | Writing member functions | ||
18--22 Mar | Spring vacation; no classes | |||
25 Mar | HW4 | 5.6 | OO design of a Scheme interpreter | |
27 Mar | 5.8 | OO design of a Scheme interpreter | ||
29 Mar | 5.9 | Unions (and Lex?) | ||
Last day to withdraw from courses | ||||
1 Apr | 6--6.1 | Constructors and destructors | ||
(April Fool's Day) | ||||
3 Apr | HW5 | 6.2 | More on writing member functions | |
5 Apr | Good Friday; no classes | |||
8 Apr | HW4 due | 8--8.2 | Inheritance in C++ | |
10 Apr | 8.3--8.4 | Interfaces and Implementations in C++ | ||
12 Apr | 9--9.1 | Polymorphism in C++ | ||
15 Apr | 9.2 | Complications with multiple inheritance | ||
17 Apr | 10--10.1 | More on OO design of large programs | ||
19 Apr | HW6 | 10.2 | And yet more | |
22--24 Apr | I'm going to a conference; I'll | |||
either cancel or get a substitute | ||||
26 Apr | HW5 due | 10.3 | Catch up; discuss interpreter | |
29 Apr | Catch up; discuss interpreter | |||
1 May | Catch up; discuss interpreter | |||
(May Day) | ||||
3 May | Catch up; discuss interpreter | |||
6 May | Catch up; discuss interpreter | |||
10 May | HW6 due | Review for final exam | ||
17 May | 10:30--12:30, Final Exam |