The goal of this assignment is to give you some experience with developing reasonably complex applications. Your experience with programming so far has been limited mainly to shorter labs and homework assignments; this project will instead span over the course of three weeks. Whether you realize it or not, you've already gained a huge amount of programming knowledge over the course of the semester. This project is designed to let you use all of this new knowledge to produce something that is interesting, useful, and challenging for you.
We want to unleash your creativity as much as possible, so the purpose of your project will really be up to you (as well as either one or two other people on your team).
Mon July 9 | Project proposal lab |
Tue, July 10 | Project proposal due |
Wed, July 11 | Project work in lab |
Sun, July 15 | Project progress report due |
Mon, July 16 | Project work in lab |
Fri, July 20 | Project due |
This document should be approximately 1-2 pages (double-spaced) and describes the overarching purpose of your project. Is it a game? A utility? A sound-based application? After describing the main purpose, discuss the "scope" of the project: the types of things users will and will not be able to do with it. This can include a basic plot line for a game or movie, a list of options for a utility, and so on. If appropriate, talk about things that you've already done in lab that you may use in your project.
This is generally a non-technical document and should describe big ideas more than the technical details of how it will be done. You can submit this document via the Google form. Note: although you will be able to tweak your project idea after your proposal has been submitted, the gist of it should stay the same. Make sure that you're happy with your idea since you'll be spending a good bit of time with it.
We are more worried about the content of your proposal than the length of it. Make sure that you give us enough detail to judge the difficulty of your proposed project.
Only submit ONE per group. Submission FormThis document should be around a page or two (depending on the complexity of the project) and should describe how your project has progressed since the beginning. Among other things, we would like for you to talk about:
This should be a reasonably technical document. Feel free to talk about particular blocks if it helps you communicate your solution. Briefly discussing your algorithm for particularly complex problems is welcome as well. You will also be able to submit this via a Google form.
Only submit ONE per group. Submission FormThe official deadline for the project is Friday, July 20, 2012 at 11:59PM: a minute before midnight. You will submit your project on bSpace. Also, with your project, please turn in a file named README: this is a document (we recommend PDF or text documents) that is essentially a manual for your code. The README is directed to any user who is looking at your project for the first time and wants to know what the project is about, how to interface with the project, and the purpose of the various lists, variables, and scripts. In sohrt, talk about how your project works on an abstract level in terms of programming components working with each other; you don't need to go into specifics. Around one pages (ignoring pictures) will be fine. You can sprinkle your document with pictures if you think that these pictures will explain your ideas better.
Finally, submit a document called partners.txt that contains only the names of the people in your project group. Only one person needs to submit the project.
Some of your projects may be huge in terms of file size. We recommend that, before you turn in your project, you use the Compress Sounds and Compress Images options in the Edit menu to reduce the file size. The sound quality should be Normal or Low, and the image quality should be 60.
Project specification | 10 pts |
Project progress report | 5 pts |
Meeting your specification | 20 pts |
Style | 10 pts |
Meeting technical requirements | 15 pts |
Total | 60 pts |
A small amount of extra credit will be available for the project if you choose a socially relevant topic (education, health, etc). The amount of extra credit will be based on the intensity of impact (how much it affects the targeted population) and the range of people that it impacts (the size of the population).
You're welcome to work on almost any project that interests you. Here are some ideas of projects that have been successful in the past to fuel your thinking, but feel free to do something totally different if you'd prefer.
Write a program that can play a game involving chance like Yahtzee, Monopoly or poker.
Write a program that can solve and / or generate sudokus, word searches, crossword puzzles, etc.
Write a program that can generate images, music, etc (automatically or with human input).
Write a program that puts one of our Picoboards or our Kinect to work in interesting ways.
Write a program that can recognize flow patterns (traffic on streets, people waiting for elevators) and adapts controller behavior (traffic lights, elevator destinations) to reduce delays.
more to come soon...
Getting to design projects of your own can be exciting, and it is very easy to underestimate how long it will take to accomplish a particular goal. Remember: although Pierce and Max will be happy to help you bring your idea to life, you won't have lab-like guidelines for making this happen. It may take a lot longer to make your project than you think!
That being said, don't hold back if you think you can make something truly grand. We're here to help you if you've got an idea that you love.
This form is enitrely option and is only if you would like to give information to the GSIs regarding whether there was anything particularly important about how work was distributed among members of your group. Do not feel obligated to turn one in and we assume most groups will not.
It can be submitted here: Group Evaluation