Final Project Overview
The final project is your chance to use the computer science tools and techniques we have developed this semester to solve a problem that interests you. Your final project should be the size and scope of a normal CS135 lab. However you have the opportunity to define the project parameters, provided they fall within the overall project guidelines (detailed below).
Timelines
The remaining lab and TA sessions will be dedicated to final project work, and the instructors and TAs will be around to assist with all aspects of the process. You may attend whichever lab section(s) your group decides, but please be considerate of the limited physical resources: share a computer/desk if you are attending a section that you are not normally registered.
- You must propose your project by Tuesday, November 22 at 5pm.
Proposals should be submitted in a README.md document in the
root of your group's github repository.
- Your proposal must include meeting with Brent or Bill in person (possibly during lab on Monday, November 21).
- Your proposal should be detailed. It should include an outline of your ideas and plans for
- data:
- what data sources you will use
- how you will transform/organize the data for use in your project
- implementation:
- the external libraries you plan to use
- the final project "deliverables" (code, graphs/images, documentation)
- We are happy to brainstorm with you on your proposal!
- The project will be due on Tuesday, December 6, 2016 at 5pm.
- Short project presentations will be made during class on Wednesday, December 7 and Friday, December 9. Communication is an important part of research, and it will give us all the chance to celebrate your hard work.
Guidelines
Final projects may be:
- Completed individually or in groups of up to 3 students
- Groups may span lecture/lab sections
- The project scope should scale with the size of the group (we expect a team of 2 students to complete more work than 1 student)
- You may make use of external libraries if they enable you to pursue a topic in greater detail or depth.
- You may define your own project, or you may choose/modify a project idea from the examples below.
- Gathering and organizing data from disparate sources is itself a complex and worthwhile task.
In addition to submitting your code/data in a git repository, you must document your project in the README.md file. Project documentation must include:
- A high-level overview of why your project is interesting (technically and non-technically).
- Your project proposal.
- Clearly written instructions that explain how to run your code
- Conclusions that you have drawn at the end of your project
- What were the challenges?
- What were your findings?
- What questions still remain?
There is no length requirement for your README.md. However, your README.md document and you presentation are the primary ways that we will interact with your project. Use them to tell your story!
Sample Project Ideas
This is a non-exhaustive list of project ideas. Some of them have been projects in past versions of this course, and some of them have been projects from computer science courses elsewhere. We suggest that you read through a few of them for inspiration, even if you decide to design your own project: techniques or suggestions might be relevant.
- Yelp reviews and the Google Maps API
- More Matplotlib and Google books, part one, part two, and data.
- Modelling Segregation
- Twitter and Sentiment Analysis
- Manipulating Images
- Determining Text Authorship
- Iterators and Art