The document provides a study guide for a CSC 3110 Midterm 1 exam that will take place on Tuesday October 11th from 6:00-7:20 PM in room 216 STAT. It outlines exam policies, including that it will be closed book and notes and calculators are not allowed. The exam will consist of multiple choice and short answer questions and students should have a thorough understanding of all algorithms and concepts covered in Chapters 1-4 of the course material. Specifically, students should understand runtime analysis, basic algorithms like selection sort and binary search, and be prepared to analyze algorithms or develop algorithms from scratch.
The document provides a study guide for a CSC 3110 Midterm 1 exam that will take place on Tuesday October 11th from 6:00-7:20 PM in room 216 STAT. It outlines exam policies, including that it will be closed book and notes and calculators are not allowed. The exam will consist of multiple choice and short answer questions and students should have a thorough understanding of all algorithms and concepts covered in Chapters 1-4 of the course material. Specifically, students should understand runtime analysis, basic algorithms like selection sort and binary search, and be prepared to analyze algorithms or develop algorithms from scratch.
Time: 6:00 PM to 7:20 PM Place: 216 STAT Exam policies Closed book, closed notes. Calculators are NOT allowed. The exam begins promptly at 6:00pm and ends at 7:20pm. General Guidelines: The exam will consist of multiple choice and short answer questions. I will give you whatever Mathematical formulas that you need from Appendix A, but you need to know how to use them. Whenever I mention concepts, I expect a thorough understanding as I may ask you to explain the ideas behind what we covered. We have studied many algorithms. In general, for each algorithm, you should know the following: o How the algorithms works. o Given an example, show how the algorithm would process that example (e.g., show the result of one pass of insertion sort). o Calculate number of time a specific operation is performed. o Know the runtime of the algorithm. Given a problem to solve, you should be able to decide which design techniques is most appropriate for that problem, and generate algorithm to solve it. Given an algorithm or pseudocode, you should be able to analyze the computational complexity of that algorithm. You should understand the basic theory of algorithmic analysis (O, Θ, Ω) Chapter 1: o Know how to use the various formulas for logarithms and summations. o Understand the fundamentals of algorithm problem solving. o Understand the different problem types. o Understand the fundamental data structures being used. Chapter 2: o Running time and Basic operation o Orders of growth Worst, Average, and Best cases o Asymptotic notations (Big “Oh”, Big Omega, and Big Theta) o Comparing orders of growth o Basic Efficiency Classes o Mathematical analysis of recursive and nonrecursive functions o Backwards substitution Chapter 3: o Understand thoroughly the underlying concepts and motivation behind brute force and exhaustive search. You should be able to develop a brute force algorithm from scratch if requested. o Selection Sort o Bubble Sort o Sequential Search o String Matching o Exhaustive Search: Travelling Salesman Problem and knapsack Problem. o BFS and DFS Chapter 4: o Understand thoroughly the underlying concepts and motivation behind decrease and conquer algorithms. You should be able to develop one from scratch if requested. o Insertion sort o Topological Sorting o Permutation and subset generating algorithms. o Binary Search. o Fake Coin Problem. o Russian peasant multiplication. o Josephus Problem. Topics are not included: Closest pair and Convex Hull (page 109 - 112). Assignment problem (page 119).