These are interesting readings that haven't been slotted into the class schedule yet.
Read Code as Design: Three Essays by Jack W. Reeves. Get the PDF of the 3 essays from this site, or here is a local copy.
These basic thesis of these essays is that code is the engineering spec document of the software world, and that C++ and other OO languages are successful because they let programmers express their ideas more effectively. What do you think of this concept? Write a 1-page essay (to be turned in at the end of class) that brings up an example from your own experience which bears on this point.
Soul of a New Machine by Tracy Kidder
Story of the development of the Data General Eclipse, the first 32-bit machine developed by DG. Largely tells it as a skunk-works -- the team that created the machine wasn't supposed to succeed.
Show Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft by G. Pascal Zachary
Story of the development of Windows NT, led by David Cutler, who had created the VMS operating system for the VAX at Digital Equipment.
What's most fascinating about this story is that no one thought they were developing what would become Windows NT until very late in the game. It was only midway through the process that it became evident that Windows 3.1 was a smash success, and Microsoft's next-gen OS must support the Windows APIs.
Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides
Seminal book in design patterns in computer science. Authors are often referred to as the "Gang of Four."
From the catalog description: Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.