Issaquah High School Computer Science

Mr. Wortzman | Room 3209 | Issaquah High School, Issaquah, WA

Project 5 - Final Project

Specification

Overview

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.

Project Phases

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:

  1. Brainstorming - coming up with as many possible project ideas as you can
  2. Pitching - choosing a few ideas and developing a short description of what the project will entail
  3. Scenario Definition - listing out the features the project will need and what they will look like
  4. Specification - fleshing out all the specifics of how the project will work
  5. Development - writing the code for your project by following the spec and schedule created in the previous steps

Progress Tracking

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.

Implementation Requirements

Complexity and Creativity

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.

Documentation and Style

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:

Required SNAP Elements

In order to show that you have fully mastered all the skills from the course, you project must include at least the following:

Rubric

Design
Brainstorming 2 points
Project Pitches 6 points
Scenarios 6 points
Implementation Plan 6 points
Exit tickets are completed daily throughout project 2 points
Total22 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
Total38 points
Project total60 points