CS 577: Introduction to Algorithms

    MWF 9:55-10:45 AM in Grainger 1100
    Spring 2017
 

      Schedule
      Course Calendar
      Piazza



    Course Information

    Course Description

    This is a first course in the design and analysis of algorithms. The main focus is on techniques for constructing correct and efficient algorithms, and on tools to reason about them. Design paradigms include greed, divide-and-conquer, dynamic programming, reduction to network flow, and the use of randomness. A second focus point is computational intractability. NP-complete problems are covered, as well as ways to deal with them. The course forms a foundation for all areas of computer science. The particular computational problems discussed have applications in artificial intelligence, computational biology, compiler construction, hardware and network protocols, and optimization.

    Textbook

    Algorithms, Etc. by Jeff Erickson, available for free here.

    References

    Jon Kleinberg and Eva Tardos, Algorithm Design, Addison-Wesley, 2005.
    S. Dasgupta, C. Papadimitriou, and U. Vazirani, Algorithms, 1st edition, 2008.
    T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Introduction to Algorithms, 2nd edition, 2001.
    K. Rosen, Discrete Mathematics and its Applications, 4th edition, 2003.

    Prerequisites

    CS 240 (Discrete Mathematics), and CS 367 (Data Structures).

    Other information For further information about course staff, policies, etc., see these slides.