CS 336: Syllabus

Syllabus for Fall 2008

Course Outline

This course is an introduction to the principles and applications of parallel and distributed computing. Parellel and distributed processing are used in many contexts to increase the efficiency of both large and small computations. In the fall of 2008, you will have the opportunity to write parallel or distributed programs in three contexts -- (1) multi-threaded programming with POSIX threads, (2) MPI proamming on a cluster, and (3) distributed programming with the Matlab Distributed Computing Toolbox.


The course grade will be determined as follows:

Homework 25%
Projects 66%
Class Participation 9%

The minimum course grade you will receive is based on your total point score (between 0 and 100) according to the code snippet below:

if (score >= 93)
    grade = 'A';
elseif (score >= 90 && score < 93)
    grade = 'A-';
elseif (score >= 87 && score < 90)
    grade = 'B+';
elseif (score >= 83 && score < 87)
    grade = 'B';
elseif (score >= 80 && score < 83)
    grade = 'B-';
elseif (score >= 77 && score < 80)
    grade = 'C+';
elseif (score >= 73 && score < 77)
    grade = 'C';
elseif (score >= 70 && score < 73)
    grade = 'C-';
elseif (score >= 67 && score < 70)
    grade = 'D+';
elseif (score >= 63 && score < 67)
    grade = 'D';
elseif (score >= 60 && score < 63)
    grade = 'D-';
    grade = 'F';


Short programming and written assignments provide you the opportunity to internalize concepts presented in class. Each of you must turn in your own work, but you are welcome to discuss relevant ideas with colleagues. Write down on every assignment the names of people you worked with.

Programming Projects

There will be three substantive programming projects. You are encouraged to collaborate with classmates, but are individually responsible for the material (again, see the cite your colleagues).

Class Participation

You are expected to attend every class. Discussion is a vital part of the learning experience and we cannot have good discussion without you!

Late Assignments

It is important to complete your work by the deadline. In this course, we will pushing our infrastructure to its limits. This means there will be problems. Start early! Unless there is a catastrophic failure that lasts for multiple days, late projects will be penalized (10% per day past the deadline).

Academic Honesty

Honesty is at the heart of the academic enterprise. I do not expect to encounter any dishonesty among mature computer science students, but if the unexpected happens, I will not hesitate to follow the procedures in the Colby College catalogue. If you have any questions, please ask me!

Office Hours

Please visit me in my office! During office hours, I will of course be available. Outside of office ours, I will often be in my office with the door open. Please come in! If you want to be sure I will be there, just ask me in person or send me an email. I will do my best to be there.