CSCI 256: Algorithm Design and Analysis

Fall 2019

Home | Course Schedule | Assignments | Course Policies | Resources | CS Dept

Course Staff

Instructor: Shikha Singh
Phone: x2773
Office: TBL 309B
Lectures: MWF 12:00-12:50am in Schow Science Library (SSL) 030A
Office Hours: M 2-4pm, F 10-11 am and by appointment through GLOW
TAs: Jamie Kasulis, Markus Feng, Peter Zhao, and Tongyu Zhou
TA Hours: Th, Fri, Sun, Mon 7-9 pm and Sat 2-4 pm
TA Location: TCL 206

Course Description and Learning Goals

This course is about mathematical modeling of computational problems, developing common algorithmic techniques to solve them, and about how to analyze the correctness of the solution and the time taken to find it. By clearly formulating and carefully analyzing the structure of a problem, it is often possible to dramatically decrease the computational resources needed to solve it. In addition, by analyzing algorithms you can provide provable guarantees of their performance. We will study several algorithm design strategies that build on data structures and programming techniques introduced in CS 136 and mathematical tools introduced in MATH 200. The course will roughly cover the following topics in order: graph algorithms, greedy algorithms, divide-and-conquer, dynamic programming, NP completeness and problem reductions, approximation algorithms and randomized algorithms. At the end of the course, the students should be able to:


The primary text for the course is Algorithm Design by Jon Kleinberg and Éva Tardos, Addison-Wesley 2006. This will be supplemented by readings from the Algorithms textbook by Jeff Erickson freely available online. The course schedule describes the planned topics for each lecture and associated readings.

Course Requirements, Evaluation and Grading

Category Value
Weekly Problem Sets 35%
Class participation 5%
Midterm exam 25%
Final exam 35%

Students will be evaluated based upon their overall performance in the course, according to the table above. Exams and problem sets will be graded on the correctness, clarity, thoroughness, and appropriateness of responses.

Problem Sets. Much of the learning in this course happens through practice. Weekly problem sets will be assigned as homework. The assignments page provides more information about the preparation and submission of problem sets. The course schedule provides the planned release/due dates of assignments. The course policies page provides detailed collaboration policy with respect to assignments.

Class Participation. Learning is a collaborative endeavor and class participation is encouraged and rewarded in this class. Participation can take various forms such as coming to class prepared, staying engaged during lectures, answering and asking questions, attempting optional challenge problems on problem sets, being active on GLOW discussion forums, keeping me informed of class absences, and showing up to instructor/TA office hours.

Active class participation does not mean dominating discussions, or interjecting your peers but being a thoughtful participant in creating a vibrant, positive and inclusive classroom environment.

Midterm and Final Exam. The midterm exam will be a cumulative, open-book exam and will be held on the evening of Friday, October 25. There are two exam slots to accommodate different schedules: 5.10 pm - 7.10 pm and 7.15 pm - 9.15 pm. Both exams will be held in TCL 202. There will be no lecture on the day of the exam. If you anticipate any conflicts with this date/time, you must inform me no later than Sept 25 to arrange alternate accommodations. The final exam will be a cumulative, open-book, self-scheduled exam and will be held during the final exam period.

Special Accommodations

Students with disabilities of any kind who may need accommodations for this course are encouraged to contact Dr. G.L. Wallace (Director of Accessible Education) at 597-4672. Also, students experiencing mental or physical health challenges that are significantly affecting their academic work or well-being are encouraged to contact me and to speak with a dean so we can help you find the right resources. The deans can be reached at 597-4171. If you need accommodations for religious observances, you are encouraged to reach out to me. However, last-minute requests are unlikely to be granted.

Computer Science Honor Code

The Honor Code as it applies to non-programming assignments is outlined here (see the section Avoiding Violations). Occasionally programming problems will be assigned in this course and programming-specific guidelines will be included along with it. See the course policies page for course-specific guidelines for collaboration on problem sets. Deviation from these guidelines will be considered an honor-code violation.

Computer Ethics

Students should be aware of and abide by the College's statement on Computer Ethics. Violations including uninvited access to private information and malicious tampering or theft of computer equipment or software are subject to disciplinary action.

Copyright 2012 | Department of Computer Science :: 47 Lab Campus Drive :: Williamstown, MA 01267
413.597.3218 ::