CS 401 Computer Algorithms
Spring, 2020
Time and location:
Monday Wednesday Friday 1:001:50pm, ARC 136
Intructor:
Anastasios Sidiropoulos,
sidiropo@uic.edu,
office hours: TBA
TA:
Mohammad Arvan,
marvan3@uic.edu,
office hours: Tuesday 9:3011:30am, location Thomas Beckham Hall 175
Overview
The goal of this course is to present fundamental techniques in the design and analysis of algorithms, including the greedy method, dynamic programming, and divide and conquer.
These methods are presented in the context of various algorithmic problems, such as shortest paths, minimum spanning trees, and network flows.
The course also discusses limitations in the design of algorithms for certain computationally intractable problems, using the language of NPcompleteness.
Textbook
Algorithm Design, by Jon Kleinberg and Eva Tardos.
Evaluation
There will be one midterm, a final exam, and several homeworks.
The final exam will be comprehensive.
The homeworks will be posted on piazza.
Each homework will be due before the beginning of a predetermined lecture.
No late assignments will be accepted.
The final score is computed using the formula: 0.35 × homeworks + 0.3 × midterm + 0.35 × final.
The final letter gade will be curved.
All the scores and grades will be posted on blackboard.
Final exam
TBA
Lectures

Jan 13, 2020. Lecture 1: Introduction (Chapter 1). [Slides, Stable matching demo]

Jan 15, 2020. Lecture 2: Analysis of algorithms (Chapter 1). [Slides]

Jan 17, 2022. Lecture 3: Review of bigO notation (Chapters 2.1, 2.2, 2.3, 2.4).

Jan 22, 2020. Lecture 4: Review of recurrence tree and Master theorem. [Slides]

Jan 24, 2020. Lecture 5: Review of graphs (Chapter 3). [Slides]