Syllabus for CS 509, Advanced Programming II
Spring 2001
The course is divided into seven two-week sections:
- Introduction
- Inheritance and Interfaces
- Consistency and Debugging
- Efficiency and Performance
- Virtual Functions and Testing
- Wrappers and Portability
- Operator Overloading and Notation
I will try not to change the schedule during the semester, but I make no
promises.
- Section 1 - Introduction (16 January to 30 January).
- Readings
-
Cargill - Chapters 0 & 1.
Kernighan and Pike - Chapters 1 & 2.
- Class notes
-
Classes
Abstraction, polymorphism, and dynamic binding
Algorithm analysis and asymptotic estimates
The bridge pattern
- Assignment
-
Assignment 1 available on Tuesday, 16 January
Assignment 1 due on Tuesday, 30 January at 2:00 p.m.
- Test 1
- 30 January
-
The answers
The grades
- Section 2 - Inheritance and Interfaces (30 January to 13 February).
- Readings
-
Cargill - Chapter 3.
Kernighan and Pike - Chapter 4.
- Class notes
-
Polymorphism and templates
Assignment 1 code review
Libraries and interfaces
- Assignment
-
Assignment 1 due on Tuesday, 30 January at 2:00 p.m.
Assignment 1 grades
Assignment 1 example solution
Assignment 2 available on Tuesday, 30 January
Assignment 2 due on Tuesday, 13 February at 2:00 p.m.
- Test 2
- 13 February
-
The answers
The grades
- Section 3 - Consistency and Debugging (13 February to 27 February).
- Readings
-
Cargill - Chapter 2.
Kernighan and Pike - Chapter 5.
- Class notes
-
Classes and abstract data types
Debugging
Assignment 2 code review
- Assignment
-
Assignment 2 due on Tuesday, 13 February at 2:00 p.m.
Assignment 2 grades
Assignment 2 example solution
Assignment 3 available on Tuesday, 13 February
Assignment 3 due on Tuesday, 27 February at 2:00 p.m.
- Test 3
- 27 February
-
The answers
The grades
- Section 4 - Efficiency and Performance (27 February to 13 March).
- Readings
-
Cargill - Chapter 7.
Kernighan and Pike - Chapter 7.
- Class notes
-
Making code efficient
Assignment 3 code review
- Spring Break
-
No class on Tuesday, 6 March, and Thursday, 8 March
- Assignment
-
Assignment 3 due on Tuesday, 27 February at 2:00 p.m.
Assignment 3 grades
Assignment 4 available on Tuesday, 27 February
Assignment 4 due on Tuesday, 13 March at 2:00 p.m.
- Test 4
- 13 March
-
The answers
The grades
- Section 5 - Virtual Functions and Testing (13 March to 27 March).
- Readings
-
Cargill - Chapter 4.
Kernighan and Pike - Chapter 6.
- Class notes
-
Virtual classes
The cost of virtual-function calls
Testing
A consistency case study
- Assignment
-
Assignment 4 due on Tuesday, 13 March at 2:00 p.m.
Assignment 4 grades
Assignment 5 available on Tuesday, 13 March
Assignment 5 due on Tuesday, 27 March at 2:00 p.m.
- Test 5
- 27 March
-
The answers
The grades
- Drop Day
- 26 March
-
- Section 6 - Wrappers and Portability (27 March to 10 April).
- Readings
-
Cargill - Chapter 6.
Kernighan and Pike - Chapter 8.
- Class notes
-
Portability
Wrappers
STL vectors
Assignment 6 code review
- Assignment
-
Assignment 5 due on Tuesday, 27 March at 2:00 p.m.
Assignment 5 grades
Assignment 5 example solution
Assignment 6 available on Tuesday, 27 March
Assignment 6 due on Tuesday, 10 April at 2:00 p.m.
- Test 6
- 10 April
-
The answers
The grades
- Section 7 - Operator Overloading and Notation (10 April to 24 April).
- Readings
-
Cargill - Chapter 5.
Kernighan and Pike - Chapter 9.
- Class notes
-
Operator Overloading
Notations
- Assignment
-
Assignment 6 due on Tuesday, 10 April at 2:00 p.m.
Assignment 6 grades
Assignment 6 example solution
Assignment 7 available on Tuesday, 10 April
Assignment 7 due on Tuesday, 24 April at 2:00 p.m.
Assignment 7 grades
- Test 7
- 24 April
-
The answers
The grades
- Open Lecture on some tools for programmers; the
lecture will be given during final-exam period, 5:30 p.m. Thursday, 3 May,
Edison 123.
This page last modified on 4 May 2001.