AP Computer Science Principles Big Idea 1: Creative Development

How computing innovations get made: collaborating with diverse teammates and users, what programs are for and how they take input and produce output, iterative and incremental development, documentation and credit, and finding and fixing errors with testing.

1.1 Collaboration

A computing innovation has a program as an integral part, and can be physical, software or a concept. Collaboration with diverse perspectives, and consultation with users, makes innovations better and helps avoid bias. Online tools and models like pair programming support teamwork, which depends on communication, consensus building, conflict resolution and negotiation.

1.2 Program Function and Purpose

Computing innovations solve problems or pursue interests through creative expression. A program is a collection of statements that performs a task; a code segment is part of one. Programs should work for many inputs. Inputs (from users or other programs, often via events) affect outputs; event-driven programs run statements when triggered.

1.3 Program Design and Development

Development can be ordered or exploratory. Common phases: investigating and reflecting, designing, prototyping, testing. Iterative development revisits phases based on feedback; incremental development builds and checks one piece at a time. Investigation (surveys, user testing, interviews, observation) finds requirements and constraints. Document as you go, and credit code from others.

1.4 Identifying and Correcting Errors

Logic errors make a program behave incorrectly; syntax errors break the language's rules; run-time errors happen while it runs; overflow errors happen when a number is outside the allowed range. Find them with test cases, hand tracing, visualizations, debuggers and extra output statements. Test with defined inputs, including values at and just beyond the extremes.