Assignments | Class Photo | Course Home | Documentation | Lab Hours/Tutoring | Schedule | Submit

Saint Louis University

Computer Science 180
Data Structures

Michael Goldwasser

Spring 2012

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 18-Jan 20 Wed Introduction, Course Overview syllabus
Thu Lab 00: A First Glance at C++ Guide: §1, §2, §3
Text: Ch. 1.1.1
Fri Transition to C++
First Glance
Guide: §3
Jan 23-Jan 27 Mon Transition to C++
Data types, operators, control structures
Guide: §4, §5
Text: Ch. 1.1.2, 1.2, 1.3
Wed Transition to C++
Class Definitions
Guide: §7
Text: 1.5.1, 1.5.2
Thu Lab 01: Copier Reduction
Fri Transition to C++
Operator Overloading, I/O streams
Guide: §6, §7
Text: Ch. 1.6
Jan 30-Feb 3 Mon Transition to C++
Managing Large Projects
(scope resolution, #include, namespaces)
Guide: §12.1-12.4
Text: Ch. 1.6
Wed C++ Object Model
(value, reference, pointer variables, arrays)
Guide: §4.2, §8
Text: Ch. 1.1.3, 1.4.1, 1.5.3
Thu Lab 02: Speed Limit
Fri Lifespan of objects
Dynamic Memory Management
Ch. 1.1.3
Feb 6-Feb 10 Mon Stack ADT
ArrayStack implementation
Ch. 5.1.1-5.1.4
(ArrayStack code)
Wed Housekeeping Functions Guide: §8.6
Text: Ch. 1.5.2-1.5.3
Thu Lab 03: Symmetric Order
Fri (Assignment Operators)
Templated Classes
(templated ArrayStack code)
Guide: §9, Text: Ch. 2.3
Feb 13-Feb 17 Mon Intro to Queue ADT
Queue with "circular" array
Text: Ch. 5.2.1-5.2.4
Wed ArrayQueue implementation
Introduction to Analysis of Algorithms
(ArrayQueue code)
Ch. 4.2
Thu Lab 04: Doubles
Fri Analysis of Algorithms, Asymptotics
Case Study: lab04 efficiency
Ch. 4
Feb 20-Feb 24 Mon Singly-Linked Lists
LinkedStack implementation
Ch. 3.2, 5.1.5
(LinkedStack code)
Wed LinkedStack housekeeping functions
Preview of "SmartStack" assignment
Thu First Exam (includes material through Feb 17 - info )
Fri Circular Linked List
LinkedQueue implementation
Ch. 3.4, 5.2.5
(LinkedQueue code)
Feb 27-Mar 2 Mon Double Ended Queue Abstraction
Doubly-Linked Lists, Sentinels
Ch. 3.3, 5.3
Wed Introduction to C++ vector class Ch. 6.1
(ArrayVector code)
Thu Lab 05: Tanning Salon
Fri Extendable Arrays
Amortized Analysis
Ch. 6.1
Mar 5-Mar 9 Mon Introdution to STL list class, iterators. Ch. 6.2.1, 6.2.2, 6.2.4
Wed Implementing a NodeList class Ch. 6.2.3
(NodeList code)
Thu Lab 06: Overflowing Bookshelf
Fri Continued work on lab06
Mar 12-Mar 16 Mon No Class: Spring Break
Mar 19-Mar 23 Mon Sorting Algorithms: Insertion, Selection, Bubble Ch. 3.1.2, 6.4
(my code)
Wed Sorting Algorithms: Mergesort and Quicksort Ch. 11.1, 11.2
Thu Lab 07: Phone
Fri Problem Solving with Recursion parts of Ch. 3.5
Mar 26-Mar 30 Mon Problem Solving with Recursion
Binary Search
rest of Ch. 3.5; Ch.  4.2.6
Ch. 9.3.1, demo
Wed Introduction to Trees
Basic Algorithms on Trees
Ch. 7.1, 7.2
Thu Lab 08: Anagrams
Fri Tree Traversals Ch. 7.2.2, 7.2.3
Apr 2-Apr 6 Mon (review for exam)
Wed Second Exam (includes material through Mar. 28 - info )
Thu No Class: Easter Weekend
Apr 9-Apr 13 Mon
Wed Data Structures for Binary Trees
(LinkedBinaryTree code)
Ch. 7.3.4
Thu Lab 09: Tree Grafting (part 1)
Fri Housekeeping functions for Binary Trees
Introduction to Huffman Decoding Project
LinkedBinaryTree code
decode project
Apr 16-Apr 20 Mon Introduction to Priority Queues Ch. 8.1.1, 8.1.3, 8.1.4, 8.2
Wed Priority Queue with Binary Heap Ch. 8.3
Thu Lab 10: Tree Grafting (part 2)
Fri Huffman encoding algorithm Ch. 12.4
Apr 23-Apr 27 Mon Binary Search Trees Ch.  10.1
Wed Balanced Binary Search Trees
AVL Trees
Ch. 10.2
Thu AVL Deletions examples
Fri STL: set, multiset, map, multimap C++ documentation
Ch. 9.1.3
Apr 30-May 4 Mon map, multimap
introduction to hashing
Wed Hashing Ch. 9.2
Thu Hashing: collision resolution Ch. 9.2
Fri Radix Sort Ch. 11.3
May 7 Mon Review Day

May 9 Wed Final Exam (12:00-1:50) ( info )

Michael Goldwasser
CSCI 180, Spring 2012
Last modified: Friday, 04 May 2012
Assignments | Class Photo | Course Home | Documentation | Lab Hours/Tutoring | Schedule | Submit