The AP CSP Create Performance Task: A Complete Guide
The Create Performance Task (CPT) is worth 30% of your AP Computer Science Principles exam score. It is completed during the school year and requires you to design, create, and document a program of your choice. While this may sound intimidating, the CPT is actually an opportunity to demonstrate your programming skills and creativity. In this comprehensive guide, we will walk you through every aspect of the CPT, from choosing a project to submitting your final work.
Understanding the CPT Requirements
The CPT requires you to create a program that takes input, uses at least one list or collection, has a procedure that uses parameters and returns a value, and demonstrates algorithmic thinking. You must also write a written response describing your program, including your design process, how your program uses abstractions, how you tested and refined it, and the mathematical concepts it employs.
The program can be written in any programming language, though most students use a language supported by their course. The written response has specific prompts that you must address, and the rubric evaluates your response on specific criteria. Understanding these requirements before you start is essential for earning a high score.
Choosing a Project
The best CPT projects are ones that genuinely interest you. When you are passionate about your project, the development process is more enjoyable and the result is better. Some popular project ideas include games, data visualizers, quizzes, utility tools, art generators, and simulations. The key is to choose something that you can complete within the time frame and that meets all the technical requirements.
Avoid projects that are too simple (like a basic calculator) or too complex (like a full social media platform). Aim for something in the middle: complex enough to demonstrate your skills but achievable within the available time. A good rule of thumb is that your project should take 15-20 hours of work to complete well.
The Design Process
The design process is a critical part of the CPT. Before you start writing code, you should plan your program. This includes defining the requirements, designing the user interface, planning the data structures, and outlining the algorithms. A good design process is iterative: you start with a basic design, build a prototype, get feedback, and refine the design based on what you learn.
Your written response should describe your design process in detail. Explain how you went from initial idea to final implementation. Describe the choices you made and why you made them. This demonstrates your understanding of the software development process and earns you points on the rubric.
Using Abstractions
Abstraction is one of the key concepts tested on the CPT. Your program should use abstraction to manage complexity. This means breaking your program into manageable pieces, using procedures (functions/methods) to encapsulate behavior, and hiding implementation details behind clean interfaces. Your written response should explain how your program uses abstraction and why this is important.
For example, if your program is a game, you might have separate procedures for rendering the game board, processing user input, updating game state, and checking for win conditions. Each procedure encapsulates a specific piece of functionality, making the overall program easier to understand and modify.
Testing and Refining
The CPT requires you to describe how you tested and refined your program. This means explaining the testing strategies you used, the bugs you found, and how you fixed them. Your written response should demonstrate that you tested your program systematically, not just randomly. Explain how you verified that your program works correctly for different inputs and edge cases.
Refinement is the process of improving your program based on testing results and feedback. It might involve fixing bugs, improving performance, enhancing the user interface, or adding new features. The refinement process demonstrates that you understand software development as an iterative process, not a one-shot effort.
Mathematical Concepts
Your program should incorporate mathematical concepts beyond basic arithmetic. This might include mathematical modeling, statistical analysis, geometric calculations, or algorithmic complexity. Your written response should explain the mathematical concepts used in your program and how they contribute to its functionality.
For example, a game might use trigonometry for calculating angles, a data visualizer might use statistical functions for computing averages and standard deviations, and a simulation might use probability theory for modeling random events. The specific mathematical concepts depend on your project, but you should demonstrate that your program uses math in meaningful ways.
The Written Response
The written response is where you earn or lose the most points on the CPT. It is evaluated by human readers who assess your ability to communicate your design process and technical decisions. Your response should be clear, specific, and well-organized. Address each prompt completely and provide concrete examples from your program.
Common mistakes in the written response include being too vague, not addressing all prompts, failing to explain technical concepts clearly, and not providing enough detail. Review the rubric carefully and ensure that your response addresses every criterion. Have a teacher or peer review your response before you submit it.
Tips for Success
Start early. The CPT is not something you can cram for. Give yourself at least 4-6 weeks to complete the project and written response. Use version control (like Git) to track your changes and make it easy to revert mistakes. Test your program frequently as you develop it, not just at the end. Write your written response as you develop the program, not after. This ensures that your response accurately reflects your actual development process.