Course Policy

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.122 (6.046) and 6.106 (6.172). The course units are 3-0-9.

Assignments will be posted and submitted on Canvas. Announcements will be posted on Piazza.

Lectures

For each lecture we will study several research papers; for each paper one student will give a presentation, which will be followed by a discussion and Q&A.

Grading

The assignments consist of taking in-class quizzes, doing several paper presentations, class participation, and completing an open-ended research project. The grading breakdown is as follows.

Grading Breakdown
In-class Quizzes 20%
Paper Presentations 20%
Research Project 50%
Class Participation 10%

In-class Quizzes

There will be an in-class quiz every few lectures on the papers that you have read since the previous quiz (including the readings assigned for the day of the quiz). A missed quiz will receive a score of 0. The lowest three scores will be dropped.

Paper Presentations

Students will give presentations on assigned papers during the semester. These presentations should be about 25 minutes long with slides, followed by a discussion and Q&A. The presentation should discuss the motivation for the problem being solved, any definitions needed to understand the paper, key technical ideas in the paper, theoretical results and proofs, experimental results, and existing work. Theoretical proofs may be presented on the board. The presentation should also include any relevant content from related work that would be needed to fully understand the paper being presented. The presenter should also present their own thoughts on the paper (perceived strengths and weaknesses, directions for future work, etc.), and pose several questions for discussion. The presenter will be expected to lead the discussion on the paper. Grading will be based on quality of the presentation and answers during Q&A. Please do not read your presentation from a script.

Here is some guidance on how to give an effective presentation.

Research Project

A large part of the work in this course is in proposing and completing an open-ended research project. The project may involve (but is not limited to) any of the following tasks: implementation of non-trivial and theoretically-efficient algorithms; analyzing and optimizing the performance of existing algorithm implementations; designing and implementing new algorithms that are theoretically and/or practically efficient; applying algorithms in the context of larger applications; and improving or designing new programming frameworks/systems for classes of algorithms. The project may explore parallelism, cache-efficiency, I/O-efficiency, and memory-efficiency. There should be an implementation component to the project. The project can be related to research that you are currently doing, subject to instructor approval.

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

Assignment Due Date
Pre-proposal Meeting 10/8
Proposal 10/16
Weekly Progress Reports 10/23, 10/30, 11/6, 11/20
Mid-term Report 11/13
Final Project Presentation 12/3
Final Report 12/4
Final Project Meeting 12/8, 12/10
  • Pre-proposal meeting: You will schedule a 15 minute meeting with the instructors 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, references, and an appendix on AI use) 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.
  • Weekly progress report: You will submit a weekly progress report due at 11:59pm on Friday, starting 10/23. 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 discuss 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, references, and an appendix on AI use).
  • Final project presentation: We will have final project presentations, 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, references, and an appendix on AI use).
  • Final project meeting: Each group will meet with the instructors answering questions about their project to evaluate understanding. Questions may include asking students to explain parts of the submitted report and associated code, rationale for design choices and experimental methodology, and use of AI (if any).

Piazza

We will be using Piazza for answering questions. You may publicly post questions about the papers or any ideas that you have. Discussions among students are encouraged. If possible, please use Piazza instead of emailing the course staff. You may use a private note if you want your post to be visible only to the course staff.

AI Use Policy

This policy applies to AI chatbots, coding assistants, and media generators.

  • In-class quizzes: You may use AI tools to prepare but you may not use AI tools during the quizzes.
  • Paper and project presentations: You may use AI tools to prepare but you may not use AI tools during your presentation. You must document any use of AI in creating your slides.
  • Research project: You may use AI to help with brainstorming, writing, and coding as long as you document its use in detail. You are responsible for all material submitted, so you must understand and independently verify the correctness of any AI-generated content. You will be asked to explain portions of your work during the final project presentation and final project meeting. In addition to these scheduled times, you may also be asked to explain your submitted assignments as requested by the instructors.
  • Final Project Meeting: The goal of this meeting is to evaluate your understanding of your submitted project. You may not use AI tools during this meeting.

When you are uncertain about whether AI is allowed, please ask the instructors.

Documentation

If you used AI for presentations or reports, you must clearly document what AI tools you used, how you used them (e.g., for brainstorming, literature search, generating code, text, or images, debugging, etc.), and specifically what content was generated or revised with AI assistance. For presentations, this information can be written in an accompanying document when you submit the slides or as extra slides at the end of the deck (these slides do not need to be presented). For project reports, include an appendix with this information. Additionally, for project reports, each member must include a brief reflection on their experience using AI tools for the project, including how the tools helped or hindered their productivity and the quality of their work, as well as examples of what the tools got right or wrong.

Rationale

AI tools may be helpful in algorithm engineering research but should not be blindly relied upon as they can generate incorrect or misleading information. Furthermore, making the best use of AI tools often requires a strong understanding of the underlying concepts. The goal of this policy is to give students the option of using AI responsibly while ensuring that students can still be evaluated based on their understanding of the course content. The in-class quizzes, Q&A during presentations, and meetings with the instructors are meant to assess this understanding.

Instructors’ Disclosure

This course website was developed with assistance from AI. We may also use AI to brainstorm ideas for assignment questions; instructors will carefully review and revise any AI-assisted questions before assigning them.

Computing Resources

You can obtain student credits on a cloud computing provider, such as Google Cloud Platform.

Useful Resources