title | layout |
---|---|
Final Project |
default |
-
A write-up of your project, at most 5-page, single-spaced, 11pt font, 1 inch margins. Write-ups should include a description of your project goal, describe the design and implementation of your system, and a relevant performance evaluation.
-
A 5-minute video describing your project. Where relevant you may show a demo of your implementation.
-
All project code along with instructions necessary to compile and run your system.
The final project will be evaluated on two broad categories:
-
Scope: The scope of your project will determine the maximum grade you can receive. For examples of projects that would receive full points for scope (and therefore have a maximum possible grade of 100%), see below.
-
Execution: How well you deliver on the promised scope of your project. This includes the video, write-up, and code deliverables and determines your final grade on the assignment.
At least one person from each group must attend their precept to double check for your project to be approved and assigned a maximum grade for the scope.
Here are 8 example projects and their maximum grade:
-
Extending assignment 4 (DORM) to support arbitrary SQL queries. Max grade 85%
-
Implementing and evaluating a non-queue-based caching algorithm. Examples of such algorithms include: LIRS, ARCS, and Hyperbolic. Max grade 85%
-
Implementing and evaluating a machine learning-based caching algorithm. Examples you could use for inspiration include: Cacheus, LRB, and LeCaR - Max grade 85%
-
Building a shell in Go (or another language of your choice) that supports process backgrounding. See this page for help/guidance getting started on implementing a linux shell - Max grade up to 100%, depending on completeness of shell
-
Build a browser plugin that does something cool. There are lots of options here: analyzing a user’s traffic, encrypting/decrypting form inputs, etc - Max grade up to 100%, depending on creativity and implementation difficulty
-
Build an IPTables-like application in Go. See the Basic Concepts section on this page for an overview of what IPTables does. You do not need to replicate all this functionality - a very basic firewall will suffice. - Max grade up to 100%
-
Build a cache for some other medium such as a file system, SSD, or Hard Drive - Max grade up to to 100% depending on details
Come to office hours, make an Ed Post, or send us an email! We’re happy to help you get off the ground.
About twice as much as the average programming assignment.
Come to precept and we’ll tell you
Please do! Get approval from your preceptor
The video should be 5 minutes or shorter, should include a screen share demonstrating your project's functionality (if applicable), and explain how and why it works. If you want to show specific code snippets that’s fine as well. The goal is for you to show us that you built something systems-y that works.