We want you to show off everything that you have learned this semester in a final project of your choice and design. Just like the midterm project, you can design anything you want, using all of your programming knowledge to produce something that is interesting, useful, and challenging for you. You are welcome to either develop your midterm project further, or create an entirely new and interesting project: if you are doing the former, however, we ask that you add a substantial amount of code, rather than simply adding new levels or enemies. Ultimately, you should spend time designing algorithms and writing code, as opposed to developing sprite graphics.
|Wed/Thur, April 11/12||Project proposal / project work in lab|
|Fri, April 13||Project proposal due|
|Mon/Tues, April 16/17||Project work in lab|
|Wed/Thurs, April 18/19||Project work in lab|
|Fri, April 20||Peer Review Write-up due|
|Mon/Tues, April 23/24||Project work in lab|
|Fri, April 27||Project due|
This document should be two or three paragraphs that 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.
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 Form
Peer code review involves *sitting beside another team* and critiquing each other's programs. The goals of code review are to (a) find out ways to make your specific project better, (b) to give you an opportunity to think through why you designed things the way you did, and (c) to learn about alternative ways to structure programs. You should aim to spend at least thirty minutes or so on each project and should think critically about what the other team is working on and what advice you'd have to help them get there. *Communicate!*
*It is important that you have some code written for your code review. *There will be a brief progress report form circulated at the end of the week, and we will ask for feedback about your code review session in it. It will be factored in to your grade, but more importantly it gives you an important opportunity to improve your programming and program comprehension skills.
For the progress report itself, this document will be a Google Form. You should describe what progress you have made towards completing your project -- among other things, we would like 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. You can also briefly discuss your algorithms for particularly complex problems. Bear in mind that by this point, you should have completed approximately 50% of your project.Only submit ONE per group. Submission Form
The official deadline for the project is Friday, April 27th, 2012 at 11:55PM: five minutes before midnight. You will submit four items on bSpace:
All the files associated with your project. For most projects, this will simply be the BYOB file containing your project, but you should also include any auxiliary files needed for your project to work.
Also, in your README, talk about the significant programming components of your project. For example, how did you partition your work between sprites and blocks? What can each sprite do and respond to, and what are the major blocks in your project? What are the major lists and what are their purposes? In short, 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.
A document called Partners that contains only the names of the people in your project group.
Only one person needs to submit the entire 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|
|Meeting technical requirements||15 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).
A small amount will also be available by making a short youtube video explaining and demonstrating your project (more details to come).
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 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 Navin, Luke, and Glenn 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.