Review
What to know You are responsible for all material covered in lecture, the readings, or the programming assignments There will also be some questions on material from CSCI 201 and 221, but they will cover material such as arithmetic expressions, parameters, and objects that you have used in writing your programs this semester. Here’s a high-level overview to pull it all together 2CS 315: Review
Key Topics Thinking like a computer scientist: Basic algorithm analysis: T(n), Big-Oh Building blocks for writing programs New data structures: linked lists, trees, hashtables, graphs, heaps Abstract data types (ADTs): Stack, Queue, List, Dictionary, Graph, Priority Queue Thinking with diagrams Linked list operations Recursion: stack diagrams Tracing a sort algorithm Hashing Etc. 3CS 315: Review
And more … Searching algorithms: linear and binary search Sorting algorithms: selection sort, insertion sort, mergesort, radix sort, heapsort Recursion 4CS 315: Review
For algorithm analysis, know: How to compute T(n) for Straight-line code Conditionals Loops Method calls How to go from a T(n) function to Big-Oh Big-Oh for the ADT operations, search algorithms, and sorting algorithms we have studied Examples of typical code for O(1), O(log 2 n), O(nlog 2 n), O(n 2 ) 5CS 315: Review
For each ADT, know: How to recognize a problem that it can solve The names of its operations What each operation does The Big-Oh of each operation (for different implementations) How to recognize the code for its operations How to write simple methods 6CS 315: Review
For each data structure, know: Basic terminology (tree, traversals, balanced tree, collision, heapify, etc.) Relevant diagrams What the code looks like What ADTs it’s useful for 7CS 315: Review
For searching and sorting, know: the algorithms, their complexity, and some pros and cons of: Linear vs. binary search Insertion sort, selection sort, quicksort, mergesort, radix sort, heapsort 8CS 315: Review