[ news | information | syllabus | assignments | links ]

Applied Algorithms
CS181c - Spring 2009

Lectures: MW 2:45-4PM in Lincoln 1135
Prof. Chen

8/18/2009: I've archived all of the notes and problem sets (ie, most of the links below don't work) and am only leaving up the syllabus for reference. If you're looking for the material, you may be able to find a link to a more recent offering of the class here or here.


Please check here regularly for general announcements/thoughts/etc. You are responsible for any information posted here.
  • 090224: for the final project, all Monday/Wednesday deadlines are at 2:45PM (ie, classtime). The March 13th deadline (the Friday before spring break) is at 5PM.
  • Information

    This course focuses on the application of algorithms to real-world problems. We will examine the role of algorithms in domains such as computational biology, scientific computing, and networks, and then highlight some common issues that arise when theoretical algorithms are implemented and evaluated on real-world data. The focus will be on general techniques for identifying and addressing these issues. Students will write code, read papers, and complete a research-oriented final project.

    The prerequisite for the course is algorithms (cs140). There is no required textbook, although I recommend having an algorithms textbook (e.g. Introduction to Algorithms, 2nd Edition by Cormen, Leiserson, Rivest, and Stein) around to consult as needed.


    Any topics or assignments that are listed for dates in the future should be taken as (potentially very) tentative. Anything for a date at least 2 days in the past will accurately reflect what actually happened in the class.

    Week Date In class Assignments due
    1 (Mon) 1/19 *** No class today! ***
    (Wed) 1/21 introduction
    exact matching on strings in linear time
    2 (Mon) 1/26 dynamic programming
    (Wed) 1/28 ps1 paper presentation (Kurt) & discussion PS1 - part 1
    3 (Mon) 2/2 No class (work on problem set)
    (Wed) 2/4
    4 (Mon) 2/9 ps1 code demo/discussion (Lucy, Erik)
    wrapping up string similarity
    PS1 - part 2
    (Wed) 2/11 exact matching
    suffix trees
    5 (Mon) 2/16 lossless compression
    (Wed) 2/18 ps2 paper presentation (Greg)
    graph compression
    6 (Mon) 2/23 random graphs
    sparse matrix representations
    (Wed) 2/25 dense matrix computations
    7 (Mon) 3/2 ps3 paper presentation (Andrew)
    fill-reducing orderings
    PS3 - part 1
    (Wed) 3/4 fill-reducing orderings
    final project: proposal (draft)
    8 (Mon) 3/9 ps3 code demo/discussion (Martijn, Steven) PS3 - part 2
    (Wed) 3/11 fill-reducing orderings 3/13: final project: proposal (revised)
    (Mon) 3/16 *** No class (spring break) ***
    (Wed) 3/18
    9 (Mon) 3/23 card sort
    modelling parallelism (work-time, PRAM, BSP)
    (Wed) 3/25 modelling parallelism (LogP)
    parallel prefix, systolic arrays
    final project: intro+motivation+background
    10 (Mon) 3/30 project presentations (background)
        Lucy and Kurt, Yaniv
    (Wed) 4/1 project presentations (background)
        Steven, Erik, Martijn
    11 (Mon) 4/6 project presentation (background):   Andrew
    parallel algorithms
    (Wed) 4/8 project presentation (background):   Greg
    parallel algorithms
    12 (Mon) 4/13 ps4 paper presentation (Yaniv)
    parallel algorithms
    (Wed) 4/15 error correcting codes
    13 (Mon) 4/20 error correcting codes
    (Wed) 4/22 final project: final paper (draft)
    14 (Mon) 4/27 guest lecture by Henry Cohn
    (Wed) 4/29 project presentations:
        Steven, Andrew
    15 (Mon) 5/4 project presentations:
        Kurt and Lucy, Erik, Greg
    (Wed) 5/6 project presentations:
        Martijn, Yaniv
    final project: final paper (final)


  • Problem Set 1 <pdf> <tex>
  • "Seam carving for content-aware image resizing" by Avidan and Shamir. <pdf> <youtube video>
  • Problem Set 2 <pdf> <tex>
  • "The role of elimination trees in sparse factorization" by Liu. <DOI link>
  • Problem Set 3 <pdf> <tex>
  • "A theoretician's guide to the experimental analysis of algorithms" by Johnson. <pdf>
  • "Double ordering and fill-in for the LU factorization" by Baumann, Fleischmann, and Mutzbauer. <DOI link>
  • Problem Set 4 <pdf> <tex>
  • "The Byzantine generals problem" by Lamport, Shostak, and Pease. <DOI link>
  • Final project <pdf> <tex>
  • Links

  • Conferences on algorithms (general):
  • SODA (ACM/SIAM symposium on discrete algorithms)
  • ESA (European symposia on algorithms)

  • "Computers do not solve problems, they execute solutions"
    --Laurent Gasser