Next: About this document ... Up: Computer Science 172 Introduction Previous: Ethics

Schedule

This class meets every Tuesday and Thursday from 1:40-2:55 PM in Science 236. Our final exam will be from 1:00-3:00 PM, in the same room, on Thursday, Dec. 20. If you have a problem with these scheduled dates and times, let me know at least two weeks in advance so we can make suitable arrangements.

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.

In the column marked ``Reading'', all page numbers are in the ``Walls and Mirrors'' book unless stated otherwise. Remember, I also expect you to read through most of the Humphrey book, and look up individual language topics in the Stroustrup book, as necessary.

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!

When I say ``read'' above, I mean an active process, involving not only the textbook but pencil, scratch paper, and a notebook for writing down key points. Finally, and perhaps most importantly, you'll need a computer for trying out the new ideas you find in your reading. Just as you cannot learn to drive a car or to cook just by reading about it, you cannot learn about programming just by reading about it. In short, every time you read about a new programming idea, try it!

Date Assignment Reading Subject
Aug. 30     Administrivia, syllabus, textbook, software, program standards,...
Sept. 4 HW1 A1-A37 C++ review
Sept. 6   A37-A63 C++ review
Sept. 7 Deadline to add a course
Sept. 11   pp. 1-25 Software engineering, record-keeping, and abstraction
Sept. 13 HW1 due pp. 25-47 Modularity, modifiability, usability, fail-safety, style, debugging
Sept. 18 Rosh Hashanah
Sept. 20 HW2 pp. 53-74 Recursion
Sept. 21 Deadline to drop a course
Sept. 25   pp. 74-103 More recursion
Sept. 27 Yom Kippur
Oct. 2 HW2 due; HW3 pp. 112-129 Abstract data types
Oct. 4   pp. 131-156 Interface vs. implementation
Oct. 9   pp. 163-172 Pointers and dynamic allocation
Oct. 11 HW3 due; HW4 pp. 376-396 Inheritance and polymorphism
Oct. 16   pp. 376-396 Inheritance and polymorphism
Oct. 18 HW5   Programming with polymorphism
Oct. 23     A polymorphic implementation of lists
Oct. 25 HW4 due   A polymorphic implementation of lists
Oct. 26 Deadline to withdraw from a course
Oct. 30     Review of arrays, pointers, and dynamic allocation
Nov. 1     Continue discussing arrays, pointers, and dynamic allocation
Nov. 6     Implementing self-referential data structures polymorphically in C++
Nov. 8     Memory management, garbage collection, and destructors
Nov. 13 HW6 pp. 172-193 Null-terminated linked lists
Nov. 15   pp. 193-212 More on null-terminated linked lists; double links
Nov. 20 HW5 due   Keep working on null-terminated linked lists
Nov. 22 Thanksgiving
Nov. 27   pp. 212-228 Applications of linked lists; Containers, Iterators, and Visitors
Nov. 29 HW6 due; HW7 pp. 271-298 Stacks
Dec. 4   pp. 331-351 Queues
Dec. 6   pp. 433-454 Efficiency and sorting
Dec. 11   pp. 454-476 More sorting algorithms
Dec. 13 HW7 due   Catch up and review
Dec. 20 1:00-3:00, final exam


Next: About this document ... Up: Computer Science 172 Introduction Previous: Ethics
2001-08-17