AP Computer Science Principles: Fall 2023 Comprehensive Study Guide

Core Principles of Advanced Placement (AP)

Thousands of teachers have contributed to the principles of AP to ensure clarity, academic challenge, and intellectual freedom.

  • Clarity and Transparency: AP makes course frameworks and sample assessments public to provide clear expectations for teachers and students.

  • Encounter with Evidence: Courses develop independent thinkers who draw conclusions based on evidence and the scientific method.

  • Opposition to Censorship: AP respects intellectual freedom. Schools banning required topics (e.g., evolution in Biology) lose the AP designation for that course.

  • Opposition to Indoctrination: Students are expected to analyze multiple perspectives. No points are awarded for agreeing with specific viewpoints. Mature evaluation of content is required.

  • Open-Mindedness to Histories and Culture: Courses ground studies in primary sources to evaluate nationalities, religions, and ethnicities fairly.

  • Respect for Every Student: Diversity in backgrounds and viewpoints is respected. Debate of ideas is protected, while personal attacks are prohibited.

  • Choice for Parents and Students: Enrollment is a choice. Expert educators and professors craft materials, which are validated by the American Council on Education and studies confirming college credit usage.

Course Foundations and Academic Context

  • College Course Equivalent: AP Computer Science Principles (CSP) is equivalent to an introductory, college-level breadth course in computer science.

  • Prerequisites: Successful completion of a first-year high school algebra course. Students should understand linear functions, function composition, and the Cartesian (x,y)(x, y) coordinate system.

  • Mathematical Foundation: Prior computer science experience is not required, but mathematical reasoning is essential.

  • Major Goals of CSP:     * Computational Solution Design.     * Algorithms and Program Development.     * Abstraction in Program Development.     * Code Analysis.     * Computing Innovations.     * Responsible Computing.

  • Professional Alignment: The curriculum follows the breadth-first approach of the Association for Computing Machinery (ACM) and IEEE Computing Society (IEEE-CS). It also vertically aligns with the Computer Science Teachers Association (CSTA) K–12 Framework.

  • Course Contributors: Notable contributors include Christine Alvarado (UCSD), Adam Cannon (Columbia University), Tom Cortina (Carnegie Mellon), and Jeff Gray (University of Alabama). Staff leadership includes Shu-Kang Chen, Crystal Furman, and Daniel Klag.

Advanced Placement Resources: AP Classroom and Digital Tools

  • AP Classroom: An online platform supporting teachers and students with formative assessments and feedback labels.

  • Big Idea Guides: Planning guides that outline all required content and skills into topics.

  • Topic Questions: Formative questions used to check understanding during instruction. Results cannot be used for teacher evaluation or student letter grades.

  • AP Question Bank: A library of secure AP Exam questions for customized classroom testing.

  • Digital Activation: The process of signing in to "My AP" to access resources and streamline exam ordering. It eliminates the need for extensive answer sheet bubbling on exam day through personalized registration labels.

  • AP Digital Portfolio: The official site where students upload and submit their performance tasks.

Computational Thinking Practices and Skills

Students must develop six specific practices throughout the course:

  • Practice 1: Computational Solution Design     * 1.A: Investigate the situation, context, or task.     * 1.B: Determine and design an appropriate method or approach.     * 1.C: Explain how collaboration affects the development of a solution.     * 1.D: Evaluate solution options.

  • Practice 2: Algorithms and Program Development     * 2.A: Represent algorithmic processes without a programming language (e.g., pseudocode or flowcharts).     * 2.B: Implement and apply an algorithm.

  • Practice 3: Abstraction in Program Development     * 3.A: Generalize data sources through variables.     * 3.B: Use abstraction to manage complexity.     * 3.C: Explain how abstraction manages complexity.

  • Practice 4: Code Analysis     * 4.A: Explain how a code segment or program functions.     * 4.B: Determine the result of code segments.     * 4.C: Identify and correct errors (testing, hand tracing, debuggers).

  • Practice 5: Computing Innovations     * 5.A: Explain how computing systems work.     * 5.B: Explain how knowledge is generated from data.     * 5.C: Describe the impact of a computing innovation.     * 5.D: Describe the impact of gathering data.     * 5.E: Evaluate the use of computing based on legal and ethical factors.

  • Practice 6: Responsible Computing     * 6.A: Collaborate in solution development.     * 6.B: Use safe and secure methods for devices.     * 6.C: Acknowledge intellectual property (IP) of others.

Course Framework: The Five Big Ideas

Big Idea 1: Creative Development (CRD) — Exam Weight: 10–13%
  • Collaboration: Multiple perspectives improve innovations and help avoid bias. Effective collaboration includes interpersonal skills like communication, consensus building, conflict resolution, and negotiation.

  • Iterative Design: Development involves investigating, reflecting, designing, prototyping, and testing.

  • Program Behavior: How a program functions during execution, often described by user interaction.

  • Errors: Logic errors (behaving incorrectly), syntax errors (violation of language rules), run-time errors (errors during execution), and overflow errors (handling a value outside the defined range).

Big Idea 2: Data (DAT) — Exam Weight: 17–22%
  • Binary Representation: Bits (binary digits 0 or 1) are grouped to represent abstractions like numbers, characters, and colors. A byte is 8 bits.

  • Binary (Base 2) vs. Decimal (Base 10): Place values are powers of the base. For binary: 202^0, 212^1, 222^2, etc.

  • Data Compression:     * Lossless: Reduces bits while guaranteeing complete reconstruction of original data.     * Lossy: Significantly reduces bits but reconstructs only an approximation; often used where transmission speed is more important than quality.

  • Metadata: Data about data (e.g., image creation date). Changes in metadata do not change the primary data.

  • Challenges: Scalability involves the capacity to change size/scale to meet new demands. Parallel systems may be required for large data sets.

Big Idea 3: Algorithms and Programming (AAP) — Exam Weight: 30–35%
  • Variables: Abstractions holding a value. Assignment operator evaluates an expression and stores the result.

  • Data Abstraction: Lists are ordered sequences of elements. They manage complexity by naming collections without referencing individual details. Indices start at 1 in AP CSP pseudocode.

  • Mathematical Operations: Addition (++), subtraction (-), multiplication (*), division (//), and Modulus (extMODext{MOD}) which provides the remainder of division (17extMOD5=217 ext{ MOD } 5 = 2).

  • Boolean Logic: Operates on True/False values using NOTNOT, ANDAND, and OROR. Relational operators (=, ≠, >, <, ≥, ≤) test values.

  • Control Flow: Selection (IFIF Statements) and Iteration (REPEATextnTIMESREPEAT ext{ n TIMES} or REPEATextUNTILREPEAT ext{ UNTIL}).

  • Procedures: Named groups of instructions. Procedural abstraction reduces complexity through modularity and code reuse. Parameters are input variables; arguments are the actual values passed.

  • Algorithmic Efficiency: Polynomial efficiency algorithms run in "reasonable time." Exponential or factorial efficiencies are "unreasonable."

  • Undecidable Problems: Problems for which no algorithm can provide a correct yes-or-no answer for all inputs.

Big Idea 4: Computer Systems and Networks (CSN) — Exam Weight: 11–15%
  • Network Basics: A computing device is a physical artifact. A system is a group of devices/programs working together. A network is interconnected devices sending/receiving data.

  • The Internet: A network of networks based on open (nonproprietary) protocols (IP,TCP,UDP,HTTPIP, TCP, UDP, HTTP).

  • Routing: Finding a path between sender and receiver. Routing is dynamic. Redundancy (extra paths) leads to fault tolerance (continued operation despite failures).

  • Data Transmission: Information sent via packets (chunks of data + metadata). Packets can arrive out of order.

  • World Wide Web (WWW): A system of linked pages/files using the Internet as the transport mechanism.

  • Computing Models:     * Sequential: One at a time.     * Parallel: Simultaneous execution of multiple chunks.     * Distributed: Uses multiple devices.     * Speedup: Time taken sequentially divided by time taken in parallel.

Big Idea 5: Impact of Computing (IOC) — Exam Weight: 21–26%
  • Effects: Innovations change task completion, but can also cause unintended consequences like targeted advertising misuse or discriminatory bias in machine learning.

  • The Digital Divide: Differing access to technology based on socioeconomic, geographic, or demographic gaps.

  • Crowdsourcing: Obtaining information/input from a large group via the Internet (e.g., Citizen Science).

  • Intellectual Property (IP): Protected by copyright. Creative Commons (CCCC) allows free distribution with certain rights. Open source makes programs freely available. Open access provides unrestricted online research output.

  • Privacy and Safety: Personally Identifiable Information (PIIPII) is data that identifies an individual (SSN, medical info).

  • Security Measures: Multifactor authentication (knowledge, possession, inherence), Encryption (Symmetric/Public Key), Firewalls, and Certificate Authorities.

  • Threats: Phishing, Keylogging, Malware, Viruses, and Rogue Access Points.

Programming Languages and Tools

CSP does not designate a specific language. Recommendations include:

  • Block-based: Alice, App Inventor, LEGO Mindstorms EV3, Scratch, Snap!, Microsoft MakeCode.

  • Text-based: Java, JavaScript, Python, Processing, Quorum, Swift, TI-Basic.

  • Environment Specifics: App Lab (JavaScript/Block toggle), EarSketch (JS/Python music creation), Greenfoot (Java IDE).

  • Note: HTML is not an acceptable programming language for the Create Performance Task.

The AP Computer Science Principles Exam Structure

  • Section I: Multiple-Choice (70%)     * 70 Questions | 120 Minutes.     * 57 Single-select.     * 5 Single-select with a reading passage about a computing innovation.     * 8 Multi-select (select two correct answers).

  • Section II: Create Performance Task (30%)     * Requires at least 9 hours of in-class time.     * Components for student upload:         1. Video: 1-minute max, 30MB max, .mp4/other, demonstrating functionality.         2. Program Code: PDF format, must include student-developed code, lists, procedures, selection, and iteration.         3. Personalized Project Reference: Screen captures of the code (no comments/course content) for use on exam day.     * Written Response Section: 2 Questions (4 Prompts) | 60 Minutes during the end-of-course exam.

Academic Integrity and Academic Policy

  • Plagiarism: Submitting work or code segments created by someone else or Generative AI without attribution results in a score of 0.

  • Generative AI Use: Permitted for understanding principles and debugging code, but students must be able to explain the resulting code in detail and provide attribution (exte.g.,"Thiscodewasgeneratedusing[AIToolName]."ext{e.g., "This code was generated using [AI Tool Name]."}).

  • Restricted Content: The Personalized Project Reference cannot contain any course content or comments. If detected, the student receives a score of 0 on the task.

  • Verification: Teachers must ensure students do not submit samples found on AP Central or from curriculum providers.