Guest Facilitator: Laxman Dhulipala

Schedule: Tuesdays and Thursdays 2:30-4pm ET on Zoom

Office hours: By appointment

Email: jshun AT mit.edu, laxman AT mit.edu

Piazza

Units: 3-0-9

Prerequisites: 6.046, 6.172

This is a research-oriented course on algorithm engineering, which will cover both the theory and practice of algorithms and data structures. Students will learn about models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. We will study the design and implementation of sequential, parallel, cache-efficient, external-memory, and write-efficient algorithms for fundamental problems in computing. Many of the principles of algorithm engineering will be illustrated in the context of parallel algorithms and graph problems. Students will read and present research papers, write paper reviews, complete assignments that involve both theory and implementation, participate in classroom discussions, and complete a semester-long research project. Class time will consist of lectures, student presentations, and group project meetings. This course is suitable for graduate students or advanced undergraduates who have taken 6.046 and 6.172. Mathematical maturity and familiarity with algorithm analysis and performance engineering will be assumed.

Lectures will consist of instructor and student presentations and will happen live on Zoom. Lecture attendance is required and participation counts toward the grade. For students in distant timezones where lecture attendance is difficult, their presentations can be prerecorded, and their participation score can be made up by completing additional assignments.

Skip to Course Policy

This is a graduate-level course where we will cover research in algorithm engineering. Advanced undergraduates may enroll if they have taken 6.046 and 6.172. The course units are 3-0-9.

Assignments will be posted and submitted on Canvas.

Grading Breakdown | |
---|---|

Paper Reviews | 15% |

Problem Set | 10% |

Paper Presentations | 20% |

Research Project | 45% |

Class Participation | 10% |

The review should first describe the problem the paper is trying to solve, why it is important, the main ideas proposed, and the results obtained. The review should then describe how the ideas are novel compared to existing work at the time, the strengths and weaknesses of the paper, and any ideas you may have for improving the techniques and/or evaluation criteria, and any open problems or directions for further work that you can think of. The length should be 3-4 paragraphs.

Finally, there will be a problem set on parallel algorithms to be released several weeks into the semester and due at 11:59pm on 4/2.

The project will be done in groups of 1-3 people and consist of a proposal, mid-term report, final presentation, and final report. The timeline for the project is as follows.

Assignment | Due Date |
---|---|

Pre-proposal Meeting | 3/18 |

Proposal | 3/25 |

Weekly Progress Reports | 4/2, 4/9, 4/16, 4/23, 4/30, 5/7, 5/14 |

Mid-term Report | 4/27 |

Project Presentations | 5/20 |

Final Report | 5/20 |

- Pre-proposal meeting: You will schedule a 15 minute meeting with the instructor on 3/18 to discuss what you would like to propose. Feedback will be given to be incorporated into the proposal.
- Proposal: The proposal should be about 2 pages long (excluding figures and references) and will describe the project that you are proposing to work on, the main components of the project, as well as a projected weekly schedule of what you plan to accomplish throughout the semester. The deadline is 3/25.
- Weekly progress report: You will submit a weekly progress report due at 11:59pm on Friday, starting 4/2. This should be a few sentences (or longer) describing your progress on the project during the week, and any issues that you encountered. Each student will submit an individual progress report.
- Mid-term report: The mid-term report will talk about what you have accomplished so far, a breakdown of the contribution among group members so far, any obstacles you encountered, any changes to the proposed tasks, and a schedule of the remaining work to be done. This should be about 6 pages long (excluding figures and references). The deadline is 4/27.
- Final presentation: We will have final project presentations on Tuesday 5/20 on Zoom, where you will describe your research to the instructor and classmates, and learn about other projects.
- Final report: The final report will be in the style of a research paper describing your project. It should include an abstract summarizing the project, an introduction describing and motivating the problem, a brief discussion of related work, a brief overview of any background knowledge needed to understand the paper, followed by your contributions. It should also discuss any open problems or directions for further work, and include a breakdown of work among group members. The report should be about 10 pages long (excluding figures and references). The deadline to submit the final report is 5/20.

Algorithm Engineering: Bridging the Gap Between Algorithm Theory and Practice

Algorithm Design: Parallel and Sequential by Umut Acar and Guy Blelloch

Computational Geometry - Algorithms and Applications, Third Edition by Mark de Berg, Otfried Cheong, Marc van Kreveld, and Mark Overmars

Networks, Crowds, and Markets by David Easley and Jon Kleinberg

A list of papers related to graph analytics