CS361 Topics

Topics Lecture Notes Text Chapters Assignments
1 ADTs and Classes
   1.1 Abstraction and Abstract Data Types

event: Course Orientation & Intro (05/14/2012)


lecture: Abstraction and Abstract Data Types

reading: 1

selfassess: Self-Assessment: Getting Familiar with the Assessment Interface (05/16/2012)

   1.2 Implementing ADTs

lecture: Implementing ADTs in C++

reading: 2

selfassess: Self-Assessment: Function Interfaces in C++

asst: Maintaining Order in the Classroom (ungraded assignment) (05/21/2012)

2 Algorithms and Complexity
   2.1 Sorting & Searching

lecture: Sorting and Searching

reading: 3

   2.2 Complexity: Worst-Case Analysis

lecture: Analysis of Algorithms: Motivation

lecture: Analysis of Algorithms: Worst Case Complexity

lecture: The Algebra of Big-O

lecture: Analysis Rules for Program Statements

lecture: Analysis of Algorithms: the Copy-and-Paste Method

lecture: Case Studies: Analyzing Standalone Functions

selfassess: Self-Assessment: Definition of Complexity

quiz: Quiz: Big-O Algebra (05/23/2012)

selfassess: Self-Assessment: Complexity - Program Fragments

selfassess: Self-Assessment: Complexity - Functions

   2.3 Making Functions Generic

lecture: Algorithms as Patterns for Code

lecture: Function Templates

asst: Asst: A Modal of Integrity (05/25/2012)

   2.4 Complexity and Classes

lecture: Analyzing Member Functions

quiz: Quiz: Worst Case Analysis (05/26/2012)

   2.5 Recursion

lecture: Recursion

3 Vectors

lecture: Class Templates

lecture: The Standard Library: Overview

lecture: Vectors

reading: 4

asst: Asst: You Can Make Book on This (05/31/2012)

4 Pointers and Dynamic Memory
   4.1 Dynamic Allocation

reading: 5

   4.2 Sharing and Copying

lecture: Constructors and the Rule of the Big 3

lecture: A Class Design Checklist: Discussion

lecture: Implementing the Vector Class

   4.3 Linked Lists

lecture: Linked Lists

lecture: Linked List Applications

reading: 9

asst: Asst: Poly Unsaturated (06/05/2012)

5 Lists and Iterators
   5.1 Iterators

lecture: Iterators: an ADT for Positions

   5.2 Lists

lecture: The Standard List

reading: 6

selfassess: Self-Assessment: Linear Sequences

asst: Asst: New Iterations on an Old Theme (06/10/2012)

   5.3 Generic Programming

lecture: Generic Programming

asst: Asst: Gradually Removing the Loops (06/15/2012)

   5.4 Deques

lecture: Deques

6 Stacks and Queues
   6.1 Stacks

lecture: Stacks

reading: 7

asst: Asst: Keeping Your Balance (06/20/2012)

   6.2 Queues

lecture: Queues

reading: 8

asst: Asst: Queue Tips (06/25/2012)

   6.3 Priority Queues

lecture: Priority Queues

event: Lecture notes below this line will not be covered on the midterm exam.

event: All prior assignments and quizzes due (really!) by 11:59PM, 6/25/2012

exam: Midterm Exam (any 2 hr period) (06/26/2012 - 06/28/2012)

10 Trees
   10.1 General Trees

lecture: Trees

lecture: Traversing Trees with Iterators

reading: 10.1-10.4

asst: Asst: Did Birnam Wood Have Mobile Trees? (07/01/2012)

   10.2 Average Case Analysis

lecture: Analysis of Algorithms: Average Case Analysis

selfassess: Self-Assessment - Average Case Analysis (07/03/2012)

asst: Asst: It's About Time (07/09/2012)

   10.3 Search Trees

lecture: Binary Search Trees

reading: 10.5-10.8

   10.4 Heaps

lecture: Heaps

reading: 14-14.3

11 Associative Containers
   11.1 Sets

lecture: Sets and MultiSets

reading: 11

asst: Asst: Terrierfying a Mole (07/11/2012)

   11.2 Maps

lecture: Maps and MultiMaps

reading: 11.3

asst: Asst: Set Your Course by the Map (07/14/2012)

   11.3 Hashing Implementations

lecture: Hashing

lecture: Resolving Collisions

lecture: Rehashing (Variable Hashing)

lecture: Hash-Based Sets and Maps

reading: 12.1-12.5

asst: Asst: Rehashing the Matrix (07/17/2012)

   11.4 Tree-based Implementations

lecture: Balanced Search Trees

reading: 12.6-12.8

reading: (optional) 12.7

12 Sorting

lecture: Sorting --- Insertion Sort

lecture: Shell's Sort

lecture: Sorting Speed Limits

lecture: Sorting --- Merge Sort

lecture: Sorting --- Quick Sort

lecture: Heapsort

reading: 4.4

reading: 15.1

asst: Asst: Feeling Out of Sorts? (07/21/2012)

selfassess: Self-Assessment: Sorting (07/25/2012)

13 Recursive Algorithmic Styles

lecture: Converting Recursion to Iteration

lecture: A Gallery of Algorithmic Styles

reading: 15

asst: Asst: Getting Carded (07/31/2012)

14 Graphs and NP Problems
   14.1 Graphs

lecture: Graphs --- the Basics

lecture: Graphs --- ADT & Traversing

lecture: Graphs --- Sample Algorithms

reading: Textbook reading: 16

asst: Assignment: Graphic Violins (08/04/2012)

selfassess: Self-assessment: Graph Basics (08/06/2012)

   14.2 Garbage Collection

lecture: Garbage Collection

   14.3 NP

lecture: Exponential and NP Algorithms

event: All assignments and quizzes since the midterm are due (really!) by 11:59PM, 8/07/2012

exam: Final exam (any 3-hour period) (08/08/2012 - 08/09/2012)

Symbol Key
conference Conference
slides Lecture Notes
text Text
selfassess Self-Assessment (quiz not counted towards a grade)
selfassess Self-Assessment (quiz not counted towards a grade)
quiz Quiz
lab Lab Assignment
asst Assignment
cs252 CS252 (Unix) Assignment

Note: all assignment/quiz dates except for the midterm and final exams are suggestions to help keep you on pace.

All times in this schedule are given in Eastern Time.

In the Forum:

(no threads at this time)