Analysis of Algorithms / Spring 2024

Course Description

Topics include analyzing sequential and parallel algorithmic strategies such as greedy methods, divide and conquer strategies, dynamic programming, search and traversal techniques, and approximation algorithms; and analyzing specific algorithms falling into these classes, NP-Hard and NP-Complete problems.

Objectives

Students will learn the basic algorithmic tools used in Computer Science, such as divide and conquer, greedy algorithms, graph algorithms, and dynamic programming. Students will learn how to argue about the correctness and efficiency of an algorithm formally. Students will witness the power of abstracting the context of a problem and focus on the computational/algorithmic task at hand.

Course Requirements

The material in this course may be challenging, and I expect students to put in the time and effort. However, my main goal is that students gain a basic understanding of the material and some enthusiasm for the exciting field of Algorithms. I encourage students to ask a lot of questions, and I am happy to slow down or repeat material whenever necessary. Some of the course grading is allocated for effort, which can be demonstrated in class, in office hours, or by exchange via email. These points are intended to help the students that are struggling: if I see that such a student is engaging with the material, I am very happy to take that into account when assigning grades.

Homework

There will be five homework assignments due every other week. Students are welcome to work in groups, but every student must write their solutions independently. Homework that appears overly similar will be considered to violate the honor code. We will review all of the problems in class so that students can evaluate their own understanding and seek help as needed.

I encourage students to type their answers, both because they will be easier to read, and also because I believe it helps you clarify your own thinking. This is a great LaTex reference, with a list of useful symbols on page 75. You can use this LaTex template file to type your solutions.

Exams

The two exams are worth 70% of the course grade: the better of the two exams will count for 40%, and the lesser of the two will count for 30%. All testing is closed-book, and notes are not permitted. The two exams, including the final, each cover about half of the semester. The final is not cumulative. I will not offer any makeup exams, so students should plan accordingly.

Book

The classes will closely follow the book “Algorithms Illuminated” by Prof. Tim Roughgarden.

Grading

Homework: 25%

Midterm: 30% or 40%

Final: 40% or 30%

Participation/Quiz: 5%

Hours

Class: Tuesday, 4:30-7:10 PM, Nguyen Engineering Building 1101

Office Hours (Instructor): Friday, 4:00-5:00, Research Hall 352

Office Hours (GTA): Click here for the Zoom info


Graduate Teaching Assistant