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 18-Jan 20 | Wed | Introduction, Course Overview | syllabus |
Thu | Lab 00: A First Glance at C++ |
|
|
Fri |
Transition to C++
First Glance |
|
|
Jan 23-Jan 27 | Mon |
Transition to C++
Data types, operators, control structures |
|
Wed |
Transition to C++
Class Definitions |
|
|
Thu | Lab 01: Copier Reduction | ||
Fri |
Transition to C++
Operator Overloading, I/O streams |
|
|
Jan 30-Feb 3 | Mon |
Transition to C++
Managing Large Projects (scope resolution, #include, namespaces) |
|
Wed |
C++ Object Model
(value, reference, pointer variables, arrays) |
|
|
Thu | Lab 02: Speed Limit | ||
Fri |
Lifespan of objects
Dynamic Memory Management |
objectdemo
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 |
prog03 | |
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 | |
Wed | |||
Thu | |||
Fri | |||
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 | ||
Fri | |||
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
demo |
Wed | Priority Queue with Binary Heap | Ch. 8.3 | |
Thu | Lab 10: Tree Grafting (part 2) | ||
Fri | Huffman encoding algorithm |
Ch. 12.4
demo |
|
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 ) |