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

Saint Louis University

Computer Science 180
Data Structures

Michael Goldwasser

Spring 2014

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 13-Jan 17 Mon Introduction, Course Overview syllabus
Tue Lab 00: A First Glance at C++ Guide: §1, §2, §3
Text: Ch. 1.1.1
Wed Transition to C++
first glance, declarations
Guide: §1, §2, §3
Text: Ch. 1.1.1
Fri Transition to C++
Data types, operators, control structures
Guide: §4, §5
Text: Ch. 1.1.2, 1.2, 1.3
Jan 20-Jan 24 Mon No Class: MLK Holiday
Tue Lab 01: Copier Reduction
Wed Transition to C++
Class Definitions, Operator Overloading, I/O streams
Guide: §6, §7
Text: 1.5.1, 1.5.2, 1.6
Fri Transition to C++
Managing Large Projects
(scope resolution, #include, namespaces)
Guide: §12.1-12.4
Text: Ch. 1.6
Jan 27-Jan 31 Mon C++ Object Model
(value, reference, pointer variables)
Guide: §4.2, §8
Text: Ch. 1.1.3, 1.4.1
Tue Lab 02: Speed Limit
Wed Lifespan of objects
Dynamic Memory Management
Ch. 1.1.3
Fri Continuation of "object demo"
Ch. 1.1.3
Feb 3-Feb 7 Mon Stack ADT
ArrayStack implementation
Ch. 5.1.1-5.1.4
(ArrayStack code)
Tue Lab 03: Symmetric Order
Wed Housekeeping Functions Guide: §8.6
Text: Ch. 1.5.2-1.5.3
Fri (Assignment Operators)
Templated Classes
(templated ArrayStack code)
Guide: §9, Text: Ch. 2.3
Feb 10-Feb 14 Mon Intro to Queue ADT
Queue with "circular" array
Text: Ch. 5.2.1-5.2.4
Tue Lab 04: Doubles
Wed ArrayQueue implementaiton
Introduction to Analysis of Algorithms
(ArrayQueue code)
Ch. 4.2
Fri Analysis of Algorithms, Asymptotics
Case Study: lab04 efficiency
Ch. 4
Handouts: asymp.pdf, asympLog.pdf
Code: asymp.cpp
Feb 17-Feb 21 Mon exam review
Singly-Linked Lists
Ch. 3.2
Tue First Exam (includes material through Feb 14 - info )
Wed LinkedStack implementation
LinkedStack housekeeping functions
Ch. 5.1.5
(LinkedStack code)
Fri more about LinkedStack housekeeping functions
Preview of "SmartStack" assignment
Feb 24-Feb 28 Mon Circularly Linked List
LinkedQueue implementation
Ch. 3.4, 5.2.5
(LinkedQueue code)
Tue Lab 05: Tanning Salon
Wed Double-Ended Queue Abstraction
Doubly-Linked Lists, Sentinels
Ch. 3.3, 5.3
(LinkedDeque code)
Fri Introduction to C++ vector class Ch. 6.1
(ArrayVector code)
Mar 3-Mar 7 Mon Extendable Arrays
Amortized Analysis
Ch. 6.1
Tue Lab 06: Mad Scientist
Wed Introdution to STL list class, iterators. Ch. 6.2.1, 6.2.2, 6.2.4
Fri Implementing a NodeList class Ch. 6.2.3
(NodeList code)
Mar 10-Mar 14 Mon No Class: Spring Break
Mar 17-Mar 21 Mon Sorting Algorithms: Insertion, Selection, Bubble Ch. 3.1.2, 6.4
(my code)
Tue Lab 07: Overflowing Bookshelf
Wed Sorting Algorithms: Mergesort and Quicksort Ch. 11.1, 11.2
Fri Problem Solving with Recursion parts of Ch. 3.5
Mar 24-Mar 28 Mon Problem Solving with Recursion
Binary Search
rest of Ch. 3.5; Ch.  4.2.6
Ch. 9.3.1, demo
old lab
Tue Work on prog05
Wed Introduction to Trees
Basic Algorithms on Trees
Ch. 7.1, 7.2
Fri Tree Traversals Ch. 7.2.2, 7.2.3
Mar 31-Apr 4 Mon Data Structures for Binary Trees
(LinkedBinaryTree code)
Ch. 7.3.4
Tue Second Exam (includes material through Mar. 24 - info )
Wed Housekeeping functions for Binary Trees LinkedBinaryTree code
Fri Introduction to Priority Queues
Priority Queue with Binary Heap
Ch. 8.1.1, 8.1.3, 8.1.4, 8.2
demo of Heap operations
Apr 7-Apr 11 Mon Bottom-up Heap Construction Ch. 8.3
demo of bottom-up Heap construction
Tue Lab 08: Tree Grafting 1
Wed Huffman Encoding
Introduction to prog06 and prog07
Ch. 12.4
Fri Introduction to Maps Ch. 9.1
Apr 14-Apr 18 Mon Hashing Ch. 9.2.1-9.2.4
Tue Lab 09: Tree Grafting 2
Wed Hashing: Collison Handling Ch. 9.2.5
Fri No Class: Easter Weekend
Apr 21-Apr 25 Mon
Tue Ordered Maps and Binary Search Trees Ch. 9.3, 10.1
Wed AVL Trees
(definition, insertions)
Ch. 10.2
Fri AVL Trees
Ch. 10.2
Apr 28-May 2 Mon (a bit more AVL Trees)
Tue Lab 10: Bulletin Board
Wed continued work on lab10
Fri Data Structures for Graphs Ch. 13.2
May 5 Mon

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

Michael Goldwasser
CSCI 180, Spring 2014
Last modified: Friday, 04 September 2015
Assignments | Course Home | Documentation | Lab Hours/Tutoring | Schedule | Submit