Syllabus for CS 509, Advanced Programming II

Spring 2001


The course is divided into seven two-week sections:

  1. Introduction

  2. Inheritance and Interfaces

  3. Consistency and Debugging

  4. Efficiency and Performance

  5. Virtual Functions and Testing

  6. Wrappers and Portability

  7. 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.