CS 3500: Course Schedule

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    


Last modified