Documente Academic
Documente Profesional
Documente Cultură
Important Dates
Project Proposal
In short, you should convince us your project will be awesome and worth an A! Tell
us what your project is about. Is it a game? A sound-based application? After
describing the main purpose, discuss the "scope" of the projectthe 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 a non-technical document and should describe big ideas more than the
technical details of how it will be done. However, it should also be clear that you have
an idea of where to start working on the project. 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 are 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. In
addition, please make sure you include details of everyone who is in your project
group.
Project Submission
Project File
Summary Write-Up
Collaborative Group Reflection
Video Presentation
All four of these items listed above should be completed as a group. You may choose to
split up work between your group members, but all members should contribute equally to
the final product.
Join a Group:
Project File. This is the XML file with all of the code you wrote as a group. It should be
named either the title of your project AND include your names in the file.
Summary Write-up. This should be a PDF or plain text file and is described below.
Video Presentation. This should be a video demonstrating your final. See the video
section below for some helpful guidelines.
Complexity Guidelines
Appropriate complexity for this code will revolve around well executed code or an
advanced internal algorithm. Needlessly repetitive code or a large number of sprites or
sound effects created outside of Snap! will not be considered in determining your
projects complexity for grading. Rather complexity of design, such as how code is
organized and used for different sprite and blocks, successful implementation of a
difficult programming task, well coded complicated algorithms (such as Dijkstras
Algorithm, the A* algorithm, and many others) or statistical analysis programs, will
all be considered in whether difficulty of the project meets the minimum
requirements.
Style
Obviously, youd like to be as stylish as possible. These tips will help you accomplish
that goal. Nicely styled code may go far beyond this short list, but following these will
lead you in a positive direction. Style isnt merely being pedantic; good style will
keep your thoughts organized and make debugging and building out a project much
easier over time.
Project Ideas
If you want some suggestions for your project we recommend looking at the
below categories. Please remember that projects should not include any gore or
GWAP
Educational Game
This can be any kind of program that takes in inputs and provides some kind of
result via internal algorithms such as a graphing calculator or a genetics
probability calculator and demonstrator.
(Statistical) Analysis
Educational oriented program that aims to be helpful and instructive for its users
such as an open heart surgery walk through or a math learning game. (Note: A
typing tutor game should be avoided unless you have a specific and exceedingly
creative inspiration regarding implementation and design)
Artificial Intelligence
Get in touch with your artistic side by creating a visual or musical program that
acts as a medium for user to exercise or practice their creative talents such as a
drawing program that saves images and can redraw how they were drawn or a
musical instrument trainer.
Simulation
Rules are given for a system and then variables can be changed either via random
input or user defined input for the program so that it can run a simulation on the
elements involved for the user. Such examples include a traffic simulator, a fish
tank, or a physics simulator. (Note: a physics simulator is extremely difficult and
should only be attempted for a final project with constant monitoring from a TA)
Hardware Projects
If you are interested, we have hardware that you can work with on this project that is
compatible with Snap:
Compatibility
Description
Hummingbird
Snap
Finch
Snap
Hardware projects can be incredibly exciting but do be aware that there can be extra
difficulty in getting everything to work correctly. Please note, hardware is limited,
and will be available on a first-come, first-serve basis.
Example Projects
Please don't use another person's project to start creating your own -- we want you to
start from scratch. Nevertheless, getting inspiration from other projects, programs is
encouraged. Here are some past CS10 projects that may be good for generating ideas.
These were made by past CS10 students as final projects. Please note that the
requirements for the project have changed somewhat since previous semesters. Many
of these projects were Final projects from previous semesters, so your
project isnt expected to be as complex as the ones listed here, but feel free to shoot
for the moon!
Minesweeper http://www.youtube.com/watch?v=fsOn4eBn1Og
Grading Rubric
This is a preliminary (i.e. subject to change) breakdown of how your project will be
graded.
Task
Points
Project Proposal
3 pts
3 pts
Project Summary
3 pts
Individual Reflection
3 pts
3 pts
Style
5 pts
20 pts
20 pts
Total
60 pts
choose a highly socially relevant topic (education, health, etc). The amount of extra
credit will be based on the size of the population impacted and how much they are
impacted by your project.
Hardware Usage. If your project effectively uses any of the hardware mentioned
above, a small amount of extra credit may be available. Talk to a TA to get some
ideas for how to best use the available hardware. Snap is also compatible with
Lego Mindstorms and Leap Motion. While we dont have any to loan, you could talk
to your TA if you have your own and want to explore this option.
Tips
1. Comments and good naming. As you work through your project, 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.
2. Saving and backups. Please save copies of your projects frequently. Make sure to export
your project as an XML file regularly to have multiple, working backup copies. In
particular, if you think that your project is at a stable state, save a non-cloud backup copy,