15-745 Semester Project

We prefer that projects are done in groups of two, although groups of three may be permitted depending on the scale of the project (ask the instructor for permission before forming a group of three). If you are looking for a partner, you can use 15-745 Piazza.


Due 3/25. The project proposal should be 3 pages; single spaced, one or two columns, 10 point font or larger.
Describe the project idea/application, what work must be done (suggesting how it can be partitioned among you) and what resources you will need (including software systems you already have access to). Concentrate on convincing us that it will pertain to the course, that you will be able to complete it, and that we will be able to evaluate it. The third page should be dedicated to providing an outline of your intended final paper, identifying the specific experiments to be run and what questions they will answer.

In your proposal, provide three types of goals: 75% goals, 100% goals, and 125% goals. Think of these as the equivalent of a B grade, an A grade, and a "wow!" grade. The goals can be dependent or independent of the prior goals.

Think also about providing answers to the Heilmeier Questions in your proposal, as appropriate.

Project Milestone Report

Due 4/10. The milestone report should be at most 3 pages. It should discuss the following points:

Poster Presentation

Held 5/3 during class time. Rather than having oral presentations to present your projects to the class, we will instead have a poster session on the last day of class. We will provide easels, posterboard, and tape. The posterboard will be 30" by 40", which you can orient in either direction. You should bring 8 or more 8.5x11" pages to tape onto the posterboard when you first arrive, in a layout of your choosing. You are also free to produce your own full posters, if you like, and bring them to class (although this is not required--i.e., no extra credit).

The advantage of a poster session is that it is interactive: you can ask other people questions one-on-one, and you can prioritize your time based upon which projects interest you the most. One member of your group should stand near your poster while the other group member(s) circulates to ask people about their posters. You will take turns doing this, so everyone will spend part of the time presenting their poster, and part of the time asking others about their posters.

The poster session is open to the public. Please feel free to invite others to attend it.

Photos from last year's poster session:

Final Project Report

Due 5/8. This report should be written in the format of a research paper. For further details, see final_report.pdf.

In addition to the report, please submit a tar file of your source code to Canvas.

Here are two example final project reports from 2015:

Prior Project Topics (2017-2018)

Prior Project Topics (2012-2016)

Architectural Primitives and Hardware Support:

Approximate Computing:

Code Optimization and Scheduling:

Concurrency, Parallelism, and Vectorization:

Domain-Specific Optimizations:

Memory Optimizations:

Profile-Guided Optimization and Specialization:

Register Allocation:

Static Analysis:

Project Management

You should strongly consider using either Subversion or Git to perform source code control for your project and the paper you write describing it.

I also strongly suggest writing your course project report using LaTeX. It is the de-facto tool in which most CS research papers are written. While it has a bit of start up cost, it's much easier to collaboratively write complex research papers using LaTeX than Word.

Writing Papers