Course Home | Homework | Programming | Schedule & Lecture Notes | Submit

Saint Louis University

Computer Science 180
Data Structures

Michael Goldwasser

Spring 2006

Dept. of Math & Computer Science


Please note that the schedule for future classes is tentative.

Also note: For each lecture, we denote both a topic as well as the associated reading in the textbook. The live link on the 'topic' leads to a page of my personal notes for that lecture. Those personal notes are not nearly as complete or polished as the associated readings from the text. In truth, they exist mostly to provide a brief outline of the day's lecture. Students are expected to read the associated sections of the text. In cases where my notes include material which is not explicitly in the text, I will add the word "notes" to the explicit reading list.

Week Day Topic Reading
Jan 17-Jan 20 Tue Introduction, Course Administration,
Object-Oriented Design Goals
p. 62,Ch. 2.1
Wed Case Study: CreditCard class
(Note: this lecture is trumped by the subsequent 'walkthrough')
Selected portions of Ch. 1:
pp.2-8(top), 14(mid)-21(bot), 24-29(top), 33-36(mid), 46-56
Fri A walkthrough of the development of CreditCard (parts 1-3) notes
Jan 23-Jan 27 Mon A walkthrough of the development of CreditCard (parts 4-6) notes
Tue A walkthrough of the development of CreditCard (part 7)
Working with multiple files
Wed Hands-on Day
using the compiler/linux
linux notes
Fri ObjectDemo
(Additional C++ subtleties)
Ch.  1.1.3, 1.4.1
though we skip arrays for now
Jan 30-Feb 3 Mon More of the ObjectDemo
Tue More of the ObjectDemo
Wed Stack abstract data type
(background: Templated Classes)
Ch. 4.2.1
(Ch. 2.3.2)
Fri ArrayStack implementation
(background: arrays)
Ch. 4.2.2
(pp.9-10, 13, 30)
Feb 6-Feb 10 Mon ArrayStack implementation
(background: ++ and -- operators, exceptions)
Ch. 4.2.2
(pp.17-18, Ch. 2.4)
Tue ArrayStack implementation
(background: memory allocation)
Ch. 4.2.2
(Ch. 1.5.2, 1.5.3)
Wed ArrayStack implementation
(final details)
Ch. 4.2.2
Fri Queue
(circular arrays)
Ch. 4.3
Feb 13-Feb 17 Mon Analysis of Algorithms, Asymptotics Ch. 3.4, 3.5
Tue Analysis of Algorithms
Introduction to Linked Lists
Ch. 3.4, 3.5
Wed Linked Lists
Node Definition
Ch. 4.4
Fri Linked Lists
Stack Implementation
Ch. 4.4
Feb 20-Feb 24 Mon Linked Lists
Housekeeping Functions
Ch. 4.4
Tue Linked Lists
Housekeeping Functions
Wed review
Fri First Exam (includes material through Feb 17 - info )
Feb 27-Mar 3 Mon Linked Lists
Implementing a Queue
Ch. 4.4.3
Tue Double-Ended Queues
Doubly-Linked Lists
Ch. 4.5
Wed Introduction to Recursion Ch. 4.2.3, Ch 2.5
Fri More with Recursion
Asymptotic Analysis
Ch. 4.1
Mar 6-Mar 10 Mon Sorting Algorithms
Ch. 10.1.1
Tue Sorting Algorithms
Ch. 10.3 (skim code)
Wed Higher-Order Recursions
(towers of hanoi; enumerating combinations)
Ch. 4.1
Fri Problem Solving with Recursion Ch. 4.1
Mar 13-Mar 17 Mon No Class: Spring Break
Mar 20-Mar 24 Mon Overview of Magic Squares assignment handout
Tue The Vector ADT
Amortized Analysis
Ch. 5.1
Wed Amortized Analysis
Fri List ADT overview Ch. 5.2
Mar 27-Mar 31 Mon List implementation Ch. 5.2
Tue List implementation Ch. 5.2
Wed Sequence ADT
Multiple Inheritance
Ch. 5.3
Fri Trees Ch. 6.1
Apr 3-Apr 7 Mon Basic Algorithms on Trees Ch. 6.2
Tue Euler Tours Ch. 6.2.3, 6.2.4, 6.3.4
Wed Binary Tree Properties, Mutators
Ch. 6.3.3
Fri Second Exam (includes material through Mar 31 - info )
Apr 10-Apr 14 Mon Data Structures for Representing Binary Trees Ch. 6.4.1, 6.4.2
Tue Housekeeping functions for BinaryTree
Data Structures for General Trees
p. 297, handout
Ch. 6.4.3, 6.4.4
Wed Introduction to Priority Queues skim Ch. 7.1-7.3
Fri No Class: Good Friday
Apr 17-Apr 21 Mon In-class work on Cards assignment
Tue Overview of decode assignments.
Wed Priority Queue Implementation Details
Composition and Comparator
Fri Priority Queue Implementation Details
Sample Code
Apr 24-Apr 28 Mon Huffman Coding
Overview of encode assignments.
Ch. 11.4
Tue Dictionary ADT
Ch. 8.1, 8.2.1, 8.2.2
Wed Hash Codes and Collisions rest of Ch. 8.2
Fri Ordered Dictionaries
Skip Lists
Ch. 8.3,
8.4 (omit 8.4.3)
May 1-May 5 Mon Binary Search Trees Ch. 9.1
Tue (2,4) Trees
search, insertion
9.3, 9.4
Wed (2,4) Trees
Fri Red-Black Trees 9.5

12 May 2006, Friday Final Exam (12:00-1:50) info

Michael Goldwasser
CSCI 180, Spring 2006
Last modified: Friday, 05 May 2006
Course Home | Homework | Programming | Schedule & Lecture Notes | Submit