CS 2223 B Term Skills
If I had ever learnt, I should have been a great proficient.
Lady Catherine de Bourgh
1 Skills
I have identified a number of skills you will learn in this course. You will learn about these skills in lectures and readings. You will demonstrate your knowledge of these skills on the homeworks and in lecture. You will be assessed on these skills in the homeworks and the exams.
1.1 Mathematical
Recurrence Relation
Counting operations
Master Theorem
Divide and Conquer
Asymptotic Complexity
O, Omega, Theta notations
Proof by Induction
1.2 Data Structures
Stack
Queue
Bag
Linked List
Heap
Binary Tree
Balanced Binary Trees
1.3 Array-based Aggregates
Hashing (open addressing)
Sorting (QuickSort, MergeSort, InsertionSort)
Greedy Strategy
Heaps
Heapify in O(n) time [Math explanation as to why not O(n log n)]
Growing array size (*2) and shrinking (/2 when /4 of size)
Binary Array Search (search, insertion)
Dynamic Programming
1.4 Linear Linked List Aggregates and (one-way) Iterators
Hashing (bins/buckets)
MergeSort of LinkedList
1.5 Binary Trees
Binary Trees
Traversal – pre, post, in
Traversal maintaining state
Balancing via AVL (also point to Red Black)
B-Tree extension
1.6 Graphs
Breadth-first search
Depth-first search
Single-source, Shortest Path
All-pairs Shortest Path
1.7 Version : 2015/10/24
(c) 2015, George Heineman