CPSC 221: Basic Algorithms and Data Structures
2014 Summer Term 1
Readings


Home Learning Goals Schedule Administration Readings Lab/Lecture Notes Assignments Computing
Required Textbooks/Materials:

Additional References on C++ and Unix that might be helpful (and often available at the CS Reading Room) include:

And many other books on discrete math, data structures, C++, Unix, etc. in the Reading Room and in the UBC Library.

Approximate Reading Schedule:
Topics Readings from the Koffman text Readings from the Epp text (4th edition)
Background that you're supposed to already know
Basics: Ch 1
Functions: 7.1, 7.2, 7.3, 11.1
Induction: 5.2, 5.3, 5.4
Logic: Ch 2
Proofs: Ch 4
Quantifiers: Ch 3
Sets: 1.2, 6.1, 6.2, 6.3
Week 1
May 12-16
Overview;
Linked lists, stacks, and queues; Introduction to algorithm analysis
Lists: 4.5
Stacks: 5
Queues: 6.1-6.3
Big-O: Ch 2.6
Optional: Iterators 4.6-4.7
Analysis of algorithms: 4.8, 11.3
Big-O Notation: 11.2
Summations: 5.2
Week 2
May 19-23
Big O, Big Omega, Big Theta; Summations; Induction; Recursion; Recurrence Relations Big-O: Ch 2.6
Recursion: 7
Analysis of Binary Search: 11.4, 11.5
Big-O Notation: 11.2
Recurrence Relations: 5.7
Recursion: 5.6
Summations: 5.2
Week 3
May 26-30
Runtime Analysis; Recursion; Correctness of Recursive Algorithms; Loop invariants
Trees, tree traversal, and binary search trees
Recursion: 7
Insertion Sort: 10.4
Trees: 8.1-8.4
AVL Trees: 11.1-11.2
Correctness of Algorithms: 5.5
InsertionSort: 11.3
Logs: 7.1, 7.2, 11.4
Trees: 10.5, 10.6
Week 4
June 2-6
Note: midterm in class June 4
Review
Dictionaries: Successor, FindClosest, RangeQuery
Priority Queues: Implemented with arrays or AVL trees
PQSort
Priority Queues: pp. 489-490
Dictionaries (=Maps): 9.2, 9.6
Week 5
June 9-14
B-Trees
Sorting: Select, Insert, Merge, Quick
Hashing
B-Trees: 11.4-11.5
Sorting: 10.2, 10.4, 10.7, 10.9
Hashing: 9.3-9.5
Week 6
June 16-20
Graphs
Counting
Review
Graphs: Ch 12 Graphs: Ch 10
Counting: 9.1-9.6
Week 7
June 23-27
Exam, Thursday June 26
 
cs221@ugrad.cs.ubc.ca