Syllabus for CS 503, Advanced Programming I

Spring 2006


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

  1. Introduction

  2. Sorting

  3. Linked Lists, Stacks, and Queues

  4. Trees

  5. Graphs

  6. Hashing

  7. Objects
Notes:

Section 1 - Introduction, Tuesday, 17 January to Thursday, 26 January.

Readings
Nyhoff: Chapters 1 through 3

Class notes
Introduction
C++ Review
Program Design
Programming Economics

Assignment
Assignment 1 (last modified on 7 February 2006) available on Tuesday, 17 January; due on Tuesday, 31 January at 5:30 p.m.
The grades.
A code review.
An example solution.

Quiz - Tuesday, 31 January
The pretest answered.
The answers.
The grades.

Section 2 - Sorting, Tuesday, 31 January to Thursday, 9 February.

Readings
Nyhoff: Chapter 13

Class notes
Sorting Basics*
Faster Sorting
External Sorting

Assignment
Assignment 2 (last modified on 15 February 2006) available on Tuesday, 31 January; due on Tuesday, 21 February at 5:30 p.m.
The grades.
An example solution.
A code review.

Quiz - Tuesday, 14 February
The answers.
The grades.

Section 3 - Linked Lists, Stacks, and Queues, Tuesday, 14 February to Thursday, 23 February.

Readings
Nyhoff: Chapters 6 through 8; Sections 7.4, 7.5, 8.4 and 8.5 optional

Class notes
Abstract Data Types
Linked Lists
Stacks
Queues

Assignment
Assignment 3 (last modified on 11 March 2006) available on Tuesday, 14 February; due on Tuesday, 7 March at 5:30 p.m.
A code review.
The grades.
an example solution.

Quiz - Tuesday, 28 February
The answers.
The grades.

Section 4 - Trees, Tuesday, 28 February to Thursday, 16 March.

Spring Break - No classes the week of 6-10 March

Readings
Nyhoff: Sections 12.1 through 12.6; sections 15.1 through 15.3

Class notes
Tree Basics
Balancing Trees
N-Way Trees

Assignment
Assignment 4 (last modified on 22 March 2006) available on Friday, 10 March; due on Friday, 24 March at 5:30 p.m.
A code review.
The grades.

Quiz - Tuesday, 21 March
The grades.
The answers.

Section 5 - Graphs, Tuesday, 21 March to Thursday, 30 March.

Drop Day - Monday, 27 March.

Readings
Nyhoff: Chapter 16

Class notes
Graph Basics
Graph Algorithms
Traveling, Flowing, and Matching

Assignment
Assignment 5 (last modified on 13 April 2006) available on Tuesday, 21 March; due on Thursday, 6 April at 5:30 p.m.
A code review.
The grades.

Quiz - Tuesday, 4 April
The answers.
The grades.

Section 6 - Hashing, Tuesday, 4 April to Thursday, 13 April.

Readings
Nyhoff: Section 12.7

Class notes
Hashing Basics
Dynamic Hashing
Hashing Applications

Assignment
Assignment 6 (last modified on 21 April 2006) available on Tuesday, 4 April; due on Thursday, 20 April at 5:30 p.m.
A code review.
The grades.

Quiz - Tuesday, 18 April
The answers.
The grades.

Section 7 - Objects, Tuesday, 18 April to Thursday, 27 April.

Readings
Nyhoff: Chapters 4 and 14

Class notes
Objects, Inheritance and Types
Design by Contract
Liskov-Wing Substitution

Assignment
Assignment 7 (last modified on 27 April 2006) available on Tuesday, 18 April; due on Tuesday, 2 May at 5:30 p.m.
An example solution.
The grades.

Quiz - Thursday, 27 April
The answers.
The grades.

Open Lecture about data structures and algorithms for flash storage at 5:30 p.m. to 7:30 p.m. on Thursday, 4 May in HH-L512.


This page last modified on 4 May 2006.

This work is covered by a
Creative Commons License.