Course Schedule, CPSC 331, Fall 2010

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

 Tentative Course Schedule

Week #1: Introduction to Correctness of Algorithms

Monday, September 13 Lecture #1 Introduction to CPSC 331
Wednesday, September 15    Lecture #2 Correctness of Algorithms and Programs
Friday, September 17 Lecture #3 Correctness of Algorithms and Programs, continued
 
Lecture supplement: Proving the Correctness of a Simple Program
 

Week #2: Introduction to the Analysis of Algorithms

Monday, September 20 Lecture #4 Principles of Testing
Wednesday, September 22 Lecture #5 Introduction to Algorithm Analysis
Friday, September 24 Lecture #6 Introduction to Algorithm Analysis (continued)
 
First Tutorial: Tutorial #1 Java For C++ Programmers
Second Tutorial: Tutorial #2 Proofs of Correctness of Algorithms
 
Friday, September 24 Assignment 1 Set (due in 2 weeks)
 

Week #3: Abstract Data Types and Basic Data Structures

Monday, September 27 Lecture #7 Asymptotic Notation
Wednesday, September 29 Lecture #8 Abstract Data Types, Data Structures, and Their Implementations
Friday, October 1 Lecture #9 Basic Data Structures
 
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, October 4 Lecture #10 Basic Data Structures (continued)
Wednesday, October 6 Lecture #11 Stacks
Friday, October 8 Lecture #12 Queues
 
Lecture supplement: Amortized Analysis of Operations on Dynamic Arrays
 
First Tutorial: Tutorial #5 Asymptotic Notation
Second Tutorial: Tutorial #6 Arrays and Lists
 
Friday, October 8 Assignment 1 Due at 4:00 pm
Friday, October 8 Assignment 2 Set (due in 3 weeks)
 

Week #5: Binary Search Trees

Monday, October 11 Thanksgiving No lecture
Wednesday, October 13 Lecture #13 Binary Search Trees: Insertion and Deletion
Friday, October 15 Lecture #14 Trees, Binary Trees, and Binary Search Trees (continued)
 
Lecture supplement: Tree Traversals
Lecture supplement: Analysis of Operations on Binary Search Trees
 
Tutorial Exercise: Tutorial #7 Stacks
 

Week #6: Binary Search Trees, Concluded

Monday, October 18 Lecture #15 Average-Case Analysis of Binary Search Trees
Wednesday, October 20 Lecture Time Questions about Term Test 1
Friday, October 22 Lecture #16 Introduction to Red-Black Trees
 
First Tutorial: Tutorial #8 Queues
Second Tutorial: Tutorial #9 Term Test 1 Review
Wednesday, October 20 Term Test 1 6:00–7:30pm in ST 143
 

Week #7: Hash Tables

Monday, October 25 Lecture #17 Red-Black Trees: Rotations and Insertions
Wednesday, October 27 Lecture #18 Red-Black Trees: Deletions
Friday, October 29 Lecture #19 Hash Tables with Chaining
 
Lecture supplement: Additional Kinds of Search Trees
 
First Tutorial: Tutorial #10 Trees, Binary Trees, adn Binary Search Trees
Second Tutorial Tutorial #11 Discussion of Term Test 1
 
Friday, October 29 Assignment 2 Due at 4:00 pm
Friday, October 29 Assignment 3 Set (due in 3 weeks)
 

Week #8: Searching and Sorting

Monday, November 1 Lecture #20 Hash Tables with Open Addressing
Wednesday, November 3 Lecture #21 Algorithms for Searching
Friday, November 5 Lecture #22 Classical Sorting Algorithms
 
Lecture supplement: Hash Functions and Additional Hashing Strategies
 
First Tutorial: Tutorial #12 Red-Black Trees
Second Tutorial Tutorial #13 Hash Tables
 

Week #9: Searching and Sorting, Continued

Monday, November 8 Lecture #23 Merge Sort
Wednesday, November 10 Lecture #24 Binary Heaps
Friday, November 12 Reading Days No lecture
 
First Tutorial: Tutorial #14 Algorithms for Searching
Second Tutorial Tutorial #15 Classical Sorting Algorithms
 

Week #10: Searching and Sorting, Concluded

Monday, November 15 Lecture #25 Operations on Binary Heaps
Wednesday, November 17 Lecture #26 Applications of Binary Heaps
Friday, November 19 Lecture #27 Quicksort
 
First Tutorial: Tutorial #16 Merge Sort
Second Tutorial Tutorial #17 Binary Heaps and Their Applications
 
Friday, November 19 Assignment 3 Due at 4:00 pm
Friday, November 19 Assignment 4 Set (due in 3 weeks)
 

Week #11: Graphs and Their Algorithms

Monday, November 22 Lecture #28 Graphs and Their Representations
Wednesday, November 24 Lecture Time Questions about Term Test 2
Friday, November 26 Lecture #29 Trees, Spanning Trees, and Subgraphs
 
First Tutorial: Tutorial #18: Quicksort
Second Tutorial: Tutorial #19: Term Test 2 Review
Wednesday, November 24 Term Test 2 6:00–7:30pm in ST 143
 

Week #12: Graphs and Their Algorithms, Continued

Monday, November 29 Lecture #30 Graph Search: Depth-First Search
Wednesday, December 1 Lecture #31 Graph Search: Breadth-First Search
Friday, December 3 Lecture #32 Computation of Minimum-Cost Paths: Dijkstra's Algorithm
Lecture supplement: Proof of Lemma 5 in the Notes on Breadth-First Search
 
First Tutorial: Tutorial #20: Introduction to Graphs
Second Tutorial: Tutorial #21: Graph Search
 

Week #13: Graphs and Their Algorithms, Concluded

Monday, December 6 Lecture #33 Computation of Minimum-Cost Spanning Trees: Prim's Algorithm
Wednesday, December 8 Lecture #34 Analysis of Prim's Algorithm
Friday, December 10 Lecture #35 Other Graph Problems and Algorithms
 
Lecture supplement: Proof of a Key Lemma in the Analysis of Prim's Algorithm
 
First Tutorial: Tutorial #22: Computation of Minimum-Cost Paths
Second Tutorial: Tutorial #23: Computation of Minimum-Cost Spanning Trees
 
Friday, December 10 Assignment 4 Due at 4:00 pm
 

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