CS 251: Detailed Syllabus
The course
plans to follow the syllabus outlined below. Changes, adjustments, and additions may
be made during the semester.
Introduction and review of fundamentals
- Fundamental data structures for collections of objects: bags, queues, stacks, and linked lists
- Fundamental proof techniques: mathematical induction
Fundamental analysis tools
- Analyzing the running time
- Asympotic analysis (best case, average case, worst case)
Trees
- Representations
- Traversals
- Computation on trees
Searching and sorting
- Searching
- Sorting algorithms to use with caution
- Mergesort and Quicksort
Heaps
- Heaps as a priority queue
- Heapsort
Symbol tables
- Common operations and different implementations
- Binary search trees
Balanced search trees
Hash tables
- Hash functions
- Seperate chaining and linear probling and their performance and limitations
Introduction to graphs
- Represenations
- Traversal algorithms for undirected and directed graphs and their applications
- Special graphs: trees and dags
- Minimum spanning trees and shortest paths
Strings
- Sorting stings
- Tries
- Compression