Syllabus for CS 509, Advanced Programming II

Fall 2002


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

  1. Introduction and Strings

  2. STL Vectors

  3. STL Iterators and Algorithms

  4. STL Maps and Generic Functions

  5. Classes and Dynamic Memory

  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, 5 September to 17 September.

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
12 September

Programming Assignment
Assignment 1 available (last modified on 11 September 2002) on 5 September, due on 19 September at 2:00 p.m..

Test - 19 September
The answers (white test).
The answers (yellow test).
The grades.

Section 2 - STL Vectors, 19 September to 1 October.

Readings
Chapters 3 and 4.

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

One-minute reviews
26 September

Programming Assignment
Assignment 1 due on 19 September.
An example solution.
The grades.
A code review.

Assignment 2 available (last modified on 25 September 2002) on 19 September, due on 3 October.

Test - 3 October.
The answers (white test).
The answers (yellow test).
The grades

Section 3 - STL Iterators and Algorithms, 3 October to 15 October.

Readings
Chapters 5 and 6.

Class notes
An introduction to iterators.
Generic algorithms.
An instructional story.
STL lists.
Asymptotic estimates.

One-minute reviews
10 October

Programming Assignment
Assignment 2 due on 3 October.
A code review.
The grades.
An example solution.

Assignment 3 available (last modified on 16 October 2002) on 4 October, due on 18 October.

Test - 17 October.
The answers (white test).
The answers (yellow test).
The grades.

Section 4 - STL Maps and Generic Functions, 17 October to 29 October.

Readings
Chapters 7 and 8.

Class notes
STL maps.
More on iterators.
Template functions.

Programming Assignment
Assignment 3 due on 18 October.
A code review.
The grades.

Assignment 4 available (last modified on 25 October 2002) on 17 October, due on 31 October.

Test - 31 October.
The answers (white test).
The answers (yellow test)
The grades.

Section 5 - Classes and Dynamic Memory, 31 October to 12 November.

Drop Day - 6 November.

Readings
Chapters 9 and 10.

Class notes
Splitting strings.
Function pointers.
Function objects.
An instructional story.

One-minute reviews
7 November

Programming Assignment
Assignment 4 due on 31 October.
An example solution.
A code review.
The grades.

Assignment 5 available (last modified on 12 November 2002) on 31 October, due on 14 November.

Test - 14 November.
The answers (white test).
The answers (green test)
The grades

Section 6 - Defining Complete Classes, 14 November to 26 November.

Readings
Chapters 11 and 12, Section 11.5 optional.

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

One-minute reviews
21 November

Programming Assignment
Assignment 5 due on 14 November.
A code review.
The grades.

Assignment 6 available (last modified on 27 November 2002) on 14 November, due on 3 December.

Test - 3 December.
The answers (white test).
The answers (yellow test)
The grades.

Section 7 - Inheritance and Memory Management, 3 December to 10 December.

No Class - 28 November.

Readings
Chapters 13 and 14.

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

Programming Assignment
Assignment 6 due on 3 December.
The grades.

Assignment 7 available (last modified on 30 November 2002) on 30 November, due on 14 December.
The grades.
An example solution.

Test - 12 December.
The answers (white test).
The answers (yellow test).
The grades.

Open Lecture on rolling your own iterators from 5:30 p.m. to 7:30 p.m. on Thursday, 19 December, in L 512.


This page last modified on 4 January 2003.