AP Computer Science Principles

AP / IB · Computer Science

AP Computer Science Principles is a survey course built around six big ideas: creative development, data, algorithms and programming, computer systems and networks, and the impact of computing. Unlike a language-specific course, it asks you to reason about how data is represented and compressed, how the internet moves packets, how algorithms scale, and how computing choices affect people — then to demonstrate programming skill through the Create performance task. Sessions here focus on the conceptual reasoning the multiple-choice section rewards and on the specific written-response requirements of the Create task, using the exam's own pseudocode notation rather than any one classroom language.

Start a session on AP Computer Science Principles

What this covers

  • Reading and tracing the College Board pseudocode used on the exam: procedures, RETURN, list indexing starting at 1, INSERT/APPEND/REMOVE, and robot grid problems
  • Data representation and abstraction: binary and hexadecimal, bits vs bytes, overflow and round-off error, analog vs digital sampling, and lossy vs lossless compression trade-offs
  • Algorithm analysis without Big-O: reasonable vs unreasonable running time, linear vs binary search, heuristics, undecidable problems, and sequential vs parallel vs distributed execution with speedup calculations
  • Computer systems and networks: packet switching, redundancy and fault tolerance, IP/TCP/HTTP roles, bandwidth vs latency, and cybersecurity topics like phishing, encryption keys, and multifactor authentication
  • Impact of computing: crowdsourcing, citizen science, the digital divide, algorithmic bias, intellectual property and Creative Commons, and personally identifiable information
  • Planning and defending a Create performance task program: choosing a student-developed procedure with a parameter that meaningfully affects output, using a list to manage complexity, and writing the four written responses about your code

Where learners get stuck

Writing a Create task procedure that has a parameter but doesn't actually use it to change behaviour
Students learn that a procedure 'takes an argument' and stop there. The task requires the parameter to affect the procedure's functionality, so a procedure that ignores its input, or one that just prints a passed-in value, loses credit even though the code runs correctly.
Assuming lossless compression is always the better choice, or that lossy compression 'ruins' a file
The words sound like win and lose. In practice the exam asks about trade-offs — lossy achieves far smaller files and is acceptable for audio and images where some detail is imperceptible, while lossless is required when the original must be recoverable exactly, such as for text or code.
Confusing 'unreasonable running time' with 'the computer cannot solve it' and both with undecidable problems
All three feel like failure. A problem with unreasonable time (exponential or factorial growth) still has an algorithm and can be solved for small inputs or approximated with a heuristic; an undecidable problem has no algorithm that gives a correct answer for every input, which is a different claim entirely.

What a session looks like

A session usually starts with a short diagnostic on one big idea — say, you trace two pseudocode segments aloud and explain what a robot ends up doing, or you convert a binary value and predict where overflow occurs. Evelyn asks you to justify each answer in words, since the exam's multiple-choice questions often hinge on why an option is wrong rather than on computation. For Create task work, you talk through your program's purpose, then walk through your selected code segments line by line while Evelyn probes the same way the scoring criteria do: does the list manage complexity, what does the parameter change, what two calls with different arguments produce different results. Sessions on impact and networking topics run as structured discussion, with you naming beneficial and harmful effects of a given technology and identifying the data privacy concern involved.

Helpful to know first

  • Comfort with basic algebra: variables, evaluating expressions, and simple percentage and ratio reasoning
  • Some exposure to a block-based or text-based programming environment, enough to have written a loop and a conditional
  • Ability to read a short program and predict its output line by line
  • No prior Java or formal computer science coursework needed

Questions

Is AP CSP easier than AP Computer Science A?
They test different things. CSP covers a broader range of topics — data, networks, and societal impact — with less programming depth, and its programming questions use a simplified pseudocode instead of Java syntax. Students often find the concepts approachable but underestimate the written Create task responses and the algorithm-efficiency questions.
Can Evelyn help with my Create performance task?
Evelyn can help you plan the program, discuss whether your procedure and list meet the stated requirements, and rehearse explaining your code out loud so your written responses are accurate. Under the exam rules the program and the writing must be your own work, so sessions focus on questioning and feedback rather than producing code or text for you.
Which programming language does the course use?
There is no required language — schools use Python, JavaScript, Scratch, App Lab, or others. The exam itself uses College Board pseudocode, so sessions practise reading and writing that notation and translating between it and whatever language your class uses.
My child has never programmed before. Can they still take this course?
Yes. CSP is designed as a first computing course and assumes no prior programming. The early work is on tracing short programs and understanding abstraction, and sessions can start at that level before moving to independent code writing.

Other AP / IB Computer Science topics