I will post lecture topics, reading assignments, and problem sets here. I'll revise the table after each lecture to reflect what really happened.
| Week | Date | Topic | Material | Reading |
|---|---|---|---|---|
| 1 | 8/25 | Lec 1: Introduction; software engineering; brief history of programming languages | Evolution of programming languages: PPT or PDF | Syllabus |
| 8/26 | Dis 1: Using Visual Studio | Lab material | ||
| 8/27 | Lec 2: Introduction to C++ | Lecture examples | Eckel, Chapters 1 and 2 | |
| 8/28 | Problem Set One and its solution. | ps1-skeleton.zip |   | |
| 2 | 9/1 | Lec 3: Main function linkage; streams; pipe and filter architecture; arrays and pointers. | Lecture examples | Eckel, Chapter 3 |
| 9/2 | Dis 2: C++ memory management | Lab material | ||
| 9/3 | Lec 4: Runtime memory organization | Eckel, Chapters 4-5 | ||
| 9/4 | Problem Set Two and its solution. |   | ||
| 3 | 9/8 | Lec 5: Copying vs. pointers vs. references; destructors | Lecture examples | Eckel, Chapter 6 |
| 9/9 | Dis 3: Memory Model | Lab material | ||
| 9/10 | Lec 6: Operator overloading and copy constructors | Lecture examples | Eckel, Chapters 7 and 11 | |
| 9/11 | Problem Set Three and its solution, including test cases. |   | ||
| 4 | 9/15 | Lec 7: PS 2 solution; unit testing; assignment operator | Lecture examples; Unit testing slides | Eckel, Chapter 12 |
| 9/16 | Dis 4: Iterators | Lab material | ||
| 9/17 | Lec 8: Standard Template Library | Lecture examples | STL documentation | |
| 9/18 | Problem Set Four and its solution (including written problem) with grading test cases | functions.h |   | |
| 5 | 9/22 | Lec 9: PS 3 solution; function objects; client/server architecture | Lecture examples | |
| 9/23 | Dis 5: Catch up day | Lab material | ||
| 9/24 | Lec 10: Sockets, threads, and locks | Lecture examples | ||
| 9/25 | Problem Set Five and its solution | boggleserver.zip, boggle.jar, dictionary.txt, |   | |
| 6 | 9/29 | Lec 11: PS 3 solution; function objects; client/server architecture; introduction to software engineeering | Lecture examples; Software engineering slides | |
| 9/30 | Dis 6: Debugging Multi-Thread Programs | Lab material | ||
| 10/1 | Lec 12: Debugging | Debugging slides | ||
| 10/2 | Problem Set Six | console.h, console.cpp, | ||
| 7 | 10/6 | Lec 13: SVN and version control | TortoiseSVN (Windows Explorer interface) Documentation on SVN in general and TortoiseSVN in particular AnkhSVN (Visual Studio plugin) | |
| 10/7 | Dis 7: Another Catch-Up Day | Lab material | ||
| 10/1 | Lec 14: Event-driven software architecture | Lecture examples | ||
| 10/2 | Problem Set Seven | |||
| 10/13 | Fall Break | |||
| 10/14 | Fall Break | |||
| 10/15 | Fall Break | |||
| 10/16 | Fall Break | |||
| 8 | 10/20 | Lec 15: Event-driven programming | Lecture examples | |
| 10/21 | Dis 8: Creating DLLs | Lab material | ||
| 10/22 | Lec 16: Midterm Review | Review Material | ||
| 10/23 | Problem Set Eight (due 11/5) | |||
| 9 | 10/27 | Midterm Exam (open book/open notes) | Last year's midterm and its solution | |
| 10/28 | Dis 9: GUI Applications | Lab material | ||
| 10/29 | Lec 17: Midterm post-mortem; completion of debugging from 10/1/09; pair programming | Debugging slides; Pair programming slides | ||
| 10/30 | See 10/23 for problem set | |||
| 10 | 11/3 | Lec 18: Coding GUI applications | Lecture examples | |
| 11/4 | Dis 10: Questions about/demonstrations of PS 8 | |||
| 11/5 | Lec 19: GUI fine points, inheritance in C++ | Lecture examples | Eckel, Chapters 14 and 15 | |
| 11/6: | Problem Set Nine | |||
| 11 | 11/10 | Lec 20: Fine points of managed/unmanaged interaction; cache effects | Lecture examples | |
| 11/10 | Dis 11: Profiling | Lab material | ||
| 11/12 | Lec 21: Performance improvements | |||
| 11/13: | Final Project | |||
| 12 | 11/17 | Lec 22: MVC architecture; characteristics of good classes | Lectures examples | |
| 11/18 | Dis 12: Hammer | Demo and practice with Hammer in WEB 130 | ||
| 11/19 | Lec 23: More about classes; Hammer | |||