Syllabus for CS 509, Advanced Programming II

Spring 2004


The syllabus is broken up into five three-week sections.

  1. Introduction

  2. Vectors, Exceptions, and Iterators

  3. Algorithms, Maps, and Generic Functions

  4. Classes, Dynamic Memory, and Abstract Data Types

  5. Class values, 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, 20 January to 29 January.

Readings
Chapters 0 through 2.

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

On-minute reviews
27-29 January

Programming Assignment
Assignment 1 available (last modified on 3 February 2004) on 20 January, due on 3 February at 2:00 p.m..

Test - 3 February
The answers.
The grades.

Section 2 - Vectors, Exceptions, and Iterators, 3 February to 19 February.

Readings
Chapters 3 through 5.

Class notes
STL introduction.
STL vectors.
Exceptions.
Exception examples.
An introduction to iterators.
Iterator invalidation.
STL lists.

One-minute reviews
3-5 February
10-12 February
17-19 February

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

Assignment 2 available (last modified on 8 April 2004) on 3 February, due on 24 February at 2:00 p.m..

Test - 24 February.
The answers.
The grades

Section 3 - Algorithms, Maps, and Generic Functions, 24 February to 11 March.

No class - 9-11 March, Spring Break

Readings
Chapters 6 throuth 8

Class notes
Generic algorithms.
More on iterators.
STL maps.
Asymptotic estimates.
A case study: thread iterators.
A case study: vectors vs. maps.

One-minute reviews
24-26 February

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

Assignment 3 available (last modified on 12 March 2004) on 24 February, due on 16 March at 2:00 p.m..

Test - 16 March.
The answers.
The grades.

Section 4 - Classes, Dynamic Memory, and Abstract Data Types, 16 March to 1 April.

Drop Day - 29 March

Readings
Chapters 9 through 11.

Class notes
Function pointers.
Function objects.
Classes and conversions.
A cautionary tale.
Template functions.
String splitting.
Template classes.

One-minute reviews
16-18 March
23-25 March
30 March-1 April

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

Assignment 4 available (last modified on 18 March 2004) on 16 March, due on 7 April at 2:00 p.m..

Test - 6 April.
The answers.
The grades.

Section 5 - Class values, Inheritance, and Memory Management, 6 April to 25 April.

Readings
Chapters 12 through 14

Class notes
Dynamic memory and classes.
Classes and pointers.
Handling missing functions.
Polymorphism and inheritance.
Implementing subtype polymorphism.
Handles revisited.

One-minute reviews
6-8 April
13-15 April

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

Assignment 5 available (last modified on 23 April 2004) on 6 April, due on 27 April at 2:00 p.m..
The grades.

Test - 27 April.
The answers.
The grades

Open Lecture on expression templates at 5:30 to 7:30 p.m. on Thursday, 6 May in Edison 156.


This page last modified on 6 May 2004.