Princeton University
Computer Science Dept.

Computer Science 333
Advanced Programming Techniques

Andrew Koenig

Spring 1998


Directory
General Information | Schedule and Readings | Course Newsgroup | Links | What's New?

Lectures: MW at 1:30--2:50
Professor: Andrew Koenig ark@research.att.com


Lecture notes:

1. February 2: Introduction (PDF slides, handouts)
2. February 4: How to approach the homework assignments (PDF slides, handouts)
3. February 9: Design variations and data abstraction (PDF slides, handouts)
4. February 11: Programming with abstract data types (source code, PDF slides, handouts)
5. February 16: Programming without abstract data types (source code, PDF slides, handouts)
6. February 18: Performance: theory and practice (PDF slides, handouts)
7. February 23: So you think you can count? (PDF slides, handouts)
8. February 25: Page buffers revisited (PDF slides, handouts)
9. March 23: Controlling copies of objects (PDF slides, handouts)
10. March 25: Inheritance (PDF slides, handouts)
11. March 30: Dynamic binding (PDF slides, handouts)
12. April 1: An object-oriented example (PDF slides, handouts)
13. April 6: Another object-oriented program (PDF slides, handouts)
14. April 8: Handles and use counts (part 1) (PDF slides, handouts)
15. April 13: A note on const; Handles and use counts (part 2) (PDF slides, handouts)
16. April 15: The opposite of object-oriented programming (PDF slides, handouts)
17. April 20: Generic programming (PDF slides, handouts)
18. April 22: Generic iterators (PDF slides, handouts)
19. April 27: Programming abstractly (PDF slides, handouts)