Syllabus for CS 509, Advanced Programming II

Spring 2003


The syllabus is broken up into seven two-week sections.

  1. Introduction and Strings

  2. STL Vectors

  3. STL Iterators and Algorithms

  4. Classes and Dynamic Memory

  5. STL Maps and Generic Functions

  6. Defining Complete Classes

  7. Inheritance and Memory Management
I will try hard not to change the syllabus during the semester, but I make no promises.

Note: the phrase "X through Y" means "from the start of X upto and including the end of Y".

Section 1 - Introduction and Strings, 21 January to 30 January.

Readings
Chapters 0 through 2.

Class notes
How to pass this course.
Include files.
The string data type.
Invariants.
Stream I-O.

One-minute reviews
30 January

Programming Assignment
Assignment 1 available (last modified on 22 January 2003) on 21 January, due on 4 February at 2:00 p.m..

Test - 4 February
The answers.
The grades.

Section 2 - STL Vectors, 4 February to 13 February.

Readings
Chapters 3 and 4.

Class notes
STL introduction.
STL vectors.
Exceptions.
Exception examples.

One-minute reviews
4-6 February
12-13 February

Programming Assignment
Assignment 1 due on 4 February.
The grades.
A code review.
An example solution.

Assignment 2 available (last modified on 11 February 2003) on 4 February, due on 18 February.

Test - 18 February.
The answers.
The grades

Section 3 - STL Iterators and Algorithms, 18 February to 27 February.

Readings
Chapters 5 and 6.

Class notes
An introduction to iterators.
Iterator invalidation.
Generic algorithms.
STL lists.
Asymptotic estimates.

One-minute reviews
18-20 February

Programming Assignment
Assignment 2 due on 18 February.
The grades.
A code review.
An example solution.

Assignment 3 available (last modified on 4 March 2003) on 18 February, due on 4 March.

Test - 4 March.
The answers.
The grades.

Section 4 - Classes and Dynamic Memory, 4 March to 13 March.

Spring Recess - 10-16 March.

Readings
Chapters 9 and 10.

Class notes
Function pointers.
Function objects.

Programming Assignment
Assignment 3 due on 4 March.
The grades.
A code review.
An example solution.

Assignment 4 available (last modified on 7 March 2003) on 4 March, due on 18 March.

Test - 18 March.
The answers.
The grades.

Section 5 - STL Maps and Generic Functions, 18 March to 27 March.

Drop Day - 31 March.

Readings
Chapters 7 and 8.

Class notes
STL maps.
More on iterators.
Template functions.
Eliminating loops, special edition.

Programming Assignment
Assignment 4 due on 18 March.
The grades.
A code review.
An example solution.

Assignment 5 available (last modified on 7 March 2003) on 18 March, due on 1 April.

One-minute reviews
27 March

Test - 1 April.
The answers.
The grades

Section 6 - Defining Complete Classes, 1 April to 10 April.

Readings
Chapters 11 and 12, Section 11.5 optional.

Class notes
Dynamic memory and classes.
Classes and conversions.
A cautionary tale.
Template classes.
String splitting.

One-minute reviews
1 & 3 April

Programming Assignment
Assignment 5 due on 1 April.
The grades.
An example answer

Assignment 6 available (last modified on 7 April 2003) on 1 April, due on 15 April.

Test - 15 April.
The answers.
The grades.

Section 7 - Inheritance and Memory Management, 15 April to 24 April.

Readings
Chapters 13 and 14.

Class notes
Polymorphism and inheritance.
Implementing subtype polymorphism.
Classes and pointers.
Handling missing functions.

One-minute reviews
15 & 17 April

Programming Assignment
Assignment 6 due on 15 April.
The grades.

Assignment 7 available (last modified on 19 April 2003) on 15 April, due on 29 April.
The grades.
An example solution.

Test - 29 April.
The answers.
The grades.

Open Lecture on a topic to be determined from 5:30 p.m. to 7:30 p.m. on Thursday, 8 May in Edison 120.


This page last modified on 31 May 2003.