Mr. Wortzman | Room 3209 | Issaquah High School, Issaquah, WA
During this course, you have learned a huge amount about computer science and programming in general, and SNAP in particular. In this project, you will put all of that knowledge, along with some new skills you will develop around design, planning, and project management, to build a relatively large and complex application that you choose. You can create almost anything you want and should ultimately produce a project that is interesting, useful, and challenging.
This project will be significantly larger in scope than any of your previous assignments, so there will be more design and planning than before. More importantly, though, rather than be given a well-defined specification, YOU will be setting the requirements for your project by coming up with an idea, fleshing out the details, and defining the steps necessary to complete your program.
To help you through this process, there will be several steps to this project. You must complete all of the steps in order for your project to be successful. In fact, roughly a third of your grade will be based not on how well your program works, but on how well you completed the design and planning process.
The phases of the project will be:
In phase iv, you will complete a Final Project Development Plan. This document will be your guides in the development phase and will help you stay on track and aware of your progress. Throughout the development phase of the project, you will be expected to keep your spec and plan up-to-date and make adjustments as you get ahead or behind, as requirements change, or as tasks or features get reprioritized. At the end of each coding day, your spec should be updated to reflect the current state of your project.
At the conclusion of the planning day of the project, you should submit your brainstorming and planning documents to Canvas here: https://canvas.instructure.com/courses/1001373/assignments/4780751.
Your final project should be sufficiently complex and large-scale to push your limits as a programmer, but not so sophisticated that you are not able to complete it in the time allotted. The complexity in your project should come from the design and the algorithms and not from the code. (That is, you cannot meet the complexity requirement simply by writing a lot of code. Your code must be challenging or interesting in some meaningful way.) In addition, you should not add complexity by introducing peripheral elements, such as graphics or sound effects. (Your program can certainly have these, but they will not be considered in determining the projects complexity.)
In addition, one of the main goals of this project is to allow you to unleash your creativity and allow you to create something of interest to you. To achieve this, your project must show some level of creativity or personalization that makes it your own. Simply creating your own version of some existing application will not fully meet this requirement.
For both the complexity and creativity requirements, you should talk to the instructors early and often to ensure your project is in line with our expectations.
As with all previous projects, your program must be well-written, well-documented, and readable. Writing code with good style is always a good idea, but in a project of this size and scope, following style guidelines will help you keep your thoughts organized and make it easier to keep track of your progress, pick up where you left off each day, and find and fix bugs. In particular, though this is certainly not a comprehensive list, pay attention to the following:
In order to show that you have fully mastered all the skills from the course, you project must include at least the following:
Design | |
---|---|
Brainstorming | 2 points |
Project Pitches | 6 points |
Scenarios | 6 points |
Implementation Plan | 6 points |
Exit tickets are completed daily throughout project | 2 points |
Total | 22 points |
Implementation | |
Program is well-documented and shows good style | 4 points |
Program uses SNAP elements effectively, including all required elements | 6 points |
Project is appropriately complex and creative | 12 points |
Final product meets all requirements and goals laid out in spec | 16 points |
Total | 38 points |
Project total | 60 points |