CSEP 524, Spring 2015: Final Project

Credit: This project is based on the project assigned by Brad Chamberlain when he taught this course in 2013.

IMPORTANT: The projects that Brad's students did are posted to the previous website. You may look at them to get an idea of what sorts of projects worked well, but do not under any circumstance copy, paraphrase, or in any way base your projects on their work. I will be checking for this. I suggest you not even look at projects that were based on the same topic as yours, in order to avoid the temptation.

Important Dates:

Goals: My goals for this project are:

Project Types: There are two basic types of projects. Hybrids are possible as well.

Selecting Project Topics:

In either case, try to scope your project to be the equivalent of about 3 or so homeworks. For programming projects especially, you should think about whether your project is something that would make for an interesting written report and in-class presentation. Those are the ultimate deliverables that you will be evaluated on.


  1. Report: a write-up summarizing your project (roughly 5000-7500 words). For a reading/exploration project, summarize the technology that you’ve learned about in your own words and relate it to technologies we’ve discussed in class. As appropriate, you should express your opinions about what you think is good/bad about a given technology.For a programming project, this should describe the approach you undertook, challenges faced and how you dealt with them, and the results you obtained (e.g., speedup or other forms of evaluation).
  2. Presentation: a short in-class presentation summarizing your project. (7-8 minutes followed by a question or two from the audience). The goal of this presentation should be to convey what you’ve learned to your classmates and to Amnon & me, and to teach us all about the topic that you are now the class expert on. This is not a lot of time to present, so be sure to distill what you've learned down to the most important points/what you think we all should know about the topic. Please practice your presentation beforehand - it will go smoother and you'll be able to cover more if you have practiced. The good thing about short presentations is that it doesn't take very long to practice them!!

Possible topics:

I suggest searching for and skimming resources on a topic before committing to it, to make sure there are enough accessible resources available to you.

The following list is based on Brad Chamberlain's list from the last time this course was taught, with a few additions (mainly in analytics frameworks), and a couple deletions. This list is not meant to be exhaustive, but rather to be a sample of possible topics.

Parallel Analytics Frameworks (we will cover Hadoop and Spark in class):

Languages/Programming Models:

GPU/Accelerator programming models:

Parallel Numerical Libraries:

Architecture - earn about some key architecture in-depth:

Parallel Technologies:

Determinism for concurrent programs:

Compilers and parallelism: