University of California at Berkeley
Dept. of Electrical Engineering & Computer Science
CS 19823 / CS 9823
Applications of Algorithms
Fall Semester 2010
Practical information
Lectures: 275 Soda Hall, Wednesday 68pm (A second section on Monday can be opened up if there is demand) .
CCN: CS 98  27256
CS 198  27259.
Grading and Units: P/NP, 2 Units
Instructors:
Swapnil Ralhan

Email: swap25 AT berkeley
DOT edu
Veer Bawa

Email: vbawa AT berkeley
DOT edu
Christos Papadimitriou

Email: christos AT cs DOT berkeley
DOT edu
 Phone: (510)6421559
Attendance: Attendance is mandatory, and in accordance with decal course guidelines, only 2 unexcused absences are allowed.
Back to top
Course description: This is a lab based course that accompanies CS 170. While CS 170 explores the concepts and basic techniques in the design and analysis of algorithms, this course provides practical experience related to each concept. The class will closely follow the course material taught in CS 170, and will be a 2 hour lab session. The first half hour will be a discussion of the week's topics in relation to practical considerations during implementation, as well as application of the algorithms to different real life problems.The remainder of the class will be devoted to solving 35 problems of varying difficulty. There will be three types of questions: Interview Questions, CS 170 HW questions, and Competition Questions (from the likes of Google CodeJam and TopCoder). The last 15 minutes will be a discussion of the ideas needed to solve the problems. In the last two classes students will work on a project either involving applying multiple algorithm techniques in an open source setting or solving an NPhard problem approximately (such as TopCoder Marathon Questions).
Prerequisites: CS 170 or Concurrent enrollment in CS 170; Programming experience at the level
of CS 61B
Assignments: Each week an assignment will be released(on the Friday before the class, after the CS 170 HW is due). A Forum will be set up to solve the interview questions. For the programming questions, the grading will be done online as follows: for each problem there will be a Small and a Large Input set. For each input set, on downloading a timer will start. You must run your program on the input set and submit the output and the program used before the time expires. You can use as many tries as you want. These problems can be done in class as well.
Project: The last two homeworks will be a group project, details to follow. For the project, there will be multiple input sets, and the outputs for all of them will be evaluated.
Programming Languages: Any programming language for which the compiler/interpreter is freely available can be used for the programming assignments. However, the instructors can provide assistance with only C/C++, Java, Python, Ruby, PHP, Javascript.
Back to top
Updates and Announcements
 (10/13): A Tentative Schedule, as well as Final Project basic details are available here
 (9/8): All interested/enrolled students please enter your information here
 (9/1): Website has been setup, and the room has been set. The first class will be September 8th at 6pm.
Back to top
Presentations/Problems

The Presentation is available here

Nov 10.
The Presenation is available here

Oct 27.
The Presentation is available here

Oct 20.
The Presentation is available here

Oct 13.
The Presentation is available here
 Oct 6. The Presentation can be found here
 Sept 22
 Sept 15
 Sept 8