Course Information

Be sure to read all of this page!


Description

This course will explore a number of topics in computation using multiple processors. We commonly assume, when solving a problem computationally, that there will be a single processor, and that we must design an algorithm, to be expressed in some appropriate programming language, that will direct that single processor. What happens when there are multiple processors? That is the central question of this course. It is a question that has implications for nearly every branch of CS, and we will attempt to cover some material from each of a number of those branches.

A quick note on what this course is not: It is not about the Internet. We will not be studying web browsers, internet protocols, or any of the many issues of security, privacy, anonymity, etc., that arise from the Internet. While these are interesting topics, our focus will be at a very different level.

Below is a list of the topics that are likely to be covered, roughly in the order presented. The topics are divided into three major categories. It is important to note that we not only may deviate from this list, but that we may significantly deviate from it. This is a new course, and we will be exploring how best to progress with this material, so expect some changes!

  1. Networks and buses: How do multiple processors get connected? What are the architectural issues?
  2. Concurrent algorithms: How is the process of creating an algorithm for multiple processors different? What happens when we can't guarantee the exact order of execution?
  3. Concurrent programming: How can a programming write code that directs multiple processors? At what level do the processors communicate?

Because there are so many topics, it is deeply unlikely that we will cover them all. However, I hope to get to the third segment of the course early enough that we can solve some real problems with real programming languages.


Class times, office hours, and materials

We will meet three times per week for a 50 minutes each. The meetings are at MWF at 10 am, and will be in Seeley Mudd 204.

I will have office hours from 11 am to 12 pm, MWF. I do not mean to imply that those three hours per week are the only times during which I will see you; rather, these are the automatically guaranteed hours during which I will be in my office, and you can stop by to see me without first ascertaining my presence and availability. I am often available at other times, and you need only to email me to set up another time to meet.

There is no single text for this course, as we're going to study a number of topics that no single book covers. There will be handouts and postings to these web pages as needed.


Assignments

The assignments for this course will differ depending on the section. For the earlier sections, assignments will simply be problem sets. Later, however, we will use a few programming languages and constructs for small programming assignments.

These assignments, although not large, will be important. Working with these ideas is by far the best way to absorb them. Lectures, while important, won't be enough by themselves.


Exams

There will be two exams:

  1. A one-hour mid-term exam, given during a lecture time
  2. A three-hour final exam, given during the scheduled exam period

The exact time of the mid-term exam will be annouced at least two weeks in advance. You should, however, expect it in the seventh or eighth week of the semester.


Grading

Your grade for this course will be calculated based on a forumla that will closely resemble the following one:


Attendance

You are responsible for the material presented in every lecture. I strongly recommend that you attend every lecture. If you miss a lecture, it is your responsibility to obtain the material that you missed.


Late submission

A project not submitted by its deadline will receive a failing grade.

If you need an extension, you must submit a written request for that extension at least 72 hours before the deadline. Exceptions will be made on a case by case basis for illness and emergencies.


Scott F. Kaplan
Last modified: Mon Sep 3 15:00:05 EDT 2001