The course is divided into seven two-week sections:

- Introduction
- Vectors
- Dequeues
- Lists
- Sets and Multisets
- Maps and Multimaps
- Container, Iterator, and Generic Algorithm Adaptors

I will try not to change the schedule during the semester, but I make no promises.

*Note*: The phrase "Sections *x* through *y*" means
"from the start of Section *x* up to and including the end of Section *y*."

### 24 May - Introduction

**Readings**Nyhoff: Chapter 2, Appendix C Musser and Saini: Chapter 1 **Lecture Notes**- Introduction to C++

Data structures and algorithms

### 31 May - Data structures, algorithms, and abstract data types

**Readings**Nyhoff: Sections 3.1 through 3.4, Appendix D Musser and Saini: Chapter 2 **Lecture Notes**- C++ functions

C++ classes

STL introduction

### 7 June - STL Vectors

**Readings**Musser and Saini: Sections 4.1 through 4.6, Section 6.1 **Programming Assignments**-
Vector programming assignment available.

**Lecture Notes**- STL vectors

Introduction to generic functions

Iterators Part 1

### 14 June - Vector implementation, algorithms, and applications

**Readings**Nyhoff: Sections 6.1 through 6.4 **Lecture Notes**- Implementing vectors

Vector algorithms

### 21 June - STL Dequeues

**Readings**Musser and Saini: Sections 5.1 through 5.3, Section 6.2 **Programming Assignments**-
Dequeue programming assignment available.

Vector programming assignment due.

Vector programming assignment example solution.

Vector programming assignment grades.

**Test**on Vectors-
The answers.

The grades.

**Lecture Notes**- STL dequeues

Generic algorithms Part 1

### 28 June - Dequeue implementation, algorithms, and applications

**Readings**Nyhoff: Chapter 5 **Lecture Notes**- Implementing dequeues

Dequeue algorithms

Dequeue applications

### 5 July - STL Lists

**Readings**Musser and Saini: Sections 4.7 through 4.13, Section 6.3 **Programming Assignments**-
List programming assignment available.

Dequeue programming assignment due.

Dequeue programming assignment example solution.

Dequeue programming assignment grades.

**Test**on Dequeues-
The answers.

The grades.

**Lecture Notes**- STL lists

Iterators Part 2

### 12 July - List implementation, algorithms, and applications

**Readings**Nyhoff: Chapter 8 **Lecture Notes**- Implementing lists

List algorithms

List applications

### 19 July - STL Sets and Multisets

**Readings**Musser and Saini: Sections 5.4 and 5.5, Section 7.1 **Programming Assignments**-
Set and Multiset programming assignment available.

List programming assignment due.

List programming assignment example solution.

List programming assignment grades.

**Test**on Lists-
The answers.

The grades.

**Lecture Notes**- STL sets and multisets

Generic algorithms Part 2

### 26 July - Set and Multiset implementation, algorithms, and applications

**Readings**Nyhoff: Sections 10.2 through 10.4 **Lecture Notes**- Implementing sets and multisets

Set and multiset algorithms

Set and multiset applications

### 2 August - STL Maps and Multimaps

**Readings**Musser and Saini: Section 7.2 **Programming Assignments**-
Map and Multimap programming assignment available.

Set and Multiset programming assignment due.

Set and Multiset programming assignment example solution.

Set and Multiset programming assignment grades.

**Test**on Sets and Multisets-
The answers.

The grades.

**Lecture Notes**- STL maps and multimaps

Iterators Part 3

### 9 August - Map and Multimap implementation, algorithms, and applications

**Readings**Nyhoff: Section 13.4 **Lecture Notes**- Implementing maps and multimaps

Map and multimap algorithms

Map and multimap applications

### 16 August - STL Adaptors for Containers, Iterators, and Generic Algorithms

**Readings**Musser and Saini: Chapters 8 through 11 **Programming Assignments**-
Map and Multimap programming assignment due.

Map and Multimap programming assignment example solution.

Map and Multimap programming assignment grades.

**Test**on Maps and Multimaps-
The answers.

The grades.

**Lecture Notes**- Container, iterator, and function adaptors

This page last modified on 18 August 2000.