CS 91 Final Projects


I recommend that you work in groups of size two or three. Also, unlike normal lab assignments where you all work on the same thing, here you'll all be doing unique work. I encourage you to store your code in a revision control system, and you may use a public repository (e.g., GitHub, BitBucket, etc.) if you'd like. When it comes to showing off code to potential employers, this sort of longer-term project is much more valuable than a standard 1-2 week course lab assignment.

Possible Projects

I want to give you significant freedom in choosing a project. It needs to somehow relate to cloud computing and the topics in the course, but I'm willing to be flexible if you have something in mind that appeals to you. I would much rather you choose a project that you're excited about, even if it's not 100% aligned with the course, than force you to slog through something that you find uninteresting. Please come talk to me about project ideas if you have any questions!

Possible candidates for projects include:

Latex paper template

I've made a paper template available in:

/home/kwebb/public/cs91/project/latex_template

Copy those files to a location of your choosing and then you can run make to build a PDF. You can edit the global paper information / metadata (title, authors, etc.) by editing paper.tex, which includes the other .tex files. Edit those to make changes to a particular section.

Feel free to post Latex questions to Piazza.

Project Proposal (November 6)

Your project proposal should be approximately two pages of text. It should most closely resemble the type of text in the Introduction and Related work sections of the papers we've been reading in class. (Use more recent, e.g., 2000's era work as a reference rather than the 1970's/80's classics.) By writing the bulk of these sections early on, here in the proposal, you can make an early dent into your final report.

The proposal should discuss the following aspects of your project:

Additionally, please let me know about the resources you need to perform your work. I can help you set up any of the AWS services that our course grant allows (most of them). I can also help to install any software that you might need on the lab machines or work with you to acquire anything else you might need. Just make sure that if there is something you need, I know about it ASAP!

Submit your proposal to me via email as a pdf before midnight on Thursday, November 6. Please send it to my kwebb@cs account and include the phrase "CS91 proposal" in the subject.

Implementation Checkpoint (Around November 21st Lab)

As we get closer to the November 21 lab, I'll put up a sign up sheet with times that we can sit down together to go over the current status of your project. By this point, I will expect you to have made significant implementation progress towards your proposed goals (approximately 50% of the code written). I will not be grading on completeness, but rather that you're on the right trajectory to complete the project. I will ask you to show me the parts that are working and discuss the next steps with you.

During this meeting, you should also be prepared to discuss:

Demo (Around December 5th Lab)

We'll meet again around the December 5th lab. By this point, your code should be feature complete, and most of your experiments/evaluation should have already been run (although it's ok if it isn't all nicely formatted into graphs/tables yet). You should be prepared to show me a demonstration of all the features of your project.

Final Report (READ ALL OF THIS TEXT)

Due: Wednesday, December 10 @ 3:00 PM. If this time conflicts with your final exams in other courses, please talk to me during office hours.

Submit via email to my kwebb@cs account, and please include "CS91 paper" in the title.

The main deliverable for your final project will be a paper that resembles a short version of the conference papers we've been reading all semester in class. The report should be written using the Latex template that I provided (details above).

Feel free to rename/reorder sections or create new sections. The outline I gave you is just a suggestion and may not naturally fit all projects. The important thing is that all the information that needs to be conveyed is present. I expect to see at least the following:

If you're working alone, I expect your total document length to be about 5-6 pages, and if you're working in a group, 6-8 pages. I don't want to set a hard limit on the number of citations you should have, but I think 7-15 is reasonable for a paper of this length. What you cite will depend on your project. If you use the name of a company, product, research system, or just about any other proper noun, you can probably cite it. You don't need to cite it every time you use it, just the first time. If there is a research paper on the topic, cite that. If you're citing a company or product, you can cite their web page (e.g., if you use Amazon EC2, you might cite: http://aws.amazon.com/ec2).