CS 101 PT2: Create/Program
Click here to return to the schedule

General Instructions

Programming is a 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 project, you are required to:

Both partners should be actively involved in the program development. For example, you may choose to use pair programming, in which one partner drives (types and uses the mouse) while the other navigates (reviews and helps to guide what the driver is doing), with the partners changing roles every 20 minutes. Another method of collaboration is for each partner to develop pieces of the program, combine those pieces together, and provide frequent feedback to each other during the development process.

Ideas for Projects

Your program must focus on a specific topic from the course. Be creative and impress the instructor! Make this final project something you will be proud to show family and friends over the holiday break. For example:

Please do not choose to:

Be sure to spend some time before the last week of class to identify your topic and figure out whatever tools, libraries, or techniques you will need to learn in order to complete the project.

Program Requirements

You and your partner must write your program in Python.

Given that this project replaces the normal course activities for the week, you are expected to spend approximately 10 hours on this project. The overall goal of this assignment is to demonstrate what you have learned. You should know which of our 12 Units your project is most related to and why. Your focus should be more about principles of computer science than specific language features. That said, your program should demonstrate:

It should be obvious that you wrote the entire program from scratch, so you should be able to explaqin every line. You may not use other existing code without permission from the instructor.

Individual Reflection

Working alone, respond directly to the following questions. Your reflection should be single-spaced, with a blank line between paragraphs, and have 1-inch margins. Write one paragraph (100 words max) for each prompt. Your reflection must fit on a single page (500 words max) of paper.

  1. What is the purpose of your program? Which computer science topics from the course does it involve?
  2. How does your program use abstraction? Include a short segment of your code and explain how it manages complexity.
  3. What is the most interesting or complex algorithm in your program? Generally describe how the algorithm works.
  4. How did you incrementally develop the program? What did you create first? What problems did you encounter and solve?
  5. How did you and your partner share the work? Which portions of the program did each of you contribute?

Your reflection should demonstrate how you think like a computer scientist and directly address the seven big ideas and practices of the course.

Process and Deadlines

You should approach this assignment as a take-home final exam. There will time during class to coordinate efforts, but most of the development and writing must take place outside of class. Here is the agenda for the last week:

Due Date Description Points
Monday's class Approval: Each team will have two minutes to discuss their project plans with the instructor. Be prepared to demonstrate what you have already completed and/or learned.   Rubric 10
Wednesday's class Gallery Walk: Each team will have five minutes to present their current work in progress to nearby teams for informal feedback. The rest of the time will be available for pair programming.   Rubric 15
Friday's class Demonstration: Each team will have three minutes to present their current work in progress to the instructor. Be prepared to explain how you will answer the reflection questions above.   Rubric 15
Finals week Submission: Each student must upload via Canvas a zip file containing all source code and other supporting files (e.g., data sets, images, sounds) and a pdf file containing your individual reflection.   Rubric #1   Rubric #2 30
30

Note that the program and reflection are worth the same number of points. Do not underestimate the writing aspect of this project. It will take some time during finals week to complete.

Your final submission will be due during the final exam for your section. There will be 10-minute demo times assigned during the exam period. If needed, please include a README file that explains how to run the project.

Acknowledgements

This assignment is based on materials from the AP CS Principles project: Performance Task (updated March 2015) and Draft Rubric (updated September 2014).