January
Monday T Wednesday R Friday
18 

19 

University Closed
20 
Before Class:
Syllabus
Misc page
Request personal CS account

Class:

21 

University Closed
22 
Before Class:
Section 1.4 C++ Classes
Submit Video Questions & Answers (for every video throughout the semester)

Class:

Due:

BAS S305
25 
Before Class:
C++ Classes and Objects (7:34)
Object-Oriented Programming (7:54)
Three OOP Principles (8:10)
C++ Namespaces (9:02)
Preprocessor Directives (7:22)
1.5.1 Pointers
Pointers (11:34)
Dynamic Data I (14:08)
Dynamic Data II (14:41)

Class:
1.4 C++ Classes (textbook pages 12-21)

Due:

26 

27 
Before Class:
1.5.2 Lvalues, Rvalues, and References
1.5.3 Parameter Passing
1.5.4 Return Passing
1.5.5 std::swap and std::move
References (7:04)

Class:
1.4.3 Preprocessor Directives
1.5.1 Pointers

Due:
hwkVisualStudio
hwkClasses

28 

29 
Before Class:
3.1 Abstract Data Types (ADTs)
3.2 List ADTs
Linked Lists (12:56) (see also PowerPoint animations)

Class:
1.5.1 Pointers

Due:
labParser

February
Monday T Wednesday R Friday
Last Day to Drop Without a Grade
Before Class:
1.5.6 The Big Five
Constructors and Destructors (7:47)

Class:
1.5.2 References

Due:
hwkPointers

Before Class:
1.5.7 C-style Strings
C-style Strings (7:11)

Class:
Visual Studio: Debugging

Due:
hwkReferences


Before Class:
1.6.1 Function Templates
1.6.2, 1.6.5 Class Templates
1.6.3 Overloaded Operators
Function Templates (10:18)
Class Templates (9:49)
Overloaded Operators (12:10)
Overloaded Operators Example (3:52)

Class:
1.5.3 Parameter Passing
1.5.4 Return Passing
1.5.5 std::swap and std::move
3.1 Abstract Data Types (ADTs)
3.2 List ADTs

Due:
hwkDebugging

Before Class:
1.6.4 Function Objects
1.7 Matrices
Passing A Function as an Argument (4:49)
Multidimensional Arrays (7:03)
Derivation and Inheritance
Derivation and Access Control
Inheritance: Introduction (11:29)
Inheritance: Kinds of Inheritance (10:14)

Class:
1.5.6 The Big Five
1.5.7 C-style Strings

University Closed
10 
Before Class:
Polymorphism
Run-Time Type Information and Casts
Polymorphism: Introduction (12:47)
Virtual Function Tables (3:24)
Abstract Base Classes (4:12)

Class:
1.6.1 Function Templates
1.6.2, 1.6.5 Class Templates
1.6.3 Overloaded Operators
1.6.4 Function Objects
1.7 Matrices

Due:
Function Templates Exercises
Class Templates Exercises
Overloaded Operators Exercises

11 

12 
Before Class:
3.3-3.7, 4.8, 6.9 The STL
3.5 C++ Friends
STL Containers (12:17) (see also vector class and list class)
STL Iterators (8:54)
STL Algorithms (7:44)

Class:
Inheritance
Polymorphism
Virtual Function Tables
Abstract Base Classes

Due:
labLinkedLists
Visit Tutoring Lab (and sign the log)
hwkBigFive
hwkC-styleStrings
hwkFunctionTemplates
hwkClassTemplates
hwkOverloadedOperators
hwkMultidimensionalArrays
15 
Class:
3.3-3.7, 4.8, 6.9
STL slides
3.5 C++ Friends

Due:
hwkInheritance

16 

17 
Class:
Polymorphism
Virtual Function Tables
Abstract Base Classes
Exam 1 Game (Topics)

Due:
hwkPolymorphism
hwkStl
18 

19 
Before Class:
1.3 Recursion
Recursion (12:17)

Class:
1.3 Recursion

Due:
labStl_Inheritance_Polymorphism
22 
Class:
Exam1 (Topics)
23 

24 
Before Class:
2.0 Algorithm Analysis
Algorithm Analysis: Introduction (6:41)
Algorithm Analysis: Growth Rates (16:46)

Class:
2.0 Algorithm Analysis

Due:
hwkRecursion
25 

26 
Before Class:
Algorithm Analysis: Case Study (9:26)

Class:
2.0 Algorithm Analysis
Case Study: Sequential vs. Binary Search
29 
Before Class:
4.1 Trees
4.2 Binary Trees
Trees: Terminology A (12:07)
Trees: Terminology B (4:33)
Trees: Binary Trees (12:04)

Class:
4.1 Trees (game)
4.2 Binary Trees

Due:
hwkAlgorithmAnalysis

March
Monday T Wednesday R Friday

Before Class:
4.3 Binary Search Trees
4.3.6 Efficiency
Trees: Binary Search Trees A (14:39)
Trees: Binary Search Trees B (5:00)
Trees: Efficiency (9:12)

Class:
4.3 Binary Search Trees
4.3.6 Efficiency

Before Class:
4.4 AVL Trees (see also AVL Tree Visualization)
4.5 Splay Trees (see also Splay Tree Visualization)
Trees: Splay Trees (9:19)

Class:
4.4 AVL Trees (handout)
4.5 Splay Trees (handout)
Spring Break


Spring Break

10 

Spring Break
11 

14 
Before Class:
4.6 Tree Traversals (revisited)
4.7 B-Trees

Class:
4.5 Splay Trees (handout)
4.6 Tree Traversals (revisited)
4.7 B-Trees
15 

16 
Class:
Exam2 Game (Topics)

Due:
hwkTrees
17 

18 
Class:
Exam2 (Topics)
21 
Before Class:
5.1 Hashing
5.2 Hash Functions
5.3 Separate Chaining
Hashing: Introduction (11:54)
Hashing: Handling Collisions (14:53)

Class:
5.1 Hashing
5.2 Hash Functions
5.3 Separate Chaining

Due:
labTrees
22 

23 
Before Class:
5.4. Resolving Collisions
5.5 Rehashing
Hashing: Rehashing (1:46)
Hashing: Efficiency (9:27)

Class:
5.4. Resolving Collisions
5.5 Rehashing
Efficiency of Hashing
24 

Last day to withdraw without Department Chair's signature
25 
Before Class:
6.1-6.3.4 Priority Queues (Heaps)
Priority Queues (2:42)
Heaps (10:52)

Class:
6.1 Priority Queue
6.2-6.3.4 Heaps

Due:
hwkHashes
28 
Before Class:
6.3.4 BuildHeap
6.4 Applications of Priority Queues
6.9 Priority Queues in the STL
Heaps: BuildHeap (6:42)
Heaps: Efficiency (6:57

Class:
6.3.4 BuildHeap
6.4 Applications of Priority Queues
6.9 Priority Queues in the STL

29 

30 
Before Class:
7.1 Sorting Intro
7.2 Insertion Sort
7.3 Sorting Analysis I
Sorting Introduction (3:12)
Insertion Sort (6:46)
Bubble Sort (7:48)

Class:
7.1 Sorting Intro
7.2 Insertion Sort
7.3 Sorting Analysis I

Due:
labHashing
hwkPriorityQueues
31 


April
Monday T Wednesday R Friday
Before Class:
7.4 Shellsort
7.5 Heapsort
7.6 Mergesort
7.8 Sorting Analysis II
Heapsort (6:12)
Mergesort (16:17)

Class:
7.5 Heapsort
7.6 Mergesort
7.7 Quicksort
7.8 Sorting Analysis II
Before Class:
7.7 Quicksort
7.8 Sorting Analysis II
Quicksort (16:52)

Class:
7.5 Heapsort
7.6 Mergesort
7.7 Quicksort
7.8 Sorting Analysis II

Before Class:
7.11 Linear-Time Sorts: Bucket Sort and Radix Sort
7.12 External Sorting
Linear Sorts (11:33)
External Sorting (11:54)

Class:
7.11 Linear-Time Sorts: Bucket Sort and Radix Sort
7.12 External Sorting

Before Class:
9.1 Graphs
Graph Traversals (16:20)

Class:
9.1 Graphs (including Terminology)

Due:
hwkSorting
11 
Class:
Exam3 Game (Topics)

Due:
labSorting
12 

13 
Class:
Exam3 (Topics)
14 

15 
Before Class:
9.2 Topological Sorting
9.3 Shortest Paths (Dijkstra's Algorithm)
9.5 Minimum Spanning Trees (Prim's Algorithm)
Graphs: Topological Sorting (3:58)
Graphs: Topological Sorting Example (4:25)
Graphs: Shortest Paths (9:01)
Graphs: Spanning Trees (11:25)

Class:
9.2 Topological Sorting
9.3 Shortest Paths (Dijkstra's Algorithm)
9.5 Minimum Spanning Trees (Prim's Algorithm)
18 
Before Class:
9.6 Applications of Depth-First Search
9.7 Introduction to NP-Completeness
Graphs: Circuits (11:40)

Class:
9.6 Applications of Depth-First Search (including Circuits)
9.7 Introduction to NP-Completeness
19 

20 
Before Class:
10.1 Greedy Algorithms
10.2 Divide and Conquer
Algorithm Design: Greedy Algorithms (4:35)
Algorithm Design: Greedy Algorithms: Huffman Codes (9:10)
Divide and Conquer (2:37)
Divide and Conquer: Closest Points (4:43)

Class:
10.1 Greedy Algorithms
10.2 Divide and Conquer

Due:
hwkGraphs
21 

22 
Before Class:
10.3 Dynamic Programming
10.4 Randomized Algorithms

Class:
10.3 Dynamic Programming
10.4 Randomized Algorithms

Due:
labTopologicalSorting
25 
Before Class:
10.5 Backtracking Algorithms

Class:
10.5 Backtracking Algorithms
26 

27 
Class:
Final Game Review (Topics)

Due:

28 

29 
Class:
Final: 10:00 AM - Noon (Topics)

May
Monday T Wednesday R Friday


Due:
labBacktracking