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 gained a huge amount of knowledge about programming 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 up to two other people).
Wed, October 6 | Project proposal lab |
Fri, October 8 | Project proposal due |
Wed, October 13 | Project work in lab |
Fri, October 15 | Project progress report due |
Fri, October 22 | 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 a description of how it will be done.
This document should be around a page or two depending on the complexity of the project. 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. Briefly discussing your algorithm for particularly complex problems is welcome as well.
The official deadline for the project is Friday, October 22, 2010 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 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 1 to 2 pages (ignoring pictures) will be fine. You can sprinkle your document with pictures, if you think that these pictures will explain better. (After all, a picture is worth ... what is it? A thousand bytes?)
Also, in your README, talk about what the significant programming components of your project are. 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.
Finally, submit a document called Partners 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 proposals | 5 pts |
Specification | 10 pts |
Meeting your specification | 20 pts |
Style | 10 pts |
Meets all requirements | 15 pts |
Total | 60 pts |
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
Ambitious:
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 Jon and Luke 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.