[ news | information | syllabus | assignments | links ]

Applied Algorithms
CS143 - Spring 2010

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

7/6/2010: 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.
  • 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, 3rd 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 Presenter(s) Assignments due
    1 (Mon) 1/19 *** No class ***
    (Wed) 1/20 overview of course, introduction to compression <pdf>
    2 (Mon) 1/25 lossless compression <pdf>
    (Wed) 1/27 lossless compression of graphs
    generating random graphs <pdf>
    3 (Mon) 2/1 compression Josh, Kaylin problem set 1
    (Wed) 2/3 lossy compression <pdf>
    4 (Mon) 2/8 dynamic programming review,
    exact string matching <pdf>
    (Wed) 2/10 image resizing Jeffrey Lin (Avidan & Shamir)
    problem set 2 - part 1
    5 (Mon) 2/15 Shor's algorithm (guest lecture) Chris Umans
    (Wed) 2/17 image resizing Ian, Jeffrey Lym problem set 2 - part 2
    6 (Mon) 2/22 string algorithms <pdf>
    (Wed) 2/24 csc - sparse matrices <pdf>
    7 (Mon) 3/1 csc - sparse matrices <pdf>
    (Wed) 3/3 sorting Josh (insertion sort)
    Michael (double ordering)
    problem set 3 - part 1
    8 (Mon) 3/8 discussion of final project
    optimizing dense matrix operations <pdf>
    problem set 3 - part 2
    (Wed) 3/10 *** No class ***
    (Mon) 3/15 *** No class (spring break) ***
    (Wed) 3/17
    9 (Mon) 3/22 individual meetings proposal (3/21)
    (Wed) 3/24 working with sparse matrices
    parallelism <pdf>
    revised proposal
    10 (Mon) 3/29 models of parallel computation <pdf>
    (Wed) 3/31 models of parallel computation
    parallel algorithms
    motivation + outline
    11 (Mon) 4/5 background presentations Kaylin
    (Wed) 4/7 background presentations Richard
    Jeff Lin
    Jeff Lym
    12 (Mon) 4/12 string algorithms <pdf>
    (Wed) 4/14 string algorithms <pdf>
    13 (Mon) 4/19 string algorithms
    error correcting codes <pdf>
    (Wed) 4/21 error correcting codes <pdf>
    14 (Mon) 4/26 project presentations Mike
    Jeff Lin
    (Wed) 4/28 project presentations Kaylin
    15 (Mon) 5/3 project presentations, recap/wrap-up <pdf> Jeff Lym
    (Wed) 5/5 *** No class *** final paper


  • Problem Set 1 <pdf> <tex>
  • "Reading a Computer Science Research Paper" by Philip Fong. <doi link>
  • "The task of the referee" by Alan Jay Smith. <pdf>
  • "A theoretian's guide to the experimental analysis of algorithms" by David S. Johnson. <pdf>
  • Problem Set 2 <pdf> <tex>
  • "Seam carving for content-aware image resizing" by Avidan and Shamir. <pdf> <youtube video>
  • Problem Set 3 <pdf> <tex>
  • "Double ordering and fill-in for the LU factorization" by Baumann, Fleischmann, Mutzbauer. <doi link>
  • "Insertion sort is O(n log n)" by Bender, Farach-Colton, Mosteiro. <pdf>
  • 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