CS 2223 Skills
If I had ever learnt, I should have been a great proficient.
Lady Catherine de Bourgh
Pride and Prejudice
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
Page 185 of the text contains a number of formulae that will prove useful during our analysis.There are others that will be useful.
Sum of Squares, including odd and even.
All: 12 + 22 + 32 + ... + n2 = n*(n+1)*(2n+1)/6
Even: 22 + 42 + 62 + ... + n2 = 2n*(n+1)*(2n+1)/3
Odd: 12 + 32 + 52 + ... + n2 = n*(2n+1)*(2n-1)/3Master Theorem
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 Overall Strategies
Divide and Conquer
Greedy Strategy
1.4 Array-based Aggregates
Hashing (open addressing)
Sorting (QuickSort, MergeSort, InsertionSort)
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.5 Linear Linked List Aggregates and (one-way) Iterators
Hashing (bins/buckets)
MergeSort of LinkedList
1.6 Binary Trees
Binary Trees
Traversal – pre, post, in
Traversal maintaining state
Balancing via AVL (also point to Red Black)
B-Tree extension
1.7 Graphs
Breadth-first search
Depth-first search
Single-source, Shortest Path
All-pairs Shortest Path
1.8 Version : 2020/03/04
(c) 2021, George T. Heineman