Saint Louis University |
Computer Science 180
|
Dept. of Math & Computer Science |
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++ |
|
|
Wed |
Transition to C++
first glance, declarations |
|
|
Fri |
Transition to C++
Data types, operators, control structures |
|
|
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 |
|
|
Fri |
Transition to C++
Managing Large Projects (scope resolution, #include, namespaces) |
|
|
Jan 27-Jan 31 | Mon |
C++ Object Model
(value, reference, pointer variables) |
|
Tue | Lab 02: Speed Limit | ||
Wed |
Lifespan of objects
Dynamic Memory Management |
objectdemo
Ch. 1.1.3 |
|
Fri |
Continuation of "object demo"
Arrays |
objectdemo
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
demo |
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 |
prog03 | |
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
(experiment) |
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 | |
Tue | |||
Wed | |||
Fri | |||
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
slides |
|
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
demo |
|
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
(deletions) |
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 ) |