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. In this Performance Task, you will be developing a program of your choice. Your development process should include iteratively designing, implementing, and testing your program. You are strongly encouraged to work with another student in your class.
Please note that once this performance task has been assigned as an assessment (rather than as practice), you are expected to complete the task with minimal assistance from anyone other than your collaborative partner. For more clarification see the AP Computer Science Principles Assessment Overview for Students found in the Course and Exam Description
You will be provided with 12 hours of class time to complete and submit the following:
- A video of your program running
- Written responses about your program and development process
- Program Code
Scoring rubrics and instructions for performance task submissions are available on the AP Computer Science Principles Home page.
Note: Students in nontraditional classroom environments should consult a school-based AP Coordinator for instructions.
This performance task requires you to develop a program on a topic that interests you or one that solves a problem. It is strongly recommended that a portion of the program involve some form of collaboration with another student in your class. Your program development process also must involve a significant amount of independent work in the planning and designingparts of the process.
You are required to:
- iteratively design, implement, and test your program;
- independently create at least one significant part of your program;
- create a video that displays the running of your program and demonstrates its functionality;
- write responses to questions about your program; and
- include your entire program code.
Your program must demonstrate a variety of capabilities and implement several different language features that, when combined, produce a result that cannot easily be accomplished without computing tools and techniques. Your program should draw upon a combination of mathematical and logical concepts, such as use of numbers, variables, mathematical expressions with arithmetic operators, logical and Boolean operators and expressions, decision statements, iteration, and collections.
Your program must demonstrate:
- use of several effectively integrated mathematical and logical concepts, from the language you are using;
- implementation of an algorithm that integrates other algorithms and integrates mathematical and/or logical concepts; and
- development and use of abstractions to manage the complexity of your program (e.g., procedures; abstractions provided by the programming language; APIs).