CS 311 Algorithms and Complexity

Robert Cohen

Spring 2007

Goals

Welcome to CS311!  CS311 is about helping you learn important techniques to solve problems algorithmically.  We will study general methods that help us find efficient solutions to a wide range of practical problems. Additionally, we will look at ways to identify problems that are unlikely to have efficient optimal solutions, and find near optimal solutions.

Our study of algorithms is machine and language independent.  Much of your work will be analyzing problems, finding algorithmic solutions, and proving that your solution is correct and efficient.  However, the best way to truly understand an algorithm is to implement it.  Therefore, there will be some programming projects (in Java) during the semester.

Access to materials

All the material for the course will be available on line. You will be able to find them on the web on the course home page, http://www.stonehill.edu/compsci/cs311/.

Textbooks

Kleinberg and Tardos, Algorithm Design, Pearson Addison Wesley, 2006, ISBN 0-321-29535-8 

Assignments and Grading

We will be covering material related to the first 8 chapters of the text (and more).  You will need to demonstrate your understanding of the algorithms and techniques we study.  Understanding an algorithm usually includes being able to:

·        identify applications where the algorithm is appropriately used, including understanding the tradeoffs when several are possible;

·        explain the steps of the algorithm and motivate its time and space complexity; and

·        implement the algorithm.

Final Grade

Your grade is a reflection of my assessment of how well you have mastered the course material.   I will use your scores on coursework to determine your grade.  The following table shows what my grades mean qualitatively:

A

Demonstrates mastery of most course topics.   
Consistently exceeds minimum requirements for coursework.

B

Demonstrates mastery of most course topics.   

Occasionally exceeds minimum requirements for coursework.

C

Demonstrates understanding of most course topics.   
Meets minimum requirements for most coursework.

D

Demonstrates understanding of at least some course topics.   
Meets minimum requirements for most coursework.

F

Demonstrates understanding of few course topics.   
Meets minimum requirements for only a few coursework.

Assignments – 80%

There will be approximately 12 assignments during the semester.  Some assignments will be written while others are programming projects.  All assignments will be collaborative, which means you can work with one other student on your projects. 

No late assignments will be accepted for any reason (including illness, technical problems, system crashes, etc.).  Get your assignments done early!

Presentations – 20%

On days that written assignments are due we will have student presentations of solutions.  Each individual will have to lead the discussion of at least two solutions during the semester.  You will be marked on both your presentation and on your participation in the discussion of other presentations.

There will be no exams for CS311.