CISC 3220 Analysis of Algorithms


Basic Information and Requirements

Topics

Algorithms, data structures, and their analysis. Applications for and solution to recurrence problems. Upper and lower bounds on complexities of various problems. Classification by design structures. Sorting methods, graph and selection algorithms. Pattern matching. Efficient computation of transitive closure and equivalences. NP-completeness. Prerequisite: CISC 3120 and 3130.

Homework assignments

There will be one homework assignment every week. Unless notified otherwise, the homework is due in one week after it is assigned. Please email your homework to cisc3220 (AT) picat-lang.org. Please write your name, student ID, and the number of the assignment in the subject, and attach your answers to the email as a PDF file. Sample answers to the questions will be given and selected questions will be reviewed in class. There will be a one-point deduction for each missing homework or late submitted homework. The total deduction will not exceed 10 points.

Exams and Grading

There will one midterm exam and one accumulative final exam, both closed-book. The midterm accounts for 30%, the final accounts for 50%, and the remaining 20% of the grade will be based on homework.

Course Outline

  1. Introduction
  2. Asymptotic Notation; Recurrences; Substitution, Master Method
  3. Divide-and-Conquer: Merge Sort, Strassen, Quick Sort
  4. Sorting and Order Statistics
  5. Heapsort, Linear-time Sorting, Quick Selection
  6. Hashing, Hash Functions
  7. Binary Search Trees; Red-Black Trees;
  8. Dynamic Programming
  9. Greedy Algorithms
  10. Graph Algorithms: Breadth-first search; Depth-first search; ; Shortest Paths; Maximum Flow
  11. NP-Completeness (Solving NP-Complete Problems with Picat)
  12. Final Exam 5/22/2017 6:00 PM - 8:00 PM 3413 N (Reviews