Rycal.
← All AP courses
AP Computer Science Principles · Cram sheet

Unit 1 · Creative Development

10–13% of the AP exam 29 key terms

● Core concept  ·  ○ Supporting concept

1.1 Collaboration

Computing innovation ● (core concept) — An innovation that has a program as an integral part of how it works. It can be a physical device (such as a self-driving car), nonphysical software (such as a photo editor), or a computing concept (such as e-commerce).

Collaboration ● (core concept) — Working jointly on development so that every member participates fully and is heard. Pooling diverse talents and perspectives improves the design of a computing innovation and helps avoid bias in how it is built.

Pair programming ● (core concept) — A common collaboration model in which two programmers work together at one computer, trading off who writes code and who reviews it, to facilitate teamwork.

Consulting users ● (core concept) — Gathering input from the people who will actually use a program, especially people from different backgrounds and demographics, so its purpose and design reflect diverse perspectives and needs.

Online collaboration tools ○ — Shared documents, code editors, and feedback platforms that let programmers exchange ideas and give feedback on each other's work while developing an innovation.

1.2 Program Function and Purpose

Program ● (core concept) — A collection of program statements that performs a specific task when run by a computer. A program is often called software.

Code segment ● (core concept) — A collection of program statements that is part of a larger program.

Program behavior ● (core concept) — How a program functions during execution, often described by how a user interacts with it. A robust program needs to work for a variety of inputs and situations.

Program input ● (core concept) — Data sent to a computer for processing by a program. Input can take tactile, audio, visual, or text forms, can come from a user or another program, and usually affects the output the program produces.

Event ● (core concept) — An action, such as a key press, mouse click, or program start, that supplies input data to a program. Events can be generated by any defined action that affects the flow of execution.

Event-driven programming ● (core concept) — A programming style in which statements execute when triggered by events rather than through the sequential flow of control.

Program output ● (core concept) — Data sent from a program to a device, in tactile, audio, visual, or text form. Output is usually based on the program's input or its prior internal state.

Program purpose ● (core concept) — The problem a computing innovation is meant to solve or the interest it pursues through creative expression. Understanding the purpose helps developers build the innovation well.

1.3 Program Design and Development

Development process ● (core concept) — The path programmers follow to build a program. It can be ordered and intentional or exploratory in nature; there are multiple valid development processes.

Iterative development ● (core concept) — A development style that revisits earlier phases repeatedly, refining and revising based on feedback, testing, or reflection throughout the process.

Incremental development ● (core concept) — A development style that breaks a problem into smaller pieces and confirms each piece works before adding it to the whole.

Development phases ● (core concept) — The commonly used stages of building a program: investigating and reflecting, designing, prototyping, and testing.

Program requirements ● (core concept) — A description of how a program must function, including the user interactions the program must provide. Investigation methods such as surveys, user testing, interviews, and direct observation help identify them.

Program specification ● (core concept) — The documented requirements for a program. The design phase outlines how to accomplish a given specification, using activities like brainstorming, storyboarding, organizing the program into modules, sketching interface layouts, and planning a testing strategy.

User interface ● (core concept) — The part of a program through which the user interacts with it. A well-designed interface makes it easy for the user to understand what data are required as input for the program to complete its tasks.

Program documentation ● (core concept) — A written description of what a code segment, event, procedure, or program does and how it was developed. Programmers should document throughout development, since documentation helps build and maintain correct programs individually and collaboratively.

Comment ● (core concept) — A form of program documentation written into the program for people to read; comments do not affect how the program runs. Not all programming environments support comments, so other documentation methods may be needed.

Acknowledging code sources ● (core concept) — Crediting any code segments developed collaboratively or taken from another source. The acknowledgement belongs in the program documentation and should name the origin or original author.

1.4 Identifying and Correcting Errors

Logic error ● (core concept) — A mistake in the algorithm or program that makes it behave incorrectly or unexpectedly, even though the program runs without crashing.

Syntax error ● (core concept) — A mistake in which the rules of the programming language are not followed, so the program cannot be understood by the computer.

Run-time error ● (core concept) — A mistake that occurs during the execution of a program. Each programming language defines its own run-time errors.

Overflow error ● (core concept) — An error that occurs when a computer attempts to handle a number outside the defined range of values it can represent.

Debugging techniques ● (core concept) — Effective ways to find and correct errors: test cases, hand tracing, visualizations, debuggers, and adding extra output statements.

Test cases ● (core concept) — Defined inputs paired with expected outputs or behaviors, used to check whether an algorithm or program produces the expected outcomes. Test inputs should cover the extremes, the minimum and maximum, of the input data; programmers revise their work based on the results.