Course Schedule, CPSC 331, Winter 2012

home page -  news -  syllabus -  schedule -  assignments -  tutorials -  tests -  java -  references -  Mike Jacobson

 Tentative Course Schedule

Week #1: Introduction to Correctness of Algorithms

Monday, January 9 Lecture #1 Introduction to CPSC 331
Wednesday, January 11    Lecture #2 Correctness of Algorithms and Programs
Friday, January 13 Lecture #3 Correctness of Algorithms and Programs, continued
 

Week #2: Introduction to Testing

Monday, January 16 Lecture #4 Correctness of Algorithms and Programs, continued
Wednesday, January 18 Lecture #5 Principles of Testing
Friday, January 20 Lecture #6 Principles of Testing, continued
 
First Tutorial: Tutorial #1 Java For C++ Programmers
Second Tutorial: Tutorial #2 Proofs of Correctness of Algorithms
 
Friday, January 20 Assignment 1 Set (due in 3 weeks)
 

Week #3: Introduction to the Analysis of Algorithms

Monday, January 23 Lecture #7 Introduction to Algorithm Analysis
Wednesday, January 25 Lecture #8 Introduction to Algorithm Analysis (continued)
Friday, January 27 Lecture #9 Asymptotic Notation
 
Lecture supplement: Analyzing the Running Time of an Algorithm
Lecture supplement: Using Asymptotic Notation
 
First Tutorial: Tutorial #3 Testing of Programs
Second Tutorial: Tutorial #4 Analysis of Running Time of Algorithms
 

Week #4: Basic Data Structures

Monday, January 30 Lecture #10 Abstract Data Types, Data Structures, and Their Implementations
Wednesday, February 1 Lecture #11 Basic Data Structures
Friday, February 3 Lecture #12 Stacks
 
Lecture supplement: Amortized Analysis of Operations on Dynamic Arrays
 
First Tutorial: Tutorial #5 Asymptotic Notation
Second Tutorial: Tutorial #6 Arrays and Lists
 
 

Week #5: Binary Search Trees

Monday, February 6 Lecture #13 Queues
Wednesday, February 8 Lecture #14 Binary Search Trees
Friday, February 10 Lecture #15 Binary Search Trees (continued)
 
Lecture supplement: Analysis of Operations on Binary Search Trees
Lecture supplement: Average-Case Analysis of Binary Search Trees
Lecture supplement: Tree Traversals
 
First Tutorial: Tutorial #7 Stacks
Second Tutorial: Tutorial #8 Queues
 
Monday, February 6 Assignment 1 Due at 4:00 pm
Monday, February 6 Assignment 2 Set (due in 3 weeks)
 

Week #6: Binary Search Trees, Concluded

Monday, February 13 Lecture Time Questions about Term Test 1
Wednesday, February 15 Lecture #16 Introduction to Red-Black Trees
Friday, February 17 Lecture #17 Red-Black Trees: Rotations and Insertions
 
Lecture supplement: Additional Kinds of Search Trees
 
First Tutorial: Tutorial #9 Term Test 1 Review
Second Tutorial: Tutorial #10 Binary Search Trees
 
Monday, February 13 Term Test 1 5:00–6:30pm in SB 142
 

February 20-24

Reading Week No lectures
 

Week #7: Hash Tables

Monday, February 27 Lecture #18 Red-Black Trees: Deletions
Wednesday, February 29 Lecture #19 Hash Tables with Chaining
Friday, March 2 Lecture #20 Hash Tables with Open Addressing
 
Lecture supplement: Hash Functions and Additional Hashing Strategies
 
First Tutorial Tutorial #11 Discussion of Term Test 1
Second Tutorial: Tutorial #12 Red-Black Trees
 
Friday, March 2 Assignment 2 Due at 4:00 pm
Friday, March 2 Assignment 3 Set (due in 3 weeks)
 

Week #8: Searching and Sorting

Monday, March 5 Lecture #21 Algorithms for Searching
Wednesday, March 7 Lecture #22 Classical Sorting Algorithms
Friday, March 9 Lecture #23 Classical Sorting Algorithms
 
First Tutorial Tutorial #13 Hash Tables
Second Tutorial: Tutorial #14 Algorithms for Searching
 

Week #9: Searching and Sorting, Continued

Monday, March 12 Lecture #24 Merge Sort
Wednesday, March 14 Lecture #25 Binary Heaps
Friday, March 16 Lecture #26 Operations on Binary Heaps
 
First Tutorial Tutorial #15 Classical Sorting Algorithms
Second Tutorial: Tutorial #16 Merge Sort
 

Week #10: Searching and Sorting, Concluded

Monday, March 19 Lecture #27 Applications of Binary Heaps
Wednesday, March 21 Lecture #28 Quicksort
Friday, March 23 Lecture #29 Graphs and Their Representations
 
First Tutorial Tutorial #17 Binary Heaps and Their Applications
Second Tutorial: Tutorial #18: Quicksort
 
Friday, March 23 Assignment 3 Due at 4:00 pm
Friday, March 23 Assignment 4 Set (due in 3 weeks)
 

Week #11: Graphs and Their Algorithms

Monday, March 26 Lecture Time Questions about Term Test 2
Wednesday, March 28 Lecture #30 Trees, Spanning Trees, and Subgraphs
Friday, March 30 Lecture #31 Graph Search: Depth-First Search
 
Lecture supplement: Proof of Tree Properties
 
First Tutorial: Tutorial #19: Term Test 2 Review
Second Tutorial: Tutorial #20: Introduction to Graphs
 
Monday, March 26 Term Test 2 5:00–6:30pm in SB 142
 

Week #12: Graphs and Their Algorithms, Continued

Monday, April 2 Lecture #32 Graph Search: Breadth-First Search
Wednesday, April 4 Lecture #33 Computation of Minimum-Cost Paths: Dijkstra's Algorithm
Friday, April 6 No Lecture Good Friday
 
Lecture supplement: Proof of Lemma 5 in the Notes on Breadth-First Search
 
First Tutorial: Tutorial: Discussion of Term Test 2
Second Tutorial: Tutorial #21: Graph Search
 

Week #13: Graphs and Their Algorithms, Concluded

Monday, April 9 Lecture #34 Computation of Minimum-Cost Spanning Trees: Prim's Algorithm
Wednesday, April 11 Lecture #35 Other Graph Problems and Algorithms
Friday, April 13 Lecture Time Questions about Final exam
 
First Tutorial: Tutorial #22: Computation of Minimum-Cost Paths
Second Tutorial: Tutorial #23: Computation of Minimum-Cost Spanning Trees
 
Friday, April 13 Assignment 4 Due at 4:00 pm
 

Last updated:
http://www.cpsc.ucalgary.ca/~jacobs/cpsc331/W12/schedule.php