Day-by_Day Schedule



Data Structures and Other Objects Using C++
Third Edition
by Michael Main and Walter Savitch
ISBN 0-321-19716-X

Week 1:
Week 1
Lectures
Introduction to Data Structures
  Topic:    Course Introduction
 Topic:What Is a Data Structure?
 Topic:Precondition/Postcondition Contracts
 Topic:Include Directives
 Topic:Using Directives
 Topic:Time Analysis

Introduction to Classes
  Topic:What is a Class?
 Example:  Throttle Class
 Topic:Parts of a Class
 Topic:Using a Class in a Program
 Topic:Constructors
 Topic:Using a Namespace, Header File, and Separate Implementation File
 Discuss:The Statistician Class (HW 1)
 Example:  Lock Class
Week 1
Lab
In the Lab
 Lab 1:     Introduction to Unix
 Work on:The Statistician Class (HW 1)
Week 2:
Week 2
Lectures
More about Member Functions and Parameters
 Discuss:Classes and Parameters
 Topic:Operator Overloading
 Exercise: Fraction Class

Container Classes
  Topic:Introduction to Container Classes
 Sec 3.1:The Bag Class
 Exercise: Big Integer Class
  • Read Sections 3.1, 3.3, 4.1 and 4.2 by next Monday.

The Statistician Class (HW 1) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 2
Lab
In the Lab
  Discuss:  Programming Style Guide
 Lab 2:Makefile Exercise
 Also:The TA will offer last-minute feedback on your nearly completed statistician class.
Week 3:
Week 3
Lectures
Introduction to Pointers and Dynamic Arrays
  Sec 4.1:  Pointers and Dynamic Memory
 Sec 4.2:Pointers and Arrays as Parameters

Using Dynamic Arrays
  Sec 4.3:The Bag Class with a Dynamic Array
  Sec 4.4:Prescription for a Dynamic Class
  Exercise: Big Integer Class with a Dynamic Array
  Discuss:Your String Class (HW 2)
Week 3
Lab
In the Lab
  Review:   For next week's exam (Chapters 1-4)
 Work on:Your String Class (HW 2)
Week 4:
Week 4
Exam
First In-Class Exam during this week's first lecture period: Introductory Material from Chapters 1-4
  • Read Sections 5.1 and 5.2 by Monday, Sep 20.

Your String Class (HW 2) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 4
Lectures
Introduction to Linked Lists
  Sec 5.1:  A Fundamental Node Class for Linked Lists
 Sec 5.2:A Linked List Toolkit
Week 4
Lab
In the Lab
 Lab 3:    Skill with the Debugger
  Also:The TA will offer last-minute feedback on your nearly completed string class (including your makefile).
Week 5:
Week 5
Lectures
More Linked Lists
  Topic:   Doubly Linked Lists
  Topic:   Sentinel Nodes
  Topic:    Circular Linked Lists
 Discuss:Expanded Linked List Toolkit (HW 3)

Using Linked Lists in a Container Class
  Sec 5.3:  The Bag Class with a Linked List
  Topic:   Mutable Members
 Example:  Modifying Your String Class to Use a Linked List
 Sec 5.5:Dynamic Arrays vs Linked Lists vs Doubly Linked Lists
Week 5
Lab
In the Lab
  Exercise: Linked List Practice
  Review:For next week's exam (Chapter 5)
  Answers: For exam review questions (Chapter 5)
 Work on:Expanded Linked List Toolkit (HW 3)
Week 6:
Week 6
Exam
Second In-Class Exam during the first lecture period of this week: Linked Lists from Chapter 5
  • Read Sections 6.1, 6.2 and 6.3 by next Monday.

Expanded Linked List Toolkit (HW 3) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 6
Lectures
Introduction to Templates
  Sec 6.1:  Template Functions
 Sec 6.2:Template Classes
Week 6
Lab
In the Lab
 Exercise:  Building Templates
  Also:The TA will offer last-minute feedback on your nearly completed linked list toolkit.
Week 7:
Week 7
Lectures
The STL and Iterators
Iterators
Generic Algorithms
Week 7
Lab
In the Lab
 Exercise: Using the STL
 Work on:A Program Using the STL (HW 4)
Week 8:
Week 8
Lectures
Stacks
Queues
Priority Queues
Evaluating Arithmetic Expressions
  • Read Sections 8.1, 8.3 and 8.5 by next Monday.

A Program Using the STL (HW 4) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 8
Lab
In the Lab
 Exercise: Using Vectors
 Also:The TA will offer last-minute feedback on your nearly completed STL program.
Week 9:
Week 9
Lectures
Recursion
Introduction to Trees
  • Read Sections 9.1, 9.2 and 9.3 by next Monday.
  • Start work on HW 5: The Priority Queue Class due at 11:55pm on Friday of next week.
Week 9
Lab
In the Lab
 Exercise: Fun with Recursion
 Work on:The Priority Queue Class (HW 5)
Week 10:
Week 10
Lectures
A Class for Binary Tree Nodes
Complete Binary Trees
Tree Traversals
Printing Trees
Binary Search Trees
  • Read Sections 10.1, 10.2, 10.3, 10.4 and 10.5 by next Monday.

The Priority Queue Class (HW 5) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 10
Lab
In the Lab
 Exercise: Tree Traversals
 Also:The TA will offer last-minute feedback on your nearly completed Priority Queue program.
Week 11:
Week 11
Exam
Third In-Class Exam during the first lecture period of this week: Mostly Recursion and Trees

The first small part of the B-Tree (HW 6A) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 11
Lectures
Introduction to B-Trees
The Default Constructor
A Second Constructor to Build a Small Test Tree
Printing a B-Tree
Searching a B-Tree
Week 11
Lab
In the Lab
 Work On :  B-Tree Project
Week 12:
Week 12
Lectures
The Copy Constructor and Assignment Operator
The Clear Member Function and Destructor
B-Tree Insertion

Part B of the B-Tree (HW 6B) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 11
Lab
In the Lab
 Work On :  B-Tree Project
Week 13:
Week 13
Lectures
B-Tree Removal
Heaps
Time Analysis

Part C of the B-Tree (HW 6C) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 14
Lab
In the Lab
 Work On :  B-Tree Project
Week 14:
Week 14
Exam
Fourth In-Class Exam during the first lecture period of this week: Mostly Chapter 11

Part D of the B-Tree (HW 6D) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 14
Lectures
Quadratic Sorting
Quicksort
Week 14
Lab
In the Lab
 Work On :  B-Tree Project
Week 15:
Week 15
Lectures
Removing Recursion from Quicksort
Mergesort
Hash Tables
  • Read Chapter 12 before the final exam.
  • Work on the Sorting Program, which is due this week.

The Sorting Program (HW 7) must be submitted to webct by 11:55pm on Friday of this week. If you did not complete the work, then submit the things you did complete for partial credit. No late work is accepted.

Week 15
Lab
In the Lab
 Work On :  Sorting Program
Finals Week
Final Final Exam: Cumulative over the whole semester
  • Get plenty of sleep for the final exam


The textbook is the second edition of Data Structures and Other Objects Using C++ by Michael Main and Walter Savitch .


Michael Main (main@colorado.edu)