Course Overview

A printable version course overview is also available.

Contents

Introduction

This graduate research course is aimed at Ph.D. students in Area II. M.Eng. students who plan to write their Master's thesis on the topic of parallel systems may also wish to participate. This class cannot be used to satisfy the TQE requirements for the Ph.D. program.

This class covers theoretical foundations of general-purpose parallel computing systems, from languages to architecture. We will focus on the algorithmic underpinnings of parallel systems. The topics for the class will vary depending on student interest, but will likely include multithreading, synchronization, race detection, load balancing, memory consistency, routing networks, message-routing algorithms, and VLSI layout theory. The class will emphasize randomized algorithms and probabilistic analysis, including high-probability arguments.

The focus of the class is the term project, which can be done individually or in groups of two and will account for 70 percent of the grade. Students are encouraged to advance their own research interests in their project. The hope is that many of these term projects will lead to theses or publishable papers. In addition, there will be several problem sets and programming labs.

A detailed schedule of topic coverage will appear in the Course Calendar.

Course Schedule

Both lectures will be attended by students from Singapore. Lectures will be videotaped and made available on the Singapore-MIT Alliance website. These videos will be available for viewing on-line.

Course Website

The class has a comprehensive web site: http://theory.lcs.mit.edu/classes/6.895/

All course information such as

are available on this website. We will generally not distribute any paper handouts. Course notes, problem sets and solutions, etc., will be posted on the course website. It is always worth checking the website for corrections and announcements before starting problem sets.

Prerequisites

The official prerequisites for the course are 6.046J (Introduction to Algorithms} and 6.170 (Laboratory in Software Engineering) (or courses covering equivalent material), but since this class is intended for graduate students, a general undergraduate education in computer science is assumed.

Course Requirements

The course consists of three primary components:

Course Books

One goal of this course is to produce a good set of scribe notes, describing the material presented in this course. To this end, it is recommended that you obtain a copy of Lamport's Latex User's Guide and Reference Manual , or some equivalent latex manual.

Office Hours

The TA office hours will be arranged. The lecturers are available by appointment, however people to talk with about the class will often be in the SuperTech Pit (outside rooms 228-236) and the 2nd Floor Lounge in NE-43.

Collaboration

Throughout the class, collaboration is encouraged. The goal of homeworks is to give you practice in mastering the course material. Consequently, you are encouraged to collaborate on problem sets. You must write up each problem solution by yourself, however, even if you collaborate with others to solve the problem. If you do collaborate on homework, you must cite in a scholarly manner all of your collaborators.

Similarly, collaboration is expected on the final projects. Groups of two will probably be the norm. We will try to help group together students with similar interests to work on exciting open problems.

Questions, Suggestions, and Complaints

You can send email to 6895-staff@theory.lcs.mit.edu and several other choices on the contact page.

This document last modified