Programming Project


Overview

Programming is a collaborative and creative process that brings ideas to life through the development of software. Programs can help solve problems, enable innovations, or express personal interests. For this task, you will be developing a program of your choice. You will work with an assigned partner to iteratively design, implement, and test a jointly-developed program. Your development must include both collaborative work and individual work.

You will complete and submit the following:
  1. Program code that you develop with a partner.
  2. Individual responses to questions (shown below) about your program and your development process.
  3. Your SCRUM document spreadsheet
  4. A presentation of your program and viewing of classmate's programs.
Create an answer document called lastname_final, where lastname is your last name. Label your answer document with "Part 1", "Part 2", and "Part 3" for the parts described below. You will save this file as a PDF document to turn it in.

Part 1: Program

You will work with a partner to create a pprogram that provides a benefit to the user through experiences like the user being entertained (e.g. a game), learning (e.g. an educational app), or helping with day-to-day life.

Your program must be written using the Khan Javascript + ProcessingJS programming environment and also provided as a web app that runs on phones. Your program and/or the description of your program must use:

Ideally your program will contain all of these constructs, but if your program does not some of contain them, then you need to answer in your answer document why it does not contain them and how it might be extended to contain them. You need to demonstrate that you understand and can use each of those constructs. Note that your program may use object-orientation, but it does not have to.

Your program must also:

Paste in your answer document the URLs of

  1. The URL of your program at Khan Academy
  2. The URL of your program that runs as a web app off your server

Part 2: Video

You are required to provide a youTube video of your program executing. You must demonstrate the features of your program in the video.

The video can be recorded using screen capture software such as screencastify , which is a free browser plug-in that captures your screen and audio and saves it as a video. A tutorial on screencastify is at https://www.youtube.com/watch?v=2tlE2wwVXg8 [2:54].

Videos can be edited using YouTube's video editor; here are some resources on that:

The video must be 45seconds to 60seconds (no shorter or longer) with one partner's voice narrating. Both partners submit the same video. Place in your answer document the full clickable URL of the video on youTube. Make sure that the youTube permission is set to "Public" or "Unlisted" - if it is "Private" we can't grade it and you will receive no credit.

Part 3: Questions

You will submit your own answers to the following questions in your answer document. Note that your answers must be your own and not the same as your partner's answers. Label each answer in your answer document with the question number. Your answers to all questions combined must not exceed 1000 words and should be at least 500 words.
  1. What is your partner's name?
  2. What percent effort did you put into the project? Next to prompt A put your percent effort. Next to prompt B put your partner's percent effort. The two percentages must add up to 100%. You and your partner must have agreeing percentages reported. If the percentages differ, your instructor will decide the final percentage allocation.
    1. Your percent effort:
    2. Your Partner's percent effort:
  3. What is the purpose of your program?
  4. Explain what a user must do to invoke each feature of your program.
  5. Describe the incremental and iterative development process of your program focusing on two distinct points in that process. Describe the difficulties that you encountered and how they were resolved. Also describe the opportunities for features that you discovered and how they were incorporated into your process and program. Describe what parts of the process were collaborative with you and your partner, and what parts you did independently. (Approximately 200 words)
  6. Described your use of each of these constructs and provide a screen shot of the block(s) that embody the construct. If you do not use a construct, explain why and also speculate on how you could use it in an extension of your program. Label each answer with 6A, 6B, etc.
    1. variables
    2. expressions formed with arithmetic and/or logical operands and operators
    3. conditional statements
    4. loops
    5. abstractions such as functions
    6. structured data such as arrays
  7. Describe an algorithm that you implemented in your code.
  8. Describe use of abstraction that you implemented in your code.
The AP Computer Science Principles Create Performance Task asks similar questions. Here is an example provided by the College Board. Answers to questions 2b, 2c, and 2d in these examples might help you answer the above questions. Note that your project is not the same as the AP Performance Task, we are just providing these examples to help you.

Part 4: SCRUM Document

The SCRUM document spreadsheet that you have developed throughout the semester must be completed and uploaded to Sakai. The document must have:
Partners should each provide the same share link to their SCRUM document spreadsheet.

Part 5 Presentating Your Program And Viewing Others

Each partner team must have a booth at the CSC106 Expo to be held during the final exam slot for this course (probably May 8). This Expo is a chance to show off the program that you and your partner created. Your attendance at the event and having a good engaging, effective, booth are part of your final project grade.

Booth/Presentation Requirements:
  1. You must stay at your booth for the duration assigned to you.
  2. You must dress either professionally or in a clever themed costume that reflects your app. Non-themed sloppy attire is not allowed.
  3. Your booth will be a rectangular table, possibly shared with another group. Assume 3 feet of table-top space to set up your booth. Do not assume power at the booth nor walls at the booth (e.g. to hang up posters). Only assume 3 ft of width on a free-standing rectangular table.
  4. Your booth must have an active demo of your app on at least one Android device that the public can use to try your app.
  5. Your booth must have a sign with the name of your app and the partner names. The sign should be clean and good looking, and big enough to attract attention. A laptop computer with at least a 15in screen could be used for the sign, or a posterboard and some form of support for the poster.
  6. If your app is integrated with a web page, you must have a laptop computer with the associated web site also on display at your booth.
  7. You must have ready a short (less than a minute) verbal description of your app to tell people how to use it.
  8. You must have a laptop computer with a browser up with each partners portfolio web site in separate tabs in case a judge asks to see it.
  9. You must have a copy of your SCRUM document at the booth to discuss with judges how you programmed your app.
  10. You must have ready a short (less than 2 minutes) verbal description of the process that you and your partner used to build the app. Use the Agile Software Development and SCRUM terminology you that learned. Refer to the copy of your SCRUM document when describing the process.

What To Hand In

Save your answer document as lastname_final.pdf, where lastname is your last name. Upload this PDF file to the final project assignment in Sakai. Paste the share link to your SCRUM document spreadsheet into the box provided in the final project assignment in Sakai. Your booth at the Expo will be judged by CSC106 staff at the Expo.