CS10 Final Project Specification

Proposal Form
Progress Form

Final README Form (coming soon)

Introduction

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.

Note: this assignment is almost identical to the midterm assignment on paper. The only official difference is that there is a higher expectation for project quality and complexity.

Important Dates

Mon/Tues, November 14/15 Project proposal / project work in lab
Thurs/Fri, November 17/18 Project proposal / project work in lab
Sun, November 20 @ 11:55pm Project proposal due
Mon/Tues, November 21/22 Project work in lab
Sun, November 27 @ 11:55pm Progress report due
Mon/Tues, November 28/29 Project work in lab
Thurs/Fri, December 1/2 Project work in lab
Fri, December 2 @ 11:55pm Final project submission due

Project Proposal

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 a description of how it will be done. We will discuss your project proposal with you if we have questions about feasibility: in particular, we're interested in gauging the level of difficulty of the project, the estimated workload, design choices, and potential pitfalls.

Please include the names of your partners on the top of your proposal.

Project Progress Report

This document should be around a page in length. 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.

Project Submission

The official deadline for the project is Friday, December 2, 2011 at 11:55PM: five minutes before midnight. You will submit three items on bSpace:

  1. 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.

  2. A file named README: this is a document (we recommend PDF 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 what the various lists, scores, and figures mean. It shouldn't be too long: around 2 to 4 pages (ignoring pictures) will be fine. You can sprinkle your document with pictures, if you think that these pictures will explain better.

    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.

  3. A document called Partners that contains only the names of the people in your project group.

  4. We will also be providing an opportunity for individual team members to submit retrospections to reflect on the workload balance. This is not required by anyone but is available for everyone.

Only one person needs to submit the entire project, but each member of the group needs to turn in the individual write-up, independently of the others. 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.

Requirements

  1. There must be a clear way to start your program. Using the green flag is the recommended approach.
  2. If you create a game, it has to be a game with a purpose, in the broadest sense of the term. It could be a training game, or an educational game, or one to test an HCI question you want to answer (e.g., whether it is more efficient to use the QWERTY keyboard versus the DVORAK keyboard), or for some other purpose. It can't be for purely entertainment purposes.
  3. "Style" points will be awarded for things like well-commented and nicely structured code. Poor structure can include things like duplicated code, needlessly complicated organization or program flow, and so on.
  4. Create some of your own blocks.
  5. Use lists in your project in some way.
  6. You cannot work alone, but can either work in pairs or groups of three. Expectations will be higher for larger groups.

Grading

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

Tips

  1. Remember that you have slip days! At the beginning of the semester, we gave you three slip days for homework and projects, which means that you can use these slip days to work on your projects beyond the deadline, without detriment to your project grade. However, these slip days are cumulative: this means that for all the assignments in this semester, you can only use a total of three slip days. Since you are working in groups, the slip days don't accumulate: every person loses a slip day for each day that your project comes in after the deadline. 25% of your project grade will be deducted for each day beyond the deadline once you run out of slip days.
  2. As you work through your projects, we ask that you comment your code to make it easier for us to grade, and also to make it easier for any person who wants to know how your code works.
  3. Please save copies of your projects frequently. In particular, if you think that your project is at a stable state, save a backup copy elsewhere, before you make any substantial changes to it. This will allow you to "roll back" to a stable copy of your project if you make a substantial buggy change.
  4. If you had performance problems with your midterm project, think about the components that made it slow down. Plan that into your work so that you can get core stuff working before bogging your entire project down. We've noticed that huge lists, lots of sprites, and a crowded stage can slow things down so try to control those elements as much as possible.

Extra Credit: Video Presentation

(coming soon)

Some information about capturing the video is here...

Sources of Inspiration

Please don't use another person's project to start creating your own -- we want you to start from scratch (pardon the pun). Nevertheless, getting inspiration from other projects, programs, etc. is encouraged. Here are some Scratch projects that may be good for generating ideas.

Simple:

http://scratch. mit.edu/projects/hippiegirl/497628 (good for basic game-making ideas)

http://scratch.mit. edu/projects/taco/329214

http://scratch.mit. edu/projects/herey/594058

http://scratch.mit. edu/projects/filo5/561786

http://scratch. mit.edu/projects/Comcastc99/88431

http://scratch.mit .edu/projects/kgordon/544638

Ambitious:

http://scratch. mit.edu/projects/Comcastc99/366076

http://scratch.mit .edu/projects/DrSuper/599528

http://scratch.mit. edu/projects/wwjd3/411036

A Word of Warning (again)

As you probably now know, 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 the GSIs 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.