Algorithms (Section 1)
Title  Algorithms (Section 1) (550011) 

Quarter  Autumn 2021 
Instructor  Amitabh Chaudhary (amitabh@cs.uchicago.edu) 
Website  
Syllabus  **Cannot take this course in your last quarter in the program** The course is an introduction to the design and analysis of efficient algorithms, with emphasis on design techniques. Algorithmic problems include sorting and searching, discrete optimization, algorithmic graph theory, and basic numerics. Design techniques include divideandconquer methods, dynamic programming, randomization, greedy methods, as well as the design of efficient data structures. Methods of algorithm analysis include asymptotic notation, evaluation of recurrences, and the concepts of polynomialtime algorithms. Students who complete the course will have demonstrated the ability to use divideandconquer methods, dynamic programming methods, and greedy methods, when an algorithmic design problem calls for such a method. They will have learned the design strategies employed by the major sorting algorithms and the major graph algorithms, and will have demonstrated the ability to use these design strategies to solve algorithm problems when appropriate. They will have derived and solved recurrences describing the performance of divideandconquer algorithms, analyzed the time and space complexity of dynamic programming algorithms, and analyzed the efficiency of the basic graph algorithms, using asymptotic analysis. Course Content Coursework Homework: Weekly homework assignments are posted after class and are due the day before class on the following week. Homework must be submitted electronically. Homework will include a weekly programming assignment in Python. Course grade
Textbook 
Prerequisites (Courses)  MPCS 50103 Discrete Math (Immersion Math) OR a passing score on the MPCS Mathematics Placement exam.

Prerequisites (Other)  This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp (https://masters.cs.uchicago.edu/page/mpcsunixbootcamp) or take the online MPCS Unix Bootcamp Course on Canvas. 
Satisfies  Core Theory 
Time  Tuesday & Thursday 2:003:20 PM 
Location  Hybrid 