AP Computer Science Principles Course and Exam Description
AP Computer Science Principles Course and Exam Description
Course framework
Instructional
section
ample exam
S
questions
Create performance
task guidelines
AP Computer
®
Science
Principles
COURSE AND EXAM DESCRIPTION
Effective
Fall 2023
collegeboard.org © 2020 College Board. 01553-093
AP Computer
®
Science
Principles
COURSE AND EXAM DESCRIPTION
Effective
Fall 2023
1. A
P stands for clarity and transparency. Teachers and students deserve clear
expectations. The Advanced Placement Program makes public its course
frameworks and sample assessments. Confusion about what is permitted in the
classroom disrupts teachers and students as they navigate demanding work.
2. A
P is an unflinching encounter with evidence. AP courses enable students to develop
as independent thinkers and to draw their own conclusions. Evidence and the
scientific method are the starting place for conversations in AP courses.
3. A
P opposes censorship. AP is animated by a deep respect for the intellectual
freedom of teachers and students alike. If a school bans required topics from their
AP courses, the AP Program removes the AP designation from that course and
its inclusion in the AP Course Ledger provided to colleges and universities. For
example, the concepts of evolution are at the heart of college biology, and a course
that neglects such concepts does not pass muster as AP Biology.
4. A
P opposes indoctrination. AP students are expected to analyze different
perspectives from their own, and no points on an AP Exam are awarded for
agreement with a specific viewpoint. AP students are not required to feel certain
ways about themselves or the course content. AP courses instead develop
students’ abilities to assess the credibility of sources, draw conclusions, and make
up their own minds.
As the AP English Literature course description states: “AP students are not
expected or asked to subscribe to any one specific set of cultural or political values,
but are expected to have the maturity to analyze perspectives different from their
own and to question the meaning, purpose, or effect of such content within the
literary work as a whole.”
5. A
P courses foster an open-minded approach to the histories and cultures of
different peoples. The study of different nationalities, cultures, religions, races, and
ethnicities is essential within a variety of academic disciplines. AP courses ground
such studies in primary sources so that students can evaluate experiences and
evidence for themselves.
6. E
very AP student who engages with evidence is listened to and respected.
Students are encouraged to evaluate arguments but not one another. AP
classrooms respect diversity in backgrounds, experiences, and viewpoints. The
perspectives and contributions of the full range of AP students are sought and
considered. Respectful debate of ideas is cultivated and protected; personal
attacks have no place in AP.
7. A
P is a choice for parents and students. Parents and students freely choose to
enroll in AP courses. Course descriptions are available online for parents and
students to inform their choice. Parents do not define which college-level topics
are suitable within AP courses; AP course and exam materials are crafted by
committees of professors and other expert educators in each field. AP courses and
exams are then further validated by the American Council on Education and studies
that confirm the use of AP scores for college credits by thousands of colleges and
universities nationwide.
The AP Program encourages educators to review these principles with parents and
students so they know what to expect in an AP course. Advanced Placement is always
a choice, and it should be an informed one. AP teachers should be given the confidence
and clarity that once parents have enrolled their child in an AP course, they have agreed
to a classroom experience that embodies these principles.
© 2023 The Advanced Placement Program, AP, AP Central, and the acorn logo are registered trademarks
of the College Board. All other products and services may be trademarks of their respective owners. Visit
College Board on the web: collegeboard.org.
Contents
v Acknowledgments
1 About AP
4 AP Resources and Supports
6 Instructional Model
7 About the AP Computer Science Principles Course
7 College Course Equivalent
7 Prerequisites
COURSE FRAMEWORK
11 Introduction
13 Course Framework Components
15 Computational Thinking Practices
17 Course Content
20 Course at a Glance
23 Big Idea Guides
24 Using the Big Idea Guides
27 BIG IDEA 1: Creative Development
41 BIG IDEA 2: Data
57 BIG IDEA 3: Algorithms and Programming
97 BIG IDEA 4: Computer Systems and Networks
109 BIG IDEA 5: Impact of Computing
INSTRUCTIONAL APPROACHES
129 Selecting and Using Course Materials
132 Instructional Strategies
140 Developing Computational Thinking Practices
152 Using Strategies for Collaboration
153 Differentiating Computer Science Instruction
CURRICULUM ALIGNMENT
157 Curriculum Alignment
158 Unit at a Glance
EXAM INFORMATION
163 Exam Overview
175 Sample Exam Questions
STUDENT HANDOUTS
193 Create Performance Task
199 Guidelines for Completing the Performance Task
APPENDIX
207 APPENDIX 1: AP CSP Exam Reference Sheet
215 APPENDIX 2: AP CSP Conceptual Framework
Acknowledgments
College Board would like to acknowledge the contributors and reviewers for
their assistance with and commitment to the development of this course. All
individuals’ names and their affiliations were current at the time of contribution.
Christine Alvarado, University of California, San Diego, CA
Bradley Bearden, Dadeville High School, Dadeville, AL
Daniel Bonarigo, Riverside Brookfield High School, Chicago, IL
Adam Cannon, Columbia University, New York, NY
Joseph Coglianese, Troy High School, Fullerton, CA
Jacqueline Corricelli, West Hartford Public School, West Hartford, CT
Tom Cortina, Carnegie Mellon University, Pittsburgh, PA
Sandy Czajka, Riverside Brookfield High School, Riverside, IL
Marilyn Fitzpatrick, Charles H. Flowers High School, Springdale, MD
Dan Garcia, University of California, Berkeley, CA
Jeff Gray, The University of Alabama, Tuscaloosa, AL
Jessica Jarboe, Milton High School, Milton, MA
Brande Jones, Woodward Academy, College Park, GA
Douglas Kiang, Punahou High School, Honolulu, HI
Jennifer Rosato, The College of St. Scholastica, Duluth, MN
Alexander Schenk, Collegiate School of Medicine and Bioscience, St. Louis, MO
Cheryl Swanier, University of Massachusetts - Amherst, Amherst, MA
Paul Tymann, Rochester Institute of Technology, Rochester, NY
Chinma Uche, CREC Academy of Aerospace and Engineering, Windsor, CT
Jill Westerlund, Hoover High School, Hoover, AL
Carol Yarbrough, Alabama School of Fine Arts, Birmingham, AL
SPECIAL THANKS
Jan Cuny, Owen Astrachan, Amy Briggs, and the National
Science Foundation
College Board’s Advanced Placement® Program (AP®) with formative Topic Questions that teachers can assign
enables willing and academically prepared students throughout the year to measure students’ progress as
to pursue college-level studies—with the opportunity they acquire content knowledge and develop skills.
to earn college credit, advanced placement, or
both—while still in high school. Through AP courses
in 38 subjects, each culminating in a challenging
Enrolling Students:
exam, students learn to think critically, construct solid Equity and Access
arguments, and see many sides of an issue—skills College Board strongly encourages educators to
that prepare them for college and beyond. Taking AP make equitable access a guiding principle for their
courses demonstrates to college admission officers AP programs by giving all willing and academically
that students have sought the most challenging prepared students the opportunity to participate
curriculum available to them, and research indicates in AP. We encourage the elimination of barriers
that students who score a 3 or higher on an AP Exam that restrict access to AP for students from ethnic,
typically experience greater academic success in racial, and socioeconomic groups that have been
college and are more likely to earn a college degree traditionally underserved. College Board also believes
than non-AP students. Each AP teacher’s syllabus that all students should have access to academically
is evaluated and approved by faculty from some of challenging coursework before they enroll in AP classes,
the nation’s leading colleges and universities, and AP which can prepare them for AP success. It is only
Exams are developed and scored by college faculty and through a commitment to equitable preparation and
experienced AP teachers. Most four-year colleges and access that true equity and excellence can be achieved.
universities in the United States grant credit, advanced
placement, or both on the basis of successful AP
Exam scores—more than 3,300 institutions worldwide
Offering AP Courses:
annually receive AP scores. The AP Course Audit
The AP Program unequivocally supports the principle
AP Course Development that each school implements its own curriculum that will
enable students to develop the content understandings
In an ongoing effort to maintain alignment with best
and skills described in the course framework.
practices in college-level learning, AP courses and
exams emphasize challenging, research-based The AP Program does have a short list of curricular
curricula aligned with higher education expectations. and resource requirements that must be fulfilled
before a school can label a course “Advanced
Teachers can choose to adopt the curriculum of
Placement” or “AP.” Schools wishing to offer AP
one of the AP endorsed providers or design their
courses must participate in the AP Course Audit, a
own curriculum for AP Computer Science Principles,
process through which AP teachers’ course materials
selecting appropriate college-level readings,
are reviewed by college faculty. Teachers can also
assignments, and resources. This course and exam
adopt a syllabus from an AP endorsed provider
description presents the content and skills that
during this process.The AP Course Audit was created
are the focus of the corresponding college course
to provide teachers and administrators with clear
and that appear on the AP Exam. The intention
guidelines on curricular and resource requirements
of this publication is to respect teachers’ time
for AP courses and to help colleges and universities
and expertise by providing a roadmap that they
validate courses marked “AP” on students’ transcripts.
can modify and adapt to their local priorities and
This process ensures that AP teachers’ courses meet
preferences. By organizing the AP course content
or exceed the curricular and resource expectations
and skills into topics, the AP Program is able to
that college and secondary school faculty have
provide teachers and students
established for college-level courses.
By completing a simple activation process at the start of the school year, teachers and
students receive access to a robust set of classroom resources.
AP Classroom
AP Classroom is a dedicated online platform designed to support teachers and students
throughout their AP experience. The platform includes a variety of powerful resources and
tools to provide yearlong support to teachers and enable students to receive meaningful
feedback on their progress.
TOPIC QUESTIONS
Formative AP questions provide feedback to students on the areas where they need to focus
and are designed to meet students where they are in the material. Topic Questions are best
used for spot-checking student understanding while teaching the topics identified in the
course framework. They can be used in class or as homework based on teacher preference.
The questions can reveal misunderstandings and help teachers target content and skills to
emphasize in lessons and help students understand why an answer is correct or incorrect.
Because the Topic Questions are formative, the results of these assessments cannot be used
to evaluate teacher effectiveness or assign letter grades to students, and any such misuses
are grounds for losing school authorization to offer AP courses.*
AP QUESTION BANK
This online library of real AP Exam questions provides teachers with secure questions to use
in their classrooms. Teachers can find questions indexed by course topics and skills, create
customized tests, and assign them online or on paper. These tests enable students to practice
and get feedback on each question.
§§ Teachers and students sign in to, or create, their College Board accounts.
§§ Teachers confirm that they have added the course they teach to their AP Course Audit
account and have had it approved by their school’s administrator.
§§ Teachers or AP Coordinators, depending on who the school has decided is responsible,
set up class sections so students can access AP resources and have exams ordered on
their behalf.
§§ Students join class sections with a join code provided by their teacher or AP Coordinator.
§§ Students will be asked for additional registration information upon joining their first class
section, which eliminates the need for extensive answer sheet bubbling on exam day.
While the digital activation process takes a short time for teachers, students, and
AP Coordinators to complete, overall it helps save time and provides the following
additional benefits:
Whether teachers choose to develop their own curriculum or adopt an AP endorsed provider's
curriculum, integrating AP resources throughout the course can help students develop skills
and conceptual understandings. The instructional model outlined below shows possible ways
to incorporate AP resources into the classroom.
Plan
Teachers may consider the following approaches as they plan their instruction.
§§ Review the overview at the start of each big idea guide to identify essential questions,
conceptual understandings, and skills for each big idea.
§§ Use the Big Idea at a Glance table to identify related topics that build toward a common
understanding across big ideas, and then group those topics into units or modules,
ensuring appropriate sequencing, scaffolding, and pacing for students.
§§ Identify useful strategies in the Instructional Approaches section to help teach the
concepts and skills.
Teach
When teaching, supporting resources can be used to build students’ conceptual
understanding and mastery of skills.
§§ Use the topic pages in the big idea guides to identify the required content.
§§ Integrate the content with a skill, considering any appropriate scaffolding.
§§ Employ any of the instructional strategies identified during the planning stage.
§§ Use the available resources on the topic pages to bring a variety of assets into
the classroom.
Assess
Teachers can measure student understanding of the content and skills covered in the big idea
and provide actionable feedback to students.
§§ While teaching each big idea, use AP Classroom to assign students the Topic Questions
as homework or as an in-class task.
§§ Provide question-level feedback to students through answer rationales; provide topic- and
skill-level feedback.
§§ Create additional practice opportunities using the AP Question Bank, and assign them
through AP Classroom.
AP Computer Science Principles introduces students to the breadth of the field of computer
science. In this course, students will learn to design and evaluate solutions and to apply
computer science to solve problems through the development of algorithms and programs.
They will incorporate abstraction into programs and use data to discover new knowledge.
Students will also explain how computing innovations and computing systems, including the
Internet, work, explore their potential impacts, and contribute to a computing culture that
is collaborative and ethical. It is important to note that the AP Computer Science Principles
course does not have a designated programming language. Teachers have the flexibility
to choose a programming language(s) that is most appropriate for their students to use in
the classroom.
Prerequisites
It is recommended that students in the AP Computer Science Principles course have
successfully completed a first-year high school algebra course with a strong foundation of
basic linear functions, composition of functions, and problem-solving strategies that require
multiple approaches and collaborative efforts. In addition, students should be able to use a
Cartesian (x, y) coordinate system to represent points on a plane. It is important that students
and their advisers understand that any significant computer science course builds upon a
foundation of mathematical reasoning that should be acquired before attempting such
a course. Prior computer science experience is not required to take this course.
Course
Framework
Introduction
§§ Responsible Computing—Contribute to an
inclusive, safe, collaborative, and ethical computing
culture.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 11
Return to Table of Contents
© 2023 College Board
The AP Computer Science Principles course vertically Resource Requirements
aligns with the core concepts in the Computer
Students should have access to a computer system(s)
Science Teachers Association (CSTA) K–12
that contains appropriate software to create and edit
Computer Science Framework. Most of the K–12
programs and allows students to practice, complete,
Core Practices and Concepts are extended in the
and submit the AP Computer Science Principles
AP Computer Science Principles course, and the
performance task. The computer must have Internet
expected depth of knowledge is significantly higher
access and be able to access the sites necessary
in the AP course. This vertical alignment allows CS
for students to be successful in the course and
teachers to make connections from earlier courses
assessment. The school ensures that each student
to the college-equivalent AP Computer Science
has access to the AP Computer Science Principles
Principles course.
Exam Reference Sheet (see Appendix), as well as
performance task directions. The school ensures that
AP Computer Science Program each student has a college-level text or curricular
AP Computer Science Principles is one of two AP resources deemed necessary by the teacher for
Computer Science courses available to students. individual use inside and outside of the classroom.
The AP Computer Science A course complements
AP Computer Science Principles through a focused
study of the Algorithms and Programming big idea.
Students can take these two courses in either order or
concurrently, as allowed by their school.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 12
Return to Table of Contents
© 2023 College Board
Course Framework
Components
Overview
This course framework provides a description of what students should know and
be able to do to qualify for college credit or placement.
2 COURSE CONTENT
The course content is organized into big ideas, which are cross-cutting
concepts that build conceptual understanding and spiral throughout the
course. The content and conceptual understandings within the big ideas
reflect what colleges and universities typically expect students to master
to qualify for college credit and/or placement.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 13
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
1 AP COMPUTER SCIENCE PRINCIPLES
Computational
Thinking
Practices
The table that follows presents the computational thinking practices that
students should develop during the AP Computer Science Principles course. The
practices form the basis of tasks on the AP Exam.
The learning objectives found in the big idea guides are each aligned to one of
the skills from a practice. Teachers will want to be sure to integrate the practices
and the course content with enough repetition to prepare students to transfer
these skills when taking the AP Exam.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 15
Return to Table of Contents
© 2023 College Board
AP COMPUTER SCIENCE PRINCIPLES
Computational Thinking
Practices: Skills
Practice 1 Practice 2 Practice 3 Practice 4 Practice 5 Practice 6
Computational Algorithms Abstraction Code Computing Responsible
Solution and Program in Program Analysis 4 Innovations 5 Computing 6
SKILLS
1.A Investigate 2.A Represent 3.A Generalize 4.A Explain how 5.A Explain 6.A Collaborate in
the situation, algorithmic data sources a code segment how computing the development
context, or task. processes through variables. or program systems work. of solutions.
without using a functions.
1.B Determine programming 3.B Use 5.B Explain how 6.B Use safe
and design an language. abstraction 4.B Determine knowledge can be and secure
appropriate to manage the result of code generated from methods when
method or 2.B Implement complexity in a segments. data. using computing
approach to and apply an program. devices.
achieve the algorithm. 4.C Identify and 5.C Describe
*NOTE: All computational thinking practices except Computational Thinking Practice 6 are
assessed in the multiple-choice section of the AP Exam.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 16
Return to Table of Contents
© 2023 College Board
2 AP COMPUTER SCIENCE PRINCIPLES
Course
Content
Based on the Understanding by Design® (Wiggins and McTighe) model, this
course framework provides a description of the course requirements necessary
for student success, with a focus on big ideas that encompass core principles,
theories, and processes of the discipline. The framework also encourages
instruction that prepares students for advanced computer science coursework
and its integration into a wide array of STEM-related fields.
Big Ideas
The big ideas serve as the foundation of the course and help students create
meaningful connections among concepts. They are often overarching concepts
or themes that become threads that run throughout the course. Revisiting the
big ideas and applying them in a variety of contexts enables students to develop
deeper conceptual understanding. Below are the big ideas of the course and a
brief description of each.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 17
Return to Table of Contents
© 2023 College Board
BIG IDEA 3: ALGORITHMS AND PROGRAMMING (AAP)
Programmers integrate algorithms and abstraction to create programs
for creative purposes and to solve problems. Using multiple program
statements in a specified order, making decisions, and repeating the same
process multiple times are the building blocks of programs. Incorporating
elements of abstraction—by breaking problems down into interacting
pieces, each with their own purpose—makes writing complex programs
easier. Programmers need to think algorithmically and use abstraction to
define and interpret processes that are used in a program.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 18
Return to Table of Contents
© 2023 College Board
The five big ideas in AP Computer Science Principles, and their weighting on the
multiple-choice section of the AP Exam, are listed below.
TOPICS
Each big idea is broken down into teachable segments called topics. The topic
pages (starting on page 32) contain all required content for each topic. Although
most topics can be taught in one or two class periods, teachers are encouraged
to pace their course to suit the needs of their students and school.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 19
Return to Table of Contents
© 2023 College Board
Course at BIG
Creative
BIG
a Glance
IDEA IDEA
Data
1 Development 2
10–13% AP Exam
Weighting 17–22% AP Exam
Weighting
1 1
Plan 6
1.1 Collaboration 2
3
2.1 Binary Numbers
The Course at a Glance provides 1
1.2 Program Function 1 2.2 Data Compression
a useful visual organization 3
and Purpose
4 Extracting Information
of the AP Computer Science 5
2.3
1
Program Design from Data
Principles curricular 4
1.3
and Development
components, including the 6 2 2.4 Using Programs
following: 1 1.4 Identifying and 5 with Data
4 Correcting Errors
§§ Big ideas, along with
approximate weighting
§§ Progression of topics within
each big idea
§§ Spiraling of practices across
big ideas
Teach
COMPUTATIONAL THINKING
PRACTICES
Practices spiral across big ideas.
Assess
Assign the Topic Questions—
either as homework or in
class—for each big idea. The
Topic Questions are formative AP
questions that provide feedback to
students on the areas where they
need to focus. Topic Questions Topic Questions
Multiple-choice: ~20 questions Multiple-choice: ~20 questions
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 20
Return to Table of Contents
© 2023 College Board
Computer
BIG
IDEA Algorithms and BIG
IDEA
BIG
IDEA Impact of
Systems and
3 Programming 4 Networks 5 Computing
30–35% AP Exam
Weighting 11-15% AP Exam
Weighting 21–26% AP Exam
Weighting
3 3.1 Variables and 5 4.1 The Internet 5.1 Beneficial and Harmful
5
4 Assignments Effects
1
4.2 Fault Tolerance Digital Divide
3 3.2 Data Abstraction 5 5 5.2
2
3.7 Nested Conditionals
4
2
3.8 Iteration
4
1
3.9 Developing Algorithms
2
2
3.10 Lists
4
1 3.16 Simulations
1 3.17 Algorithmic Efficiency
1 3.18 Undecidable Problems
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 21
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
AP COMPUTER SCIENCE PRINCIPLES
Big Idea
Guides
Designed with input from the community of AP Computer Science
Principles educators, the big idea guides offer all teachers helpful
guidance in building students’ skills and knowledge. It is important to
remember that big ideas are themes that run across the entire school year,
rather than units of instruction. Within each big idea are topics. Teachers
and AP endorsed providers can group topics together to create units or
modules for instruction. In some cases, it may be appropriate for a topic to
appear in more than one unit or module.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 23
Return to Table of Contents
© 2023 College Board
Using the Big Idea Guides
the course.
Effective collaboration can often differ from group work, because it requires equal participation
other students improved
and voice from all members of the group. Early in the school year, it may be helpful for teachers
an overall project?
to establish practices and norms that facilitate a collaborative environment and provide
§ What are some ways students with time to practice working together. Content in this big idea is often paired with Big
you can collect Idea 3: Algorithms and Programming.
additional feedback on
your program to use for
Building Computational can be a good place to start writing their
Building Computational Thinking Practices describes specific
improvements?
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 29
The Big Idea at a Glance table shows the topics and related
BIG
IDEA
Creative Development
learning objectives and skills. The Unit/Module column has
1 been left blank so that teachers can indicate where they are
BIG IDEA AT A GLANCE going to place each topic in their course. Teachers who are
using an AP endorsed provider can determine where each topic
Objective
Learning
The Skills for each topic show how the content in that topic has
6.A Collaborate in the development of solutions (not
assessed).
CRD-1.C
1.2 Program Function and 1.A Investigate the situation, context, or task.
been linked to specific AP Computer Science Principles skills.
CRD-2.A, CRD-2.B,
CRD-2.C, CRD-2.D
Purpose
3.A Generalize data sources through variables.
1.3 Program Design and 1.B Determine and design an appropriate method or
CRD-2.E, CRD-2.F, CRD-2.G,
assessed).
CRD-2.I, CRD-2.J
1.4 Identifying and Correcting 1.B Determine and design an appropriate method or
Errors approach to achieve the purpose.
Go to AP Classroom to assign Topic Questions as you teach the topics in Big Idea 1.
Review the results in class to identify and address any student misunderstandings.
30 | Course Framework V.1 AP Computer Science Principles Course and Exam Description
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 24
Return to Table of Contents
© 2023 College Board
Using the Big Idea Guides
2 1.3 Diagramming
In small groups, have students play a board game for 10 minutes. As they play,
ask them to record the actions (such as rolling the dice or moving their piece) and
decisions made in a diagram or flowchart. Have students trade games with another
group and play the game using the diagram for directions. Students should identify
and correct where the diagram might not be accurate or have missing steps. See the
Language and Logic of Computing: Algorithmic Thinking Teaching and Assessing
Module in the Professional Learning section of AP Classroom for a more detailed
lesson plan and video example.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 31
TOPIC PAGES
Algorithms and Programming
BIG
IDEA The Skills section offers one or more skills related to the topic.
3
TOPIC 3.11 SKILLS
1.A
Where possible, available resources are listed that might help
Binary Search
Investigate the situation,
context, or task. teachers address a particular topic in their classroom.
1.D
Evaluate solution options.
AAP-2.P.2
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 83
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 25
Return to Table of Contents
© 2023 College Board
REQUIRED COURSE CONTENT LABELING SYSTEM
NOTE: Labels are used to distinguish each element of the required course content and are used throughout this course and exam description.
Additionally, they are used in the AP Question Bank and other resources found on AP Classroom. Enduring understandings are labeled
sequentially according to the big idea that they are related to. Learning objectives are labeled to correspond with the enduring understanding
they relate to. Finally, essential knowledge statements are labeled to correspond with the learning objective they relate to.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 26
Return to Table of Contents
© 2023 College Board
AP COMPUTER SCIENCE PRINCIPLES
BIG IDEA 1
Creative
Development
10–13%
AP EXAM WEIGHTING
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 27
Return to Table of Contents
© 2023 College Board
Remember to go to AP Classroom
to assign students the online Topic
Questions for this big idea.
Whether assigned as homework
or completed in class, the Topic
Questions can be used to spot-
check student understanding and
help identify content and skills to
emphasize in lessons.
Topic Questions
Multiple-choice: ~20 questions
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 28
Return to Table of Contents
© 2023 College Board
BIG
IDEA
10–13% AP EXAM WEIGHTING
1
Creative Development
Developing Understanding
ESSENTIAL Collaboration is crucial when developing computing innovations, because having multiple
QUESTIONS perspectives offers opportunities to improve the design of innovations. In this big idea, students
work collaboratively to design and develop programs using an iterative development process.
CRD-1 They identify the needs of all users by gathering input from people from different backgrounds
§§ How has working and demographics. Once the program is developed, they test it to ensure it meets these needs.
collaboratively with
Effective collaboration can often differ from group work, because it requires equal participation
other students improved
and voice from all members of the group. Early in the school year, it may be helpful for teachers
an overall project?
to establish practices and norms that facilitate a collaborative environment and provide
§§ What are some ways students with time to practice working together. Content in this big idea is often paired with Big
you can collect Idea 3: Algorithms and Programming.
additional feedback on
your program to use for can be a good place to start writing their
improvements? Building Computational
documentation. It may be more helpful to
Thinking Practices concentrate on documenting smaller code
CRD-2
1.B 3.A 4.A 4.C segments rather than trying to describe
§§ What are some ways larger sections all at once.
you currently plan your When designing a solution to a problem,
work before starting a programmers consider both the program
itself and the way the user will interact
project?
with the program: the user interface.
Preparing for
§§ What apps or programs
have you stopped using
A well-designed user interface makes it the AP Exam
easy for the user to understand what data
because you didn’t like Students will be expected to design and
are required as input for the program to
the design of how you implement a program of their choice for the
complete its tasks.
interacted with it? Create performance task. While students
When creating diagrams of their programs, select their own topic for this task, they are
students will benefit from considering how required to include certain elements, such as
they want their program to behave based on lists and procedures, in their program code.
identified inputs. Planning ahead may help Providing students with exemplars may help
them determine what abstractions can be them consider the types of programs that
developed and can help identify logic errors can be developed while still meeting this
early in development. requirement.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 29
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
BIG IDEA AT A GLANCE
Objective
Learning
1.1 C
ollaboration 1.C Explain how collaboration affects the development
of a solution.
1.2 P
rogram Function and 1.A Investigate the situation, context, or task.
CRD-2.A, CRD-2.B,
CRD-2.C, CRD-2.D
Purpose
3.A Generalize data sources through variables.
1.3 P
rogram Design and 1.B Determine and design an appropriate method or
CRD-2.E, CRD-2.F, CRD-2.G,
assessed).
CRD-2.I, CRD-2.J
1.4 I dentifying and Correcting 1.B Determine and design an appropriate method or
Errors approach to achieve the purpose.
Go to AP Classroom to assign Topic Questions as you teach the topics in Big Idea 1.
Review the results in class to identify and address any student misunderstandings.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 30
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
SAMPLE INSTRUCTIONAL ACTIVITIES
The sample activities on this page are optional and are offered to provide possible ways to
incorporate instructional approaches into the classroom. They were developed in partnership
with teachers from the AP community to share ways that they approach teaching some of the
topics and skills in this big idea. Please refer to the Instructional Strategies section beginning
on p. 132 for more examples of activities and strategies.
2 1.3 Diagramming
In small groups, have students play a board game for 10 minutes. As they play,
ask them to record the actions (such as rolling the dice or moving their piece) and
decisions made in a diagram or flowchart. Have students trade games with another
group and play the game using the diagram for directions. Students should identify
and correct where the diagram might not be accurate or have missing steps. See the
Language and Logic of Computing: Algorithmic Thinking Teaching and Assessing
Module in the Professional Learning section of AP Classroom for a more detailed
lesson plan and video example.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 31
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
SKILLS
1.C TOPIC 1.1
Collaboration
Explain how collaboration
affects the development of
a solution.
6.A
Collaborate in the
development of solutions.
AVAILABLE RESOURCES
§§ External Resources >
Required Course Content
§§ Collaboration
Tools from Cornell
University Center for
Teaching Innovation ENDURING UNDERSTANDING
§§ 4 Methods to
CRD-1
Enhance Student
Collaboration in Incorporating multiple perspectives through collaboration improves computing
the Classroom from innovations as they are developed.
Concordia University-
Portland
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 32
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
CRD-1.A CRD-1.A.6
Explain how computing Information gathered from potential users
innovations are improved can be used to understand the purpose of a
through collaboration. 1.C program from diverse perspectives and to
develop a program that fully incorporates these
perspectives.
CRD-1.B CRD-1.B.1
Explain how computing Online tools support collaboration by allowing
innovations are developed by programmers to share and provide feedback on
groups of people. 1.C ideas and documents.
CRD-1.B.2
Common models such as pair programming
exist to facilitate collaboration.
CRD-1.C CRD-1.C.1
Demonstrate effective Effective collaborative teams practice
interpersonal skills during interpersonal skills, including but not limited to:
collaboration. 1.C §§ communication
§§ consensus building
§§ conflict resolution
§§ negotiation
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 33
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
SKILLS
1.A TOPIC 1.2
Program Function
Investigate the situation,
context, or task.
3.A
Generalize data sources
through variables.
4.A
and Purpose
Explain how a code
segment or program
functions.
CRD-2.B CRD-2.B.1
Explain how a program or A program is a collection of program
code segment functions. statements that performs a specific task when
4.A run by a computer. A program is often referred
to as software.
CRD-2.B.2
A code segment is a collection of program
statements that is part of a program.
CRD-2.B.3
A program needs to work for a variety of inputs
and situations.
CRD-2.B.4
The behavior of a program is how a program
functions during execution and is often
described by how a user interacts with it.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 34
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
CRD-2.B CRD-2.B.5
Explain how a program or A program can be described broadly by what
code segment functions. it does, or in more detail by both what the
4.A program does and how the program statements
accomplish this function.
CRD-2.C CRD-2.C.1
Identify input(s) to a program. Program inputs are data sent to a computer for
3.A processing by a program. Input can come in a
variety of forms, such as tactile, audio, visual,
or text.
CRD-2.C.2
An event is associated with an action and
supplies input data to a program.
CRD-2.C.3
Events can be generated when a key is pressed,
a mouse is clicked, a program is started, or any
other defined action occurs that affects the
flow of execution.
CRD-2.C.4
Inputs usually affect the output produced by a
program.
CRD-2.C.5
In event-driven programming, program
statements are executed when triggered rather
than through the sequential flow of control.
CRD-2.C.6
Input can come from a user or other programs.
CRD-2.D CRD-2.D.1
Identify output(s) produced Program outputs are any data sent from a
by a program. 3.A program to a device. Program output can come
in a variety of forms, such as tactile, audio,
visual, or text.
CRD-2.D.2
Program output is usually based on a program’s
input or prior state (e.g., internal values).
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 35
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
SKILLS
1.B TOPIC 1.3
Program Design
Determine and design an
appropriate method or
approach to achieve the
and Development
purpose.
1.C
Explain how collaboration
affects the development of
a solution.
4.A
Explain how a code
segment or program
functions.
Required Course Content
6.C
Acknowledge the
intellectual property of
others.
ENDURING UNDERSTANDING
CRD-2
Developers create and innovate using an iterative design process that is user-
focused, that incorporates implementation/feedback cycles, and that leaves ample
AVAILABLE RESOURCE room for experimentation and risk-taking.
§§ Professional
Development >
Teaching and
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
Assessing Module:
Explaining Processes CRD-2.E CRD-2.E.1
Develop a program using a A development process can be ordered and
development process. 1.B intentional, or exploratory in nature.
CRD-2.E.2
There are multiple development processes.
The following phases are commonly used when
developing a program:
§§ investigating and reflecting
§§ designing
§§ prototyping
§§ testing
CRD-2.E.3
A development process that is iterative requires
refinement and revision based on feedback,
testing, or reflection throughout the process.
This may require revisiting earlier phases of the
process.
CRD-2.E.4
A development process that is incremental is
one that breaks the problem into smaller pieces
and makes sure each piece works before adding
it to the whole.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 36
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
CRD-2.F CRD-2.F.1
Design a program and its The design of a program incorporates
user interface. 1.B investigation to determine its requirements.
CRD-2.F.2
Investigation in a development process is
useful for understanding and identifying the
program constraints, as well as the concerns
and interests of the people who will use the
program.
CRD-2.F.3
Some ways investigation can be performed are
as follows:
§§ collecting data through surveys
§§ user testing
§§ interviews
§§ direct observations
CRD-2.F.4
Program requirements describe how a program
functions and may include a description of user
interactions that a program must provide.
CRD-2.F.5
A program’s specification defines the
requirements for the program.
CRD-2.F.6
In a development process, the design phase
outlines how to accomplish a given program
specification.
CRD-2.F.7
The design phase of a program may include:
§§ brainstorming
§§ planning and storyboarding
§§ organizing the program into modules and
functional components
§§ creation of diagrams that represent the
layouts of the user interface
§§ development of a testing strategy for the
program
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 37
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
CRD-2.G CRD-2.G.1
Describe the purpose of a Program documentation is a written description
code segment or program by of the function of a code segment, event,
writing documentation. 4.A procedure, or program and how it was
developed.
CRD-2.G.2
Comments are a form of program
documentation written into the program to
be read by people and do not affect how a
program runs.
CRD-2.G.3
Programmers should document a program
throughout its development.
CRD-2.G.4
Program documentation helps in developing
and maintaining correct programs when
working individually or in collaborative
programming environments.
CRD-2.G.5
Not all programming environments
support comments, so other methods of
documentation may be required.
CRD-2.H CRD-2.H.1
Acknowledge code segments It is important to acknowledge any code
used from other sources. segments that were developed collaboratively
1.C or by another source.
CRD-2.H.2
Acknowledgement of a code segment(s)
written by someone else and used in a program
can be in the program documentation. The
acknowledgement should include the origin or
original author’s name.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 38
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
TOPIC 1.4 SKILLS
1.B
Identifying and
Determine and design an
appropriate method or
approach to achieve the
Correcting Errors
purpose.
4.C
Identify and correct errors
in algorithms and programs,
including error discovery
through testing.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 39
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Creative Development
1
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
CRD-2.J CRD-2.J.1
Identify inputs and In the development process, testing uses
corresponding expected defined inputs to ensure that an algorithm or
outputs or behaviors that program is producing the expected outcomes.
can be used to check the Programmers use the results from testing to
correctness of an algorithm revise their algorithms or programs.
or program. 4.C
CRD-2.J.2
Defined inputs used to test a program should
demonstrate the different expected outcomes
that are at or just beyond the extremes
(minimum and maximum) of input data.
CRD-2.J.3
Program requirements are needed to identify
appropriate defined inputs for testing.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 40
Return to Table of Contents
© 2023 College Board
AP COMPUTER SCIENCE PRINCIPLES
BIG IDEA 2
Data
17–22%
AP EXAM WEIGHTING
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 41
Return to Table of Contents
© 2023 College Board
Remember to go to AP Classroom
to assign students the online Topic
Questions for this big idea.
Whether assigned as homework
or completed in class, the Topic
Questions can be used to spot-
check student understanding and
help identify content and skills to
emphasize in lessons.
Topic Questions
Multiple-choice: ~20 questions
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 42
Return to Table of Contents
© 2023 College Board
BIG
IDEA
17–22% AP EXAM WEIGHTING
2
Data
Developing Understanding
ESSENTIAL Because essentially everything we do with a computer is being broken down into some form
QUESTIONS of data, it is important for students to develop a breadth of understanding of how computers
handle data and how students can use those same data to solve problems such as raising
DAT-1 awareness for a cause, using census data to determine which state will gain seats in the House
§§ How can we use 1s of Representatives, or using traffic and cost data to determine the ideal location for prom. In this
and 0s to represent big idea, students will gain a deep understanding of how information is stored on a computer
something complex like in binary and seamlessly translated into what is seen on the screen or heard through speakers.
a video of the marching Students will also learn how data are processed to learn something new. This big idea is often
band playing a song? paired with Big Idea 3: Algorithms and Programming and Big Idea 5: Impact of Computing.
DAT-2
§§ How can you predict
Building Computational Preparing for the AP Exam
the attendance at a Thinking Practices Data compression algorithms are often used
school event using data 2.B 3.C 5.B to maximize storage space or to transmit
gathered from social data over the Internet, but sometimes at
On the end-of-course exam, students will
media? a cost to the quality of the data. Students
be presented with the way data for text or
§§ When is it more will need to compare data compression
media, such as color, are represented by a
appropriate to use a algorithms and determine which one would
computer and will be asked to convert values
computer to analyze be best to use in a given situation. Providing
from binary to decimal or vice versa. The idea
data than to complete students with examples of different
that there are number systems other than
the analysis by hand? compression algorithms along with how
the decimal system is often new to students.
each might work may deepen students’
Connecting the foundational principles of
understanding. Examples of how data
how number systems operate to the decimal
might be restored to their uncompressed
number system is likely to help students lean
state—or may be unable to be restored—
on their prior knowledge when asked to work
may improve students’ ability to distinguish
with binary numbers.
between compression algorithms.
Some real-world problems and simulations
When presented with scenarios that
involve the use of large data sets that cannot
describe data and metadata for analysis
be easily analyzed by hand and require a
on the end-of-course exam, students will
programming solution that manipulates
be asked to determine what information
or combines the data with other sources
can be found, as well as a potential
to generate new knowledge and find a
programming process that can be used to
solution. When working with large data sets,
extract information or modify the existing
programmers use data abstraction to write
data. Students might benefit from practice
programs that can be flexible enough to
identifying a problem they could solve
handle a change in the number of data entries.
using data, such as the best route to take
Providing students with practice using data
to school, gathering the necessary data to
sets that are too large to manipulate by hand
analyze—either by using a public data set
will motivate them to develop more general
or developing a survey to gather the data—
solutions and data abstractions. Because the
and then implementing a program that will
solution is generalized, an explanation of the
manipulate the data to find an answer.
solution through documentation within the
program may be necessary.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 43
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
BIG IDEA AT A GLANCE
Objective
Learning
2.1 B
inary Numbers 1.D Evaluate solution options.
2.2 D
ata Compression 1.D Evaluate solution options.
DAT-1.D
DAT-2.A, DAT-2.B,
2.3 E
xtracting 5.B Explain how knowledge can be generated from data.
Information from
Data 5.D Describe the impact of gathering data.
DAT-2.C
DAT-2.D,
2.4 U
sing Programs Implement and apply an algorithm.
DAT-2.E
2.B
with Data
5.B Explain how knowledge can be generated from data.
Go to AP Classroom to assign Topic Questions as you teach the topics in Big Idea 2.
Review the results in class to identify and address any student misunderstandings.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 44
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
SAMPLE INSTRUCTIONAL ACTIVITIES
The sample activities on this page are optional and are offered to provide possible ways to
incorporate instructional approaches into the classroom. They were developed in partnership
with teachers from the AP community to share ways that they approach teaching some of the
topics and skills in this big idea. Please refer to the Instructional Strategies section beginning
on p. 132 for more examples of activities and strategies.
2 2.4 Diagramming
Give students a question and a list of data. Have them diagram a process that could
be used to answer the question using the data, making sure to include the input(s)
of information and the output of the transformed data. Have students include an
explanation of how the process represented in their diagram would work to find
the solution.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 45
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
SKILLS
1.D
TOPIC 2.1
Binary Numbers
Evaluate solution options.
2.B
Implement and apply an
algorithm.
3.C
Explain how abstraction
manages complexity.
AVAILABLE RESOURCES
Required Course Content
§§ External Resources >
§§ Binary Numbers from
CS Unplugged
ENDURING UNDERSTANDING
§§ Blown to Bits:
Chapter 1 DAT-1
The way a computer represents data internally is different from the way the data are
interpreted and displayed for the user. Programs are used to translate data into a
representation more easily understood by people.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 46
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
DAT-1.A DAT-1.A.7
Explain how data can be The same sequence of bits may represent
represented using bits. 3.C different types of data in different contexts.
DAT-1.A.8
Analog data have values that change smoothly,
rather than in discrete intervals, over time.
Some examples of analog data include pitch
and volume of music, colors of a painting, or
position of a sprinter during a race.
DAT-1.A.9
The use of digital data to approximate real-
world analog data is an example of abstraction.
DAT-1.A.10
Analog data can be closely approximated
digitally using a sampling technique, which
means measuring values of the analog signal at
regular intervals called samples. The samples
are measured to figure out the exact bits
required to store each sample.
DAT-1.B DAT-1.B.1
Explain the consequences of In many programming languages, integers
using bits to represent data. are represented by a fixed number of bits,
1.D which limits the range of integer values and
mathematical operations on those values. This
limitation can result in overflow or other errors.
DAT-1.B.2
Other programming languages provide
an abstraction through which the size of
representable integers is limited only by the
size of the computer’s memory; this is the
case for the language defined in the exam
reference sheet.
DAT-1.B.3
In programming languages, the fixed number
of bits used to represent real numbers limits
the range and mathematical operations
on these values; this limitation can result
in round-off and other errors. Some real
numbers are represented as approximations in
computer storage.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 47
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
DAT-1.C DAT-1.C.1
For binary numbers: Number bases, including binary and decimal,
a. Calculate the binary (base 2) are used to represent data.
equivalent of a positive DAT-1.C.2
integer (base 10) and vice Binary (base 2) uses only combinations of the
versa. 2.B digits zero and one.
b. Compare and order binary
DAT-1.C.3
numbers. 2.B
Decimal (base 10) uses only combinations of
the digits 0 – 9.
DAT-1.C.4
As with decimal, a digit’s position in the binary
sequence determines its numeric value. The
numeric value is equal to the bit’s value (0 or 1)
multiplied by the place value of its position.
DAT-1.C.5
The place value of each position is determined
by the base raised to the power of the position.
Positions are numbered starting at the
rightmost position with 0 and increasing by 1
for each subsequent position to the left.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 48
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
TOPIC 2.2 SKILL
1.D
Data Compression
Evaluate solution options.
ENDURING UNDERSTANDING
DAT-1
The way a computer represents data internally is different from the way the data are
interpreted and displayed for the user. Programs are used to translate data into a
representation more easily understood by people.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 49
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
DAT-1.D DAT-1.D.6
Compare data compression Lossy data compression algorithms can
algorithms to determine usually reduce the number of bits stored or
which is best in a particular transmitted more than lossless compression
context. 1.D algorithms.
DAT-1.D.7
In situations where quality or ability to
reconstruct the original is maximally important,
lossless compression algorithms are typically
chosen.
DAT-1.D.8
In situations where minimizing data size or
transmission time is maximally important, lossy
compression algorithms are typically chosen.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 50
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
TOPIC 2.3 SKILLS
5.B
Extracting Information
Explain how knowledge can
be generated from data.
5.D
ENDURING UNDERSTANDING
DAT-2
Programs can be used to process data, which allows users to discover information
and create new knowledge.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 51
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
DAT-2.B DAT-2.B.1
Describe what information Metadata are data about data. For example,
can be extracted from the piece of data may be an image, while the
metadata. 5.B metadata may include the date of creation or
the file size of the image.
DAT-2.B.2
Changes and deletions made to metadata do
not change the primary data.
DAT-2.B.3
Metadata are used for finding, organizing, and
managing information.
DAT-2.B.4
Metadata can increase the effective use of
data or data sets by providing additional
information.
DAT-2.B.5
Metadata allow data to be structured and
organized.
DAT-2.C DAT-2.C.1
Identify the challenges The ability to process data depends on the
associated with processing capabilities of the users and their tools.
data. 5.D
DAT-2.C.2
Data sets pose challenges regardless of size,
such as:
§§ the need to clean data
§§ incomplete data
§§ invalid data
§§ the need to combine data sources
DAT-2.C.3
Depending on how data were collected, they
may not be uniform. For example, if users enter
data into an open field, the way they choose to
abbreviate, spell, or capitalize something may
vary from user to user.
DAT-2.C.4
Cleaning data is a process that makes the data
uniform without changing their meaning (e.g.,
replacing all equivalent abbreviations, spellings,
and capitalizations with the same word).
DAT-2.C.5
Problems of bias are often created by the type
or source of data being collected. Bias is not
eliminated by simply collecting more data.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 52
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
DAT-2.C DAT-2.C.6
Identify the challenges The size of a data set affects the amount of
associated with processing information that can be extracted from it.
data. 5.D
DAT-2.C.7
Large data sets are difficult to process using
a single computer and may require parallel
systems.
DAT-2.C.8
Scalability of systems is an important
consideration when working with data sets, as
the computational capacity of a system affects
how data sets can be processed and stored.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 53
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
SKILLS
2.B
TOPIC 2.4
Using Programs
Implement and apply an
algorithm.
5.B
Explain how knowledge can
be generated from data. with Data
ENDURING UNDERSTANDING
DAT-2
Programs can be used to process data, which allows users to discover information
and create new knowledge.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 54
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Data
2
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
DAT-2.D DAT-2.D.6
Extract information from data Some processes that can be used to extract
using a program. 2.B or modify information from data include the
following:
§§ transforming every element of a data set,
such as doubling every element in a list, or
adding a parent’s email to every student
record
§§ filtering a data set, such as keeping only the
positive numbers from a list, or keeping only
students who signed up for band from a
record of all the students
§§ combining or comparing data in some way,
such as adding up a list of numbers, or
finding the student who has the highest GPA
§§ visualizing a data set through a chart, graph,
or other visual representation
DAT-2.E DAT-2.E.1
Explain how programs can Programs are used in an iterative and
be used to gain insight and interactive way when processing information
knowledge from data. 5.B to allow users to gain insight and knowledge
about data.
DAT-2.E.2
Programmers can use programs to filter and
clean digital data, thereby gaining insight and
knowledge.
DAT-2.E.3
Combining data sources, clustering data, and
classifying data are parts of the process of
using programs to gain insight and knowledge
from data.
DAT-2.E.4
Insight and knowledge can be obtained
from translating and transforming digitally
represented information.
DAT-2.E.5
Patterns can emerge when data are
transformed using programs.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 55
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
AP COMPUTER SCIENCE PRINCIPLES
BIG IDEA 3
Algorithms
and
Programming
30–35%
AP EXAM WEIGHTING
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 57
Return to Table of Contents
© 2023 College Board
Remember to go to AP Classroom
to assign students the online Topic
Questions for this big idea.
Whether assigned as homework
or completed in class, the Topic
Questions can be used to spot-
check student understanding and
help identify content and skills to
emphasize in lessons.
Topic Questions
Multiple-choice: ~90 questions
Performance Tasks:
~20 prompts
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 58
Return to Table of Contents
© 2023 College Board
BIG
IDEA
30–35% AP EXAM WEIGHTING
3
Algorithms and
Programming
Developing Understanding
ESSENTIAL All programming languages, whether block-based or text-based, use similar programming
QUESTIONS structures and commands. Having a basic understanding of how these building blocks are
combined to form algorithms and abstractions in one language makes it easier to apply these
AAP-1 same understandings to other programming languages. This big idea focuses on determining
§§ How can we store data the efficiency of algorithms, as well as writing and implementing algorithms in a program. This
in a program to solve big idea can be paired with any of the other big ideas and taught throughout the school year.
problems?
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 59
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
BIG IDEA AT A GLANCE
Objectives
Learning
3.2 D
ata Abstraction 3.A Generalize data sources through variables.
AAP-1.C,
3.B
3.3 M
athematical Expressions 2.A Represent algorithmic processes without using a
AAP-2.A, AAP-2.B,
programming language.
3.4 S
trings 4.B Determine the result of code segments.
AAP-2.E, AAP-2.D
3.5 B
oolean Expressions 2.B Implement and apply an algorithm.
AAP-2.F
3.6 C
onditionals 2.A Represent algorithmic processes without using a
programming language.
AAP-2.I AAP-2.G,
AAP-2.H
programming language.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 60
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
BIG IDEA AT A GLANCE (cont’d)
Objectives
Learning
3.11 B
inary Search 1.A Investigate the situation, context, or task.
AAP-2.P
3.12 C
alling Procedures 3.B Use abstraction to manage complexity in a program.
AAP-3.A
3.13 D
eveloping Procedures 3.B Use abstraction to manage complexity in a program.
AAP-3.B,
AAP-3.C
3.14 L
ibraries 2.B Implement and apply an algorithm.
AAP-3.D
3.15 R
andom Values 2.B Implement and apply an algorithm.
AAP-3.E
3.16 S
imulations 1.A Investigate the situation, context, or task.
AAP-3.F
3.17 A
lgorithmic Efficiency 1.D Evaluate solution options.
AAP-4.A
3.18 U
ndecidable Problems 1.A Investigate the situation, context, or task.
AAP-4.B
Go to AP Classroom to assign Topic Questions as you teach the topics in Big Idea 3.
Review the results in class to identify and address any student misunderstandings.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 61
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SAMPLE INSTRUCTIONAL ACTIVITIES
The sample activities on this page are optional and are offered to provide possible ways to
incorporate instructional approaches into the classroom. They were developed in partnership
with teachers from the AP community to share ways that they approach teaching some of the
topics and skills in this big idea. Please refer to the Instructional Strategies section beginning
on p. 132 for more examples of activities and strategies.
4 3.18 Think-pair-share
Have students work in pairs to consider what factors would be the most important
to prioritize in writing an algorithm to build the perfect master schedule for the
school. Some considerations may include maximum class size, student preferences,
and teacher availability. Have the pairs discuss and then report their results. Finally,
discuss as a class how such programs may have to settle for a “good enough”
solution when an exact solution may not be possible in a reasonable amount of time.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 62
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
TOPIC 3.1 SKILLS
3.A
Variables and
Generalize data sources
through variables.
4.B
ENDURING UNDERSTANDING
AAP-1
To find specific solutions to generalizable problems, programmers represent and
organize data in multiple ways.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 63
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-1.B AAP-1.B.1
Determine the value of a The assignment operator allows a program to
variable as a result of an change the value represented by a variable.
assignment. 4.B
AAP-1.B.2
The exam reference sheet provides the “ ”
operator to use for assignment. For example,
Text:
a expression
Block:
a expression
evaluates expression and then assigns a
copy of the result to the variable a.
AAP-1.B.3
The value stored in a variable will be the most
recent value assigned. For example:
a 1
b a
a 2
display(b)
still displays 1.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 64
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
TOPIC 3.2 SKILLS
3.A
Data Abstraction
Generalize data sources
through variables.
3.B
Use abstraction to manage
complexity in a program.
3.C
Explain how abstraction
manages complexity.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 65
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-1.D AAP-1.D.1
For data abstraction: Data abstraction provides a separation
a. Develop data abstraction between the abstract properties of a data type
using lists to store multiple and the concrete details of its representation.
elements. 3.B
AAP-1.D.2
b. Explain how the use of Data abstractions manage complexity in
data abstraction manages programs by giving a collection of data a name
complexity in program without referencing the specific details of the
code. 3.C representation.
AAP-1.D.3
Data abstractions can be created using lists.
AAP-1.D.4
Developing a data abstraction to implement in a
program can result in a program that is easier to
develop and maintain.
AAP-1.D.5
Data abstractions often contain different types
of elements.
AAP-1.D.6
The use of lists allows multiple related items to
be treated as a single value. Lists are referred
to by different names, such as array, depending
on the programming language.
X XCLUSION STATEMENT (EK APP-1.D.6):
E
The use of linked lists is outside the scope of this
course and the AP Exam.
AAP-1.D.7
The exam reference sheet provides the
notation
[value1, value2, value3, ...]
to create a list with those values as the first,
second, third, and so on items. For example,
§§ Text:
aList [value1, value2,
value3, ...]
Block:
aList
creates a new empty list and assigns it to
aList.
continued on next page
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 66
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-1.D §§ Text:
For data abstraction: aList bList
a. D
evelop data abstraction Block:
using lists to store multiple
elements. 3.B aList bList
b. Explain how the use of assigns a copy of the list bList to
data abstraction manages the list aList. For example, if bList
complexity in program contains [20, 40, 60], then aList
code. 3.C will also contain [20, 40, 60] after the
assignment.
AAP-1.D.8
The exam reference sheet describes a list
structure whose index values are 1 through
the number of elements in the list, inclusive.
For all list operations, if a list index is less than
1 or greater than the length of the list, an error
message is produced and the program will
terminate.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 67
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILLS
2.A TOPIC 3.3
Mathematical
Represent algorithmic
processes without using a
programming language.
Expressions
2.B
Implement and apply an
algorithm.
4.B
Determine the result of
code segments.
AAP-2.B AAP-2.B.1
Represent a step-by-step Sequencing is the application of each step of
algorithmic process using an algorithm in the order in which the code
sequential code statements. statements are given.
2.B
AAP-2.B.2
A code statement is a part of program code
that expresses an action to be carried out.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 68
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-2.B AAP-2.B.3
Represent a step-by-step An expression can consist of a value, a variable,
algorithmic process using an operator, or a procedure call that returns a
sequential code statements. value.
2.B
AAP-2.B.4
Expressions are evaluated to produce a single
value.
AAP-2.B.5
The evaluation of expressions follows a
set order of operations defined by the
programming language.
AAP-2.B.6
Sequential statements execute in the order
they appear in the code segment.
AAP-2.B.7
Clarity and readability are important
considerations when expressing an algorithm in
a programming language.
AAP-2.C AAP-2.C.1
Evaluate expressions that use Arithmetic operators are part of most
arithmetic operators. 4.B programming languages and include addition,
subtraction, multiplication, division, and
modulus operators.
AAP-2.C.2
The exam reference sheet provides a MOD b,
which evaluates to the remainder when a is
divided by b. Assume that a is an integer
greater than or equal to 0 and b is an
integer greater than 0. For example, 17 MOD
5 evaluates to 2.
AAP-2.C.3
The exam reference sheet provides the
arithmetic operators +, -, *, /, and MOD.
Text and Block:
§§ a + b
§§ a – b
§§ a * b
§§ a / b
§§ a MOD b
These are used to perform arithmetic on a
and b. For example, 17 / 5 evaluates to
3.4.
AAP-2.C.4
The order of operations used in mathematics
applies when evaluating expressions. The MOD
operator has the same precedence as the *
and / operators.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 69
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILL
4.B TOPIC 3.4
Strings
Determine the result of
code segments.
ENDURING UNDERSTANDING
AAP-2
The way statements are sequenced and combined in a program determines the
computed result. Programs incorporate iteration and selection constructs to
represent repetition and make decisions to handle varied input values.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 70
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
TOPIC 3.5 SKILLS
2.B
Boolean Expressions
Implement and apply an
algorithm.
4.B
Determine the result of
code segments.
ENDURING UNDERSTANDING
AAP-2
The way statements are sequenced and combined in a program determines the
computed result. Programs incorporate iteration and selection constructs to
represent repetition and make decisions to handle varied input values.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 71
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-2.F AAP-2.F.1
For relationships between The exam reference sheet provides the logical
Boolean values: operators NOT, AND, and OR, which
a. Write expressions using evaluate to a Boolean value.
logical operators. 2.B AAP-2.F.2
b. Evaluate expressions that The exam reference sheet provides
use logic operators. 4.B Text:
NOT condition
Block:
NOT condition
which evaluates to true if condition is
false; otherwise it evaluates to false.
AAP-2.F.3
The exam reference sheet provides
Text:
condition1 AND condition2
Block:
condition1 AND condition2
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 72
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
TOPIC 3.6 SKILLS
2.A
Conditionals
Represent algorithmic
processes without using a
programming language.
2.B
Implement and apply an
algorithm.
4.B
Determine the result of
code segments.
AAP-2.H AAP-2.H.1
For selection: Conditional statements, or “if-statements,”
a. W
rite conditional affect the sequential flow of control by
statements. 2.B executing different statements based on the
b. Determine the result of value of a Boolean expression.
conditional statements. 4.B AAP-2.H.2
The exam reference sheet provides
Text:
IF(condition)
{
<block of statements>
}
Block:
IF condition
block of statements
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 73
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-2.H in which the code in block of
For selection: statements is executed if the Boolean
a. Write conditional expression condition evaluates to
statements. 2.B true; no action is taken if condition
evaluates to false.
b. Determine the result of
conditional statements. 4.B AAP-2.H.3
The exam reference sheet provides
Text:
IF(condition)
{
<first block of statements>
}
ELSE
{
<second block of statements>
}
Block:
IF condition
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 74
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
TOPIC 3.7 SKILLS
2.B
Nested Conditionals
Implement and apply an
algorithm.
4.B
Determine the result of
code segments.
ENDURING UNDERSTANDING
AAP-2
The way statements are sequenced and combined in a program determines the
computed result. Programs incorporate iteration and selection constructs to
represent repetition and make decisions to handle varied input values.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 75
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILLS
2.A TOPIC 3.8
Iteration
Represent algorithmic
processes without using a
programming language.
2.B
Implement and apply an
algorithm.
4.B
Determine the result of
code segments.
AAP-2.K AAP-2.K.1
For iteration: Iteration statements change the sequential
a. Write iteration statements. flow of control by repeating a set of statements
2.B zero or more times, until a stopping condition
b. Determine the result or is met.
side effect of iteration AAP-2.K.2
statements. 4.B The exam reference sheet provides
Text:
REPEAT n TIMES
{
<block of statements>
}
Block:
REPEAT n TIMES
block of statements
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 76
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-2.K AAP-2.K.3
For iteration: The exam reference sheet provides
a. W
rite iteration statements.
2.B
Text:
Block:
block of statements
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 77
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILLS
1.D TOPIC 3.9
Developing Algorithms
Evaluate solution options.
2.A
Represent algorithmic
processes without using a
programming language.
2.B
Implement and apply an
algorithm.
ENDURING UNDERSTANDING
AAP-2
The way statements are sequenced and combined in a program determines the
computed result. Programs incorporate iteration and selection constructs to
represent repetition and make decisions to handle varied input values.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 78
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-2.M AAP-2.M.1
For algorithms: Algorithms can be created from an idea, by
a. Create algorithms. 2.A combining existing algorithms, or by modifying
existing algorithms.
b. Combine and modify
existing algorithms. 2.B AAP-2.M.2
Knowledge of existing algorithms can help
in constructing new ones. Some existing
algorithms include:
§§ determining the maximum or minimum value
of two or more numbers
§§ computing the sum or average of two or
more numbers
§§ identifying if an integer is or is not evenly
divisible by another integer
§§ determining a robot’s path through a maze
AAP-2.M.3
Using existing correct algorithms as building
blocks for constructing another algorithm
has benefits such as reducing development
time, reducing testing, and simplifying the
identification of errors.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 79
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILLS
2.B TOPIC 3.10
Lists
Implement and apply an
algorithm.
4.B
Determine the result of
code segments.
AVAILABLE RESOURCE
§§ AP CSP Exam Reference
Required Course Content
Sheet (see Appendix)
ENDURING UNDERSTANDING
AAP-2
The way statements are sequenced and combined in a program determines the
computed result. Programs incorporate iteration and selection constructs to
represent repetition and make decisions to handle varied input values.
x aList i
assigns the value of aList[i] to the
variable x.
§§ assigning a value to an element of a list
Text:
aList[i] x
Block:
aList i x
assigns the value of x to aList[i].
REMOVE aList, i
removes the item at index i in aList
and shifts to the left any values at indices
greater than i. The length of aList is
decreased by 1.
§§ determining the length of a list
Text:
LENGTH(aList)
Block:
LENGTH aList
evaluates to the number of elements
currently in aList.
AAP-2.N.2
List procedures are implemented in
accordance with the syntax rules of the
programming language.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 81
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-2.O AAP-2.O.1
For algorithms involving Traversing a list can be a complete traversal,
elements of a list: where all elements in the list are accessed,
a. Write iteration statements or a partial traversal, where only a portion of
to traverse a list. 2.B elements are accessed.
b. Determine the result of an X XCLUSION STATEMENT (EK AAP-2.O.1):
E
algorithm that includes list Traversing multiple lists at the same time using
traversals. 4.B the same index for both (parallel traversals) is
outside the scope of this course and the AP Exam.
AAP-2.O.2
Iteration statements can be used to traverse
a list.
AAP-2.O.3
The exam reference sheet provides
Text:
FOR EACH item IN aList
{
<block of statements>
}
Block:
block of statements
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 82
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
TOPIC 3.11 SKILLS
1.A
Binary Search
Investigate the situation,
context, or task.
1.D
Evaluate solution options.
AAP-2.P.2
Data must be in sorted order to use the binary
search algorithm.
AAP-2.P.3
Binary search is often more efficient than
sequential/linear search when applied to sorted
data.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 83
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILLS
3.B TOPIC 3.12
Calling Procedures
Use abstraction to manage
complexity in a program.
4.B
Determine the result of
code segments.
AVAILABLE RESOURCE
§§ AP CSP Exam Reference
Required Course Content
Sheet (see Appendix)
ENDURING UNDERSTANDING
AAP-3
Programmers break down problems into smaller and more manageable pieces. By
creating procedures and leveraging parameters, programmers generalize processes
that can be reused. Procedures allow programmers to draw upon existing code that
has already been tested, allowing them to write programs more quickly and with
more confidence.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 84
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-3.A as a way to call
For procedure calls: Text:
a. W
rite statements to call PROCEDURE procName(parameter1,
procedures. 3.B parameter2, ...)
b. D
etermine the result or {
effect of a procedure call. <block of statements>
4.B
}
Block:
block of statements
DISPLAY expression
RETURN expression
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 85
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-3.A Text:
For procedure calls: PROCEDURE procName(parameter1,
a. Write statements to call parameter2, ...)
procedures. 3.B {
b. Determine the result or <block of statements>
effect of a procedure call. RETURN(expression)
4.B
}
Block:
block of statements
RETURN expression
AAP-3.A.9
The exam reference sheet provides procedure
Text:
INPUT()
Block:
INPUT
which accepts a value from the user and
returns the input value.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 86
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
TOPIC 3.13 SKILLS
3.B
Developing Procedures
Use abstraction to manage
complexity in a program.
3.C
Explain how abstraction
manages complexity.
ENDURING UNDERSTANDING
AAP-3
Programmers break down problems into smaller and more manageable pieces. By
creating procedures and leveraging parameters, programmers generalize processes
that can be reused. Procedures allow programmers to draw upon existing code that
has already been tested, allowing them to write programs more quickly and with
more confidence.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 87
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-3.B AAP-3.B.6
Explain how the use of Using procedural abstraction helps improve
procedural abstraction code readability.
manages complexity in a
AAP-3.B.7
program. 3.C
Using procedural abstraction in a program
allows programmers to change the internals of
the procedure (to make it faster, more efficient,
use less storage, etc.) without needing to
notify users of the change as long as what the
procedure does is preserved.
AAP-3.C AAP-3.C.1
Develop procedural The exam reference sheet provides
abstractions to manage Text:
complexity in a program by
writing procedures. 3.B
PROCEDURE procName(parameter1,
parameter2, ...)
{
<block of statements>
}
Block:
block of statements
block of statements
RETURN expression
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 88
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-3.C which is used to define a procedure that
Develop procedural takes zero or more arguments. The procedure
abstractions to manage contains block of statements and
complexity in a program by returns the value of expression. The
writing procedures. 3.B RETURN statement may appear at any point
inside the procedure and causes an immediate
return from the procedure back to the calling
statement.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 89
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILL
2.B TOPIC 3.14
Libraries
Implement and apply an
algorithm.
ENDURING UNDERSTANDING
AAP-3
Programmers break down problems into smaller and more manageable pieces. By
creating procedures and leveraging parameters, programmers generalize processes
that can be reused. Procedures allow programmers to draw upon existing code that
has already been tested, allowing them to write programs more quickly and with
more confidence.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 90
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
TOPIC 3.15 SKILLS
2.B
Random Values
Implement and apply an
algorithm.
4.B
Determine the result of
code segments.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 91
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILLS
1.A TOPIC 3.16
Simulations
Investigate the situation,
context, or task.
1.D
Evaluate solution options.
ENDURING UNDERSTANDING
AAP-3
Programmers break down problems into smaller and more manageable pieces. By
creating procedures and leveraging parameters, programmers generalize processes
that can be reused. Procedures allow programmers to draw upon existing code that
has already been tested, allowing them to write programs more quickly and with
more confidence.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 92
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-3.F AAP-3.F.7
For simulations: Simulations facilitate the formulation and
a. E
xplain how computers refinement of hypotheses related to the objects
can be used to represent or phenomena under consideration.
real-world phenomena or AAP-3.F.8
outcomes. 1.A Random number generators can be used to
b. Compare simulations with simulate the variability that exists in the real
real-world contexts. 1.D world.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 93
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILL
1.D TOPIC 3.17
Algorithmic Efficiency
Evaluate solution options.
ENDURING UNDERSTANDING
AAP-4
There exist problems that computers cannot solve, and even when a computer can
solve a problem, it may not be able to do so in a reasonable amount of time.
AAP-4.A.4
An algorithm’s efficiency is determined through
formal or mathematical reasoning.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 94
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
AAP-4.A AAP-4.A.5
For determining the An algorithm’s efficiency can be informally
efficiency of an algorithm: measured by determining the number of times
a. E
xplain the difference a statement or group of statements executes.
between algorithms that AAP-4.A.6
run in reasonable time and Different correct algorithms for the same
those that do not. 1.D problem can have different efficiencies.
b. Identify situations where a
AAP-4.A.7
heuristic solution may be
more appropriate. 1.D Algorithms with a polynomial efficiency or
slower (constant, linear, square, cube, etc.)
are said to run in a reasonable amount of
time. Algorithms with exponential or factorial
efficiencies are examples of algorithms that run
in an unreasonable amount of time.
AAP-4.A.8
Some problems cannot be solved in a
reasonable amount of time because there is no
efficient algorithm for solving them. In these
cases, approximate solutions are sought.
AAP-4.A.9
A heuristic is an approach to a problem that
produces a solution that is not guaranteed to
be optimal but may be used when techniques
that are guaranteed to always find an optimal
solution are impractical.
X XCLUSION STATEMENT (AAP-4.A.9):
E
Specific heuristic solutions are outside the scope
of this course and the AP Exam.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 95
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Algorithms and Programming
3
SKILL
1.A TOPIC 3.18
Undecidable Problems
Investigate the situation,
context, or task.
ENDURING UNDERSTANDING
AAP-4
There exist problems that computers cannot solve, and even when a computer can
solve a problem, it may not be able to do so in a reasonable amount of time.
AAP-4.B.3
An undecidable problem may have some
instances that have an algorithmic solution, but
there is no algorithmic solution that could solve
all instances of the problem.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 96
Return to Table of Contents
© 2023 College Board
AP COMPUTER SCIENCE PRINCIPLES
BIG IDEA 4
Computer
Systems and
Networks
11–15%
AP EXAM WEIGHTING
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 97
Return to Table of Contents
© 2023 College Board
Remember to go to AP Classroom
to assign students the online Topic
Questions for this big idea.
Whether assigned as homework
or completed in class, the Topic
Questions can be used to spot-
check student understanding and
help identify content and skills to
emphasize in lessons.
Topic Questions
Multiple-choice: ~10 questions
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 98
Return to Table of Contents
© 2023 College Board
BIG
IDEA
11–15% AP EXAM WEIGHTING
4
Computer Systems
and Networks
Developing Understanding
ESSENTIAL The Internet is a network that most students use on a regular basis to look up information,
QUESTIONS to socialize with friends, and in many cases to complete their school work. In this big idea,
students will learn how computer systems and networks, primarily the Internet, work.
CSN-1 Students will learn about how information is transmitted on the Internet and about the
§§ Why are long text safeguards that have been put in place to keep this system from breaking down. In addition,
messages sometime students will learn the effect that dividing tasks across multiple computing devices can have
delivered out of order? on the speed at which processes can occur. This big idea is often taught in conjunction with
§§ When an Internet Big Idea 5: Impact of Computing.
service outage occurs
in a different part of your
Building Computational in a system can help students make this
town or city, how are you abstract idea more concrete. As student
still able to access the Thinking Practices understanding increases, propose problems
Internet? 1.D 5.A for the students to solve, such as broken
Some programs are so large or complex connections or the need to expand the
CSN-2
that they end up taking a long time to run, system to include newly added routers
§§ What are the benefits
making them impractical to use. In order or devices.
of dividing tasks among
to minimize this runtime, the individual
group members?
processes that comprise a program can be
Preparing for the AP Exam
§§ Is there a point where run on multiple processors simultaneously. On the end-of-course exam, students
adding another group Programmers need to evaluate the will be presented with scenarios for
member would not make options of running these processes how information could be passed via
completing the task sequentially or in parallel across multiple the Internet along with illustrations of
faster? Why? processors to optimize the solution time. interconnected computers in given
When introducing students to distributed networks. Students will be asked to select
processes, use real-world examples, such which choice best explains how information
as dividing up household chores or passing is passed through these networks from
back classroom papers. one computing device to another or how
designing systems to include redundancy
To create more stable access to the
helps make them fault-tolerant. To aid in
Internet, additional connections and routers
understanding these diagrams, students
can be added. Redundant routing options
should be encouraged to use the Marking
help ensure that the Internet is more
the Text strategy (see page 133). They can
reliable and stable. To determine where
mark the diagrams with the information
additional connections and routers need
provided to ensure they have an accurate
to be added to the systems, evaluation
visual and can then match that visual to the
of existing infrastructure is beneficial.
explanations provided.
Using kinesthetic learning techniques
to simulate the connections and routers
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 99
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Computer Systems and Networks
4
BIG IDEA AT A GLANCE
Objective
Learning
4.1 T
he Internet Explain how computing systems work.
CSN-1.C, CSN-1.D
5.A
4.2 F
ault Tolerance Evaluate solution options.
CSN-1.E
1.D
4.3 P
arallel and 1.D
Distributed
Computing
Go to AP Classroom to assign Topic Questions as you teach the topics in Big Idea 4.
Review the results in class to identify and address any student misunderstandings.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 100
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Computer Systems and Networks
4
SAMPLE INSTRUCTIONAL ACTIVITIES
The sample activities on this page are optional and are offered to provide possible ways to
incorporate instructional approaches into the classroom. They were developed in partnership
with teachers from the AP community to share ways that they approach teaching some of the
topics and skills in this big idea. Please refer to the Instructional Strategies section beginning
on p. 132 for more examples of activities and strategies.
1 4.1 Journaling
Ask students to read about the Internet and packet switching in Blown to Bits. Pose
several prompts related to the Internet, such as the following, and have students add
their answers to their journals:
§§ How is the Internet like the US Post Office?
§§ Explain the difference between circuit switching and packet switching.
Ask students to use what they learned from reading to make a drawing showing how
they think an email travels from one place to another.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 101
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Computer Systems and Networks
4
SKILL
5.A TOPIC 4.1
The Internet
Explain how computing
systems work.
AVAILABLE RESOURCES
§§ Classroom Resources >
Required Course Content
The Computer and
the Internet: TCP/IP:
How Messages Get
Delivered Across the ENDURING UNDERSTANDING
Internet
CSN-1
§§ External Resources >
Computer systems and networks facilitate the transfer of data.
§§ Routing and
Deadlock from CS
Unplugged
§§ Network Protocols LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
from CS Unplugged
CSN-1.A CSN-1.A.1
§§ Blown to Bits:
Explain how computing A computing device is a physical artifact that
Appendix
devices work together in a can run a program. Some examples include
network. 5.A computers, tablets, servers, routers, and smart
sensors.
CSN-1.A.2
A computing system is a group of computing
devices and programs working together for a
common purpose.
CSN-1.A.3
A computer network is a group of
interconnected computing devices capable of
sending or receiving data.
CSN-1.A.4
A computer network is a type of computing
system.
CSN-1.A.5
A path between two computing devices on a
computer network (a sender and a receiver) is
a sequence of directly connected computing
devices that begins at the sender and ends at
the receiver.
CSN-1.A.6
Routing is the process of finding a path from
sender to receiver.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 102
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Computer Systems and Networks
4
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
CSN-1.A CSN-1.A.7
Explain how computing The bandwidth of a computer network is the
devices work together in a maximum amount of data that can be sent in a
network. 5.A fixed amount of time.
CSN-1.A.8
Bandwidth is usually measured in bits per
second.
CSN-1.B CSN-1.B.1
Explain how the Internet The Internet is a computer network
works. 5.A consisting of interconnected networks that
use standardized, open (nonproprietary)
communication protocols.
CSN-1.B.2
Access to the Internet depends on the ability
to connect a computing device to an Internet-
connected device.
CSN-1.B.3
A protocol is an agreed-upon set of rules that
specify the behavior of a system.
CSN-1.B.4
The protocols used in the Internet are open,
which allows users to easily connect additional
computing devices to the Internet.
CSN-1.B.5
Routing on the Internet is usually dynamic; it is
not specified in advance.
CSN-1.B.6
The scalability of a system is the capacity for
the system to change in size and scale to meet
new demands.
CSN-1.B.7
The Internet was designed to be scalable.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 103
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Computer Systems and Networks
4
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
CSN-1.C CSN-1.C.1
Explain how data are sent Information is passed through the Internet as
through the Internet via a data stream. Data streams contain chunks of
packets. 5.A data, which are encapsulated in packets.
CSN-1.C.2
Packets contain a chunk of data and metadata
used for routing the packet between the origin
and the destination on the Internet, as well as
for data reassembly.
CSN-1.C.3
Packets may arrive at the destination in order,
out of order, or not at all.
CSN-1.C.4
IP, TCP, and UDP are common protocols used
on the Internet.
CSN-1.D CSN-1.D.1
Describe the differences The World Wide Web is a system of linked
between the Internet and the pages, programs, and files.
World Wide Web. 5.A
CSN-1.D.2
HTTP is a protocol used by the World Wide
Web.
CSN-1.D.3
The World Wide Web uses the Internet.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 104
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Computer Systems and Networks
4
TOPIC 4.2 SKILLS
1.D
Fault Tolerance
Evaluate solution options.
5.A
Explain how computing
systems work.
ENDURING UNDERSTANDING
CSN-1
Computer systems and networks facilitate the transfer of data.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 105
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Computer Systems and Networks
4
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
CSN-1.E CSN-1.E.7
For fault-tolerant systems, The redundancy of routing options between
like the Internet: two points increases the reliability of the
a. Describe the benefits of Internet and helps it scale to more devices and
fault tolerance. 1.D more people.
b. Explain how a given system
is fault-tolerant. 5.A
c. Identify vulnerabilities to
failure in a system. 1.D
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 106
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Computer Systems and Networks
4
TOPIC 4.3 SKILL
1.D
Computing
ENDURING UNDERSTANDING
CSN-2
Parallel and distributed computing leverage multiple computers to more quickly
solve complex problems or process large data sets.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 107
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Computer Systems and Networks
4
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
CSN-2.A CSN-2.A.7
For sequential, parallel, and The “speedup” of a parallel solution is
distributed computing: measured in the time it took to complete the
a. Compare problem task sequentially divided by the time it took to
solutions. 1.D complete the task when done in parallel.
b. Determine the efficiency of
solutions. 1.D
CSN-2.B CSN-2.B.1
Describe benefits and Parallel computing consists of a parallel portion
challenges of parallel and and a sequential portion.
distributed computing. 1.D
CSN-2.B.2
Solutions that use parallel computing can
scale more effectively than solutions that use
sequential computing.
CSN-2.B.3
Distributed computing allows problems to be
solved that could not be solved on a single
computer because of either the processing
time or storage needs involved.
CSN-2.B.4
Distributed computing allows much larger
problems to be solved quicker than they could
be solved using a single computer.
CSN-2.B.5
When increasing the use of parallel computing
in a solution, the efficiency of the solution
is still limited by the sequential portion. This
means that at some point, adding parallel
portions will no longer meaningfully increase
efficiency.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 108
Return to Table of Contents
© 2023 College Board
AP COMPUTER SCIENCE PRINCIPLES
BIG IDEA 5
Impact of
Computing
21–26%
AP EXAM WEIGHTING
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 109
Return to Table of Contents
© 2023 College Board
Remember to go to AP Classroom
to assign students the online Topic
Questions for this big idea.
Whether assigned as homework
or completed in class, the Topic
Questions can be used to spot-
check student understanding and
help identify content and skills to
emphasize in lessons.
Topic Questions
Multiple-choice: ~20 questions
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 110
Return to Table of Contents
© 2023 College Board
BIG
IDEA
21–26% AP EXAM WEIGHTING
5
Impact of Computing
Developing Understanding
ESSENTIAL The creation of computer programs can have extensive impacts, some unintended, on
QUESTIONS societies, economies, and cultures. In this big idea, students explore these effects, the legal
and ethical concerns that come with programs, and the responsibilities of programmers. When
IOC-1 using computing innovations and transmitting information via the Internet, students should
§§ What app or computer be aware of the risk of sharing personal identifiable information about themselves, such as
software do you use their age or address, and actively take steps to keep this information safe. This big idea can
most often and would be integrated throughout the course and works well with the Creative Development, Data, and
have a hard time going Computing Systems and Networks big ideas.
without? How does
this software solve Building Computational of personal data might have on people who
a problem for you or are different from them, or on society as a
benefit you?
Thinking Practices whole. As students investigate computing
1.C 5.C 5.D 5.E innovations, provide opportunities for
§§ Are innovators
Computing innovations and programs students to learn from others’ perspectives
responsible for the
are often developed in teams. A good, by allowing time for viewpoints and
harmful effects of their
collaborative team starts with a group potential impacts to be shared during a
computing innovations,
that is made up of people from different group discussion, like a debate.
even if those effects
were unintentional? Why backgrounds, genders, ages, and races so
or why not? that the perspectives of all potential users
are being represented. By creating diverse
Preparing for the AP Exam
IOC-2 groups where each person’s opinion is Students will be asked to complete three
§§ What data are generated considered, we help avoid unintentional investigations into computing innovations
by smart phones, and bias and potential negative effects, such as during the school year. Through these
what are they being contributing to the digital divide, that can investigations, students will look at the data
used for? creep into innovations. the computing innovation uses to complete
its task; any data privacy, security, or storage
Investigating the impact of existing
concerns that might be associated with the
computing innovations can help students
innovation; and beneficial and harmful effects
avoid unintentional negative effects of their
the computing innovation might have on
own innovations. Consumers should be
society, the economy, or culture.
aware of the impact that a new computing
innovation might have before beginning On the end-of-course exam, students will be
to use it, as well as what data are being presented with a passage about a computing
gathered and how the product owner innovation and will be asked a series of
intends to use those data. While students questions about data and the effects of the
may find it relatively easy to describe computing innovation. While the computing
how the gathering of data would impact innovations that need to be investigated are
them, it is sometimes more difficult for not specified in the curricular requirement,
students to understand the impacts that students will benefit from investigating a large
computing innovations and the gathering range of computing innovations.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 111
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
BIG IDEA AT A GLANCE
Objective
Learning
5.1 B
eneficial and 5.C Describe the impact of a computing innovation.
IOC-1.A, IOC-1.B
Harmful Effects
5.2 D
igital Divide 5.C Describe the impact of a computing innovation.
IOC-1.D IOC-1.C
5.3 C
omputing Bias 5.E Evaluate the use of computing based on legal and ethical factors.
IOC-1.E
5.4 C
rowdsourcing 1.C Explain how collaboration affects the development of a solution.
IOC-1.F
5.5 L
egal and Ethical 5.E Evaluate the use of computing based on legal and ethical factors.
Concerns
IOC-2.A, IOC-2.B,
5.6 S
afe Computing 5.D Describe the impact of gathering data.
Go to AP Classroom to assign Topic Questions as you teach the topics in Big Idea 5.
Review the results in class to identify and address any student misunderstandings.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 112
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
SAMPLE INSTRUCTIONAL ACTIVITIES
The sample activities on this page are optional and are offered to provide possible ways to
incorporate instructional approaches into the classroom. They were developed in partnership
with teachers from the AP community to share ways that they approach teaching some of the
topics and skills in this big idea. Please refer to the Instructional Strategies section beginning
on p. 132 for more examples of activities and strategies.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 113
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
SKILL
5.C TOPIC 5.1
Beneficial and
Describe the impact of a
computing innovation.
Harmful Effects
AVAILABLE RESOURCE
§§ External Resource >
Required Course Content
ACM Tech News
ENDURING UNDERSTANDING
IOC-1
While computing innovations are typically designed to achieve a specific purpose,
they may have unintended consequences.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 114
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
IOC-1.B IOC-1.B.1
Explain how a computing Computing innovations can be used in ways
innovation can have an impact that their creators had not originally intended:
beyond its intended purpose. §§ The World Wide Web was originally intended
5.C
only for rapid and easy exchange of
information within the scientific community.
§§ Targeted advertising is used to help
businesses, but it can be misused at both
individual and aggregate levels.
§§ Machine learning and data mining have
enabled innovation in medicine, business,
and science, but information discovered in
this way has also been used to discriminate
against groups of individuals.
IOC-1.B.2
Some of the ways computing innovations can
be used may have a harmful impact on society,
the economy, or culture.
IOC-1.B.3
Responsible programmers try to consider the
unintended ways their computing innovations
can be used and the potential beneficial and
harmful effects of these new uses.
IOC-1.B.4
It is not possible for a programmer to consider
all the ways a computing innovation can be
used.
IOC-1.B.5
Computing innovations have often had
unintended beneficial effects by leading to
advances in other fields.
IOC-1.B.6
Rapid sharing of a program or running a
program with a large number of users can result
in significant impacts beyond the intended
purpose or control of the programmer.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 115
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
SKILL
5.C TOPIC 5.2
Digital Divide
Describe the impact of a
computing innovation.
AVAILABLE RESOURCE
§§ External Resource >
Required Course Content
ACM Tech News
ENDURING UNDERSTANDING
IOC-1
While computing innovations are typically designed to achieve a specific purpose,
they may have unintended consequences.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 116
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
TOPIC 5.3 SKILL
5.E
Computing Bias
Evaluate the use of
computing based on legal
and ethical factors.
ENDURING UNDERSTANDING
IOC-1
While computing innovations are typically designed to achieve a specific purpose,
they may have unintended consequences.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 117
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
SKILL
1.C
TOPIC 5.4
Crowdsourcing
Explain how collaboration
affects the development of
a solution.
ENDURING UNDERSTANDING
IOC-1
While computing innovations are typically designed to achieve a specific purpose,
they may have unintended consequences.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 118
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
TOPIC 5.5 SKILL
5.E
Concerns
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 119
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
IOC-1.F IOC-1.F.5
Explain how the use of Some examples of legal ways to use materials
computing can raise legal created by someone else include:
and ethical concerns. 5.E §§ Creative Commons—a public copyright
license that enables the free distribution
of an otherwise copyrighted work. This is
used when the content creator wants to give
others the right to share, use, and build upon
the work they have created.
§§ open source—programs that are made
freely available and may be redistributed and
modified
§§ open access—online research output free of
any and all restrictions on access and free of
many restrictions on use, such as copyright
or license restrictions
IOC-1.F.6
The use of material created by someone other
than you should always be cited.
IOC-1.F.7
Creative Commons, open source, and open
access have enabled broad access to digital
information.
IOC-1.F.8
As with any technology or medium, using
computing to harm individuals or groups of
people raises legal and ethical concerns.
IOC-1.F.9
Computing can play a role in social and political
issues, which in turn often raises legal and
ethical concerns.
IOC-1.F.10
The digital divide raises ethical concerns
around computing.
IOC-1.F.11
Computing innovations can raise legal and
ethical concerns. Some examples of these
include:
§§ the development of software that allows
access to digital media downloads and
streaming
§§ the development of algorithms that include
bias
§§ the existence of computing devices that
collect and analyze data by continuously
monitoring activities
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 120
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
TOPIC 5.6 SKILLS
5.D
Safe Computing
Describe the impact of
gathering data.
5.E
Evaluate the use of
computing based on legal
and ethical factors.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 121
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
IOC-2.A IOC-2.A.6
Describe the risks to privacy Search engines can use search history to
from collecting and storing suggest websites or for targeted marketing.
personal data on a computer
IOC-2.A.7
system. 5.D
Disparate personal data, such as geolocation,
cookies, and browsing history, can be
aggregated to create knowledge about an
individual.
IOC-2.A.8
PII and other information placed online can be
used to enhance a user’s online experiences.
IOC-2.A.9
PII stored online can be used to simplify making
online purchases.
IOC-2.A.10
Commercial and governmental curation of
information may be exploited if privacy and
other protections are ignored.
IOC-2.A.11
Information placed online can be used in ways
that were not intended and that may have a
harmful impact. For example, an email message
may be forwarded, tweets can be retweeted,
and social media posts can be viewed by
potential employers.
IOC-2.A.12
PII can be used to stalk or steal the identity
of a person or to aid in the planning of other
criminal acts.
IOC-2.A.13
Once information is placed online, it is difficult
to delete.
IOC-2.A.14
Programs can collect your location and record
where you have been, how you got there, and
how long you were at a given location.
IOC-2.A.15
Information posted to social media services
can be used by others. Combining information
posted on social media and other sources
can be used to deduce private information
about you.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 122
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
IOC-2.B IOC-2.B.1
Explain how computing Authentication measures protect devices
resources can be protected and information from unauthorized access.
and can be misused. 5.E Examples of authentication measures
include strong passwords and multifactor
authentication.
IOC-2.B.2
A strong password is something that is easy for
a user to remember but would be difficult for
someone else to guess based on knowledge of
that user.
IOC-2.B.3
Multifactor authentication is a method of
computer access control in which a user is only
granted access after successfully presenting
several separate pieces of evidence to an
authentication mechanism, typically in at least
two of the following categories: knowledge
(something they know), possession (something
they have), and inherence (something they are).
IOC-2.B.4
Multifactor authentication requires at least two
steps to unlock protected information; each
step adds a new layer of security that must be
broken to gain unauthorized access.
IOC-2.B.5
Encryption is the process of encoding data to
prevent unauthorized access. Decryption is the
process of decoding the data. Two common
encryption approaches are:
§§ Symmetric key encryption involves one key
for both encryption and decryption.
§§ Public key encryption pairs a public key for
encryption and a private key for decryption.
The sender does not need the receiver’s
private key to encrypt a message, but the
receiver’s private key is required to decrypt
the message.
X EXCLUSION STATEMENT (EK IOC-2.B.5):
IOC-2.B.6
Certificate authorities issue digital certificates
that validate the ownership of encryption keys
used in secure communications and are based
on a trust model.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 123
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
IOC-2.B IOC-2.B.7
Explain how computing Computer virus and malware scanning
resources can be protected software can help protect a computing system
and can be misused. 5.E against infection.
IOC-2.B.8
A computer virus is a malicious program that
can copy itself and gain access to a computer
in an unauthorized way. Computer viruses often
attach themselves to legitimate programs and
start running independently on a computer.
IOC-2.B.9
Malware is software intended to damage a
computing system or to take partial control
over its operation.
IOC-2.B.10
All real-world systems have errors or design
flaws that can be exploited to compromise
them. Regular software updates help fix errors
that could compromise a computing system.
IOC-2.B.11
Users can control the permissions programs
have for collecting user information. Users
should review the permission settings of
programs to protect their privacy.
IOC-2.C IOC-2.C.1
Explain how unauthorized Phishing is a technique that attempts to trick
access to computing a user into providing personal information.
resources is gained. 5.E That personal information can then be used
to access sensitive online resources, such as
bank accounts and emails.
IOC-2.C.2
Keylogging is the use of a program to record
every keystroke made by a computer user in
order to gain fraudulent access to passwords
and other confidential information.
IOC-2.C.3
Data sent over public networks can be
intercepted, analyzed, and modified. One way
that this can happen is through a rogue access
point.
IOC-2.C.4
A rogue access point is a wireless access
point that gives unauthorized access to secure
networks.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 124
Return to Table of Contents
© 2023 College Board
BIG
IDEA
Impact of Computing
5
LEARNING OBJECTIVE ESSENTIAL KNOWLEDGE
IOC-2.C IOC-2.C.5
Explain how unauthorized A malicious link can be disguised on a web
access to computing page or in an email message.
resources is gained. 5.E
IOC-2.C.6
Unsolicited emails, attachments, links, and
forms in emails can be used to compromise
the security of a computing system. These
can come from unknown senders or from
known senders whose security has been
compromised.
IOC-2.C.7
Untrustworthy (often free) downloads from
freeware or shareware sites can contain
malware.
AP Computer Science Principles Course and Exam Description Course Framework V.1 | 125
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
AP COMPUTER SCIENCE PRINCIPLES
Instructional
Approaches
Selecting and
Using Course Materials
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 129
Return to Table of Contents
© 2023 College Board
The following is a noncomprehensive list of programming languages or development environments that can be
considered for use in this course:
Language/Product Description
Alice This block-based programming language includes a 3-D modeling environment
that allows students to create and animate 3-D worlds. This environment lends
itself well to creating stories and games.
App Inventor This open-source web application is block-based and allows students to create
their own applications on mobile devices.
App Lab This is a programming environment for creating web applications with JavaScript.
It allows students to develop programs and toggle back and forth between block-
based and text-based programming modes.
EarSketch This text-based browser application allows students to create their own music
using either JavaScript or Python.
Greenfoot This text-based Java IDE is designed for use in education to create 2-D graphic
applications, such as simulations and interactive games.
Java This text-based programming language allows students to create and solve
problems that vary widely in difficulty. There are several IDEs that can be used to
write programs in Java.
LEGO Mindstorms EV3 This product integrates block-based programming with LEGO bricks and sensors
to create and program robots. The instructions are assembled by linking together
function blocks.
Microsoft MakeCode This development environment provides both block and text editors for students
at different levels. Microsoft MakeCode is a free, open-source, web-based
environment with open educational resources for teachers.
Processing This text-based programming language was initially created to serve as a software
sketchbook, and it can be used to teach programming in a visual context.
Python This text-based programming language has the benefit of readability, which might
be helpful to new programmers.
Scratch This block-based programming language allows students to build scripts to run
animations. This product can be downloaded and installed on a computer or run in
a browser.
Snap! Snap! combines the power of text-based languages such as Python or JavaScript
with the visual simplicity of block-based Scratch. It can grow with your students,
because new blocks can be written in Snap! itself or in JavaScript.
Swift This powerful and intuitive programming language can be used for macOS, iOS,
watchOS, tvOS and beyond. Students gain practical experience with the tools and
techniques to build basic iOS apps with Swift and Xcode, an IDE at the center of
the Apple development experience.
NOTE: While teachers may choose to do some programming instruction using HTML, it should be noted that HTML is not an
acceptable programming language to use when completing the Create performance task.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 130
Return to Table of Contents
© 2023 College Board
This course provides students with an AP Computer provide a common programming language to be used
Science Principles Exam Reference Sheet, as seen in when assessing students’ skills and knowledge of
the Appendix, to use when taking the AP Exam. The the programming constructs described in the course
Exam Reference Sheet is not meant to be a substitute framework. It is meant to establish a common way to
for choosing a programming language that is communicate programming concepts for the purpose
recognized by the field of computer science or being of the exam. Teachers are encouraged to integrate
used in postsecondary institutions. However, because the use of the Exam Reference Sheet throughout the
there is no designated programming language for the school year.
course, the Exam Reference Sheet was developed to
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 131
Return to Table of Contents
© 2023 College Board
Instructional Strategies
The AP Computer Science Principles course engaging them in learning activities that apply their
framework details the concepts and skills students understanding of course concepts. The instructional
must master to be successful on the AP Exam. To strategies have been categorized based on whether
address those concepts and skills effectively, it helps they are used to teach programming and problem-
to incorporate a variety of instructional approaches solving, are suitable for cooperative learning, or are
and best practices into daily lessons and activities. helpful for students to make connections between
The following table presents strategies that can material being presented and prior knowledge of
help students develop mastery of the skills by topics covered.
Create a plan Students analyze the tasks Assists in breaking Have students brainstorm
in a problem and create programming tasks several problems in
a process for completing into smaller parts and their own lives or in their
the tasks by finding the identifying the steps communities. Then, have
information needed, needed to complete the them select one of the
interpreting data, choosing entire task. One example of problems and conduct
how to solve a problem, this is the different phases research to gather more
communicating results, of an iterative development of an understanding of
and verifying accuracy. process and how they work that problem and identify
together in the completion at least five facts that
of a program. would help find a solution
to the problem. Next, have
students brainstorm at
least three possible app
ideas that might help solve
the identified problem and
describe how the apps
might function. Finally, have
students select one of the
apps and describe how
would they determine if it
was successful or not.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 132
Return to Table of Contents
© 2023 College Board
Programming and Problem-Solving (cont’d)
Identify a subtask Students break a problem Helps organize the pieces When students use
into smaller pieces whose of a complex problem and abstraction to manage
outcomes lead to a reach a complete solution. complexity of their
solution. program during program
development, have them
look at the subtasks that
might exist in a solution
and create procedures with
parameters to generalize
that functionality to work
with a greater set of values.
Look for a pattern Students observe trends Helps identify patterns Provide students with
by looking at expected that can be used to design multiple representations of
output or results based on program code, generalize the same set of data, such
input and specifications. program behavior, identify as bar graphs, pie charts,
errors in existing program and word clouds. Have
code, or draw conclusions students analyze the data
from data. to detect patterns. They
can then use the patterns
they detected to draw
conclusions.
Marking the text Students highlight, Helps students identify When students are
underline, and/or annotate important information reading a passage about
text to focus on key in the text of a program a computing innovation,
information and help specification or resource have them focus on
understand the text or about a computing marking the text by circling
solve the problem. innovation and make notes any information that is
about the interpretation connected to data and
of tasks required to underlining any information
implement the program relevant to the impact of
specification or how the the innovation.
computing innovation
works.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 133
Return to Table of Contents
© 2023 College Board
Programming and Problem-Solving (cont’d)
Pair programming Two programmers work Reinforces the need Provide students with
together as a pair. One for students to explain program code that
(the driver) writes program their process in a way uses iteration to draw a
code, while the other that another student square. Then, have them
(the observer, pointer, or can understand. It also work in pairs to modify
navigator) reviews each provides built-in support the program code to
line of program code as it is as students practice draw other shapes, like
typed in. collaborating while learning a triangle, pentagon,
new material. hexagon, octagon, or circle.
Have students switch who
drives the program after
each shape. Ask them to
identify patterns between
these shapes and the
commands used.
Simplify the Students use simpler Provides insight into a more When developing an
problem numbers or statements to abstract problem by making algorithm to analyze data,
solve a problem. it concrete and allowing consider a small data
students to more easily set as a first example to
recognize a general process confirm that your process
to obtain a solution. will yield the proper results.
Think aloud Students talk through Engages students with When asking students to
a difficult problem by a problem in a new way describe the purpose of
describing what the text or that puts them in the role a code segment, provide
code means. of thinking of potential them with a rubber duck
solutions aloud. This trains or other inanimate object
students to consider to which they can describe
solutions for themselves the code segment aloud.
prior to seeking assistance
from a teacher or peer.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 134
Return to Table of Contents
© 2023 College Board
Programming and Problem-Solving (cont’d)
Work backward Students trace a possible Gives students who might When working with large
answer back through the not know how to begin to data sets, have students
solution process to the solve a problem a different start by thinking about
starting point. way to think about it possible conclusions that
by starting at the ideal can be drawn from the
solution and breaking available data. From this
it down. list, ask them to identify
a few questions that they
will want to answer with
the data. Finally, have them
determine the process
they would use to analyze
their data to come to the
proposed conclusion to
test their hypothesis.
Cooperative Learning
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 135
Return to Table of Contents
© 2023 College Board
Cooperative Learning (cont’d)
Sharing and Students communicate Gives students the Have students write
responding with another person or a opportunity to discuss an algorithm with the
small group of peers who their work with peers, stipulation that it cannot
respond to a proposed make suggestions for include pictures or code.
problem or solution. improvements to the work Next, have them share their
of others, and/or receive work with a partner and
appropriate and relevant receive feedback on which
feedback on their own parts were unclear or
work. needed improvement.
Think-pair-share Students think through a Enables the development Provide students with
problem alone, pair with a of initial ideas that are then examples of real-life
partner to share ideas, tested with a partner in abstractions, such as
and then share results with preparation for revising how a car key hides
the class. and then sharing the ideas the complexity of what
with a larger group. occurs under the hood.
Have students consider
what abstractions they
encounter in everyday
life. Then, working in pairs,
ask students to share
examples of everyday
abstractions with their
partners and compile a
larger list before sharing
with the whole class.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 136
Return to Table of Contents
© 2023 College Board
Cooperative Learning (cont’d)
Unplugged Students use engaging Provides students with a When teaching searching,
activities games and puzzles that different way of engaging choose 15 students to
use manipulatives and with the material, away line up at the front of the
kinesthetic learning from the computer, to classroom. Provide each
activities. further understanding. student with a card with a
number on it (in random
order) that they keep hidden.
Select a 16th student to
be the guesser. Give the
guesser a container with
five pieces of candy in it.
Their job is to find a number
provided by the teacher
among the group of 15
students. They can use their
candy as currency to “pay”
one of the students at the
front of the classroom to
look at their card. If they find
the correct number before
using all their candies, they
get to keep the rest.
Using Students use objects to Provides a tactile or When illustrating public key
manipulatives examine relationships in visual representation of encryption, provide each
the information given. data or processes that small group of students
support comprehension of with a box that requires the
information in a problem or use of a combination code
concept. to unlock. Tell students
that you used a public key
to lock a message in the
box for them to read. Each
student in the group should
be provided with their own
private key code. Only one
of the students should
have the correct code to
unlock the box. Debrief
with students about the
difference between public
key and private key.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 137
Return to Table of Contents
© 2023 College Board
Making Connections
Activating prior The teacher provides Prepares students Have students practice
knowledge students with an to establish content using mathematical
opportunity to recall what connections. operations by writing
they already know about pseudocode to carry out
a concept and make common computational
connections to current operations. For example,
studies. they can determine the
area of a triangle when
given values for the
base and the height,
or determine the flight
time between two cities
when given the distance
between them and the
average speed of the
airplane.
Diagramming Students use a visual Builds comprehension and When students are
representation to organize facilitates discussion by planning their code,
information. representing information in have them diagram or
visual form. create flowcharts of
their algorithms on chart
paper. Students can work
collaboratively and can use
the diagram as a space to
make mistakes and edit.
Journaling Students keep a journal Provides students with an While completing a long
or log of their program opportunity to reflect on programming project, have
progress, including any their progress and to keep students write a journal
difficulties or opportunities track of what they have entry each day about what
that might arise, as well as accomplished and what they have accomplished,
potential next steps. work is remaining. what successes they’ve
had, what difficulties they
encountered, and any
ideas for changes that
came up during that class
that they would like to work
on in the next class. This
activity is especially helpful
when completing the
Create performance task.
Paraphrase Students restate, in their Assists with Have students read a set of
own words, essential comprehension, recall of instructions for a program.
information expressed in information, and problem- Allow a volunteer student
a text. solving. to explain the program
requirements to the other
students, ensuring that the
student does not leave out
any key points.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 138
Return to Table of Contents
© 2023 College Board
Making Connections (cont’d)
Quickwrite Students write for a short, Generates multiple ideas in Have students investigate
specific amount of time a quick fashion. a computing innovation
about a designated topic that they are familiar with.
related to a given prompt. Ask them to take five
minutes to write about
all the possible harmful
effects of the computing
innovation. Then ask them
to take five minutes to
write about all the possible
beneficial effects of the
computing innovation.
Vocabulary Students use a graphic Provides reinforcement At the end of each unit
organizer organizer with a of learned words and a or module, review the
designated format to personal, ever-present vocabulary words and
maintain an ongoing tool for building word definitions that students
record of vocabulary knowledge and awareness. should know. To build an
words with definitions, organizer, have students
pictures, notations, and come up with their own
connections. examples or pictures that
will help them remember
the terms later in the
course. There are several
apps and websites that
help students create
flashcards and quizzes
to help organize the
vocabulary they learn
throughout the year.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 139
Return to Table of Contents
© 2023 College Board
Developing Computational
Thinking Practices
Throughout the AP Computer Science Principles exam questions at the end of this course and exam
course, students will develop computational thinking description show how the questions relate to specific
practices that are fundamental to the discipline of computational thinking practices.
computer science. Because these computational
The following tables present each skill, key tasks for that
thinking practices represent the complex skills
skill that relate to how that skill is assessed, questions
demonstrated by adept computer scientists, students
to aid in determining students’ level of understanding,
will benefit from multiple opportunities to develop these
and instructional notes that show ways to address the
skills in a scaffolded manner. All questions on the AP
skill or misconceptions students may have. Skills in
Exam and rubric rows in the scoring guidelines for the
Practice 6 are not formally assessed, as they are more
Create performance task will be associated with one of
observational in nature. Students should demonstrate
the skills in the tables that follow, so providing students
these skills in class throughout the school year.
with practice applying these skills will help prepare them
for the exam and set them up for success. The sample
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 140
Return to Table of Contents
© 2023 College Board
Practice 1: Computational Solution Design (cont’d)
1.B: Determine Choose a topic or problem to solve and Students need Work backward
and design an then design a program. This includes practice with Before beginning to
appropriate designing any user interface that might programming design a program, ask
be required. challenges of students to make a table
method or
increasing complexity of the different ways they
approach to Key questions for students: that relate to ideation expect the program to
achieve the 1. What are the subparts of the program and design, with behave or of the output
purpose. that should be grouped together? feedback, prior to the they expect to see when
2. How will you plan out your program? official administration it is run. Then, have them
Will you draw out the interface? Will of the Create add in sample input
you use pseudocode or flowchart performance task. that should yield these
diagrams? results. Once students
Students should have developed their
3. How will you know if your program is
spend time planning programs, use what they
working?
up front before wrote in the table to help
starting their Create confirm if their program
performance task. is working properly.
This saves time
when implementing
the program, as
logic errors can be
identified and solved
much earlier in the
process, preventing
additional rework.
1.C: Explain When presented with a scenario, explain Spend time having Predict and compare
how effective collaborative strategies. students reflect on Have students predict
collaboration their collaboration how long it will take to
Key questions for students: with peers, including complete various tasks
affects the 1. Why is collaboration important? what went well in a scavenger hunt as
development of
2. What are the qualities of a good and what could an individual, as a small
a solution. be improved in group, and as a large
collaborative team?
3. How will you know if your group has the future. Focus group. Next, carry out the
been successfully collaborating? on where the tasks with the groups of
collaboration turned various sizes. Afterwards,
into group work ask them to compare the
where students each results of the predictions
worked individually with the actual outcomes.
on part of the project, As you debrief with
rather than truly students, relate this
working together and activity to crowdsourcing
sharing ideas. and the advantages
and disadvantages of
completing tasks in
groups of various sizes.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 141
Return to Table of Contents
© 2023 College Board
Practice 1: Computational Solution Design (cont’d)
1.D: Evaluate When presented with program code or Exposure to multiple Think-pair-share
solution when designing a program: solutions to a single Provide students with a
options. §§ Compare and contrast different problem allows diagram of connected
solutions to determine if they yield the students to see new computing devices.
same result and which is the best one ways to approach Some of the devices
to use to solve a problem. problems that should be connected
§§ Compare the runtimes of different otherwise might to the rest with two or
solutions. not have been more connections. After
considered. having some time to
§§ Describe the benefits and
consider the diagram
vulnerabilities of one solution over Parallel and on their own, have
another. distributed students work in pairs
computing can to determine the most
Key questions for students:
seem too abstract vulnerable connections
1. Will different solutions yield the same
for students at first. in the system and where
or similar result?
Providing real-world connections could be
2. Will one solution be faster than examples of how added to make the
another? distributing solutions system more fault-
3. What are the benefits of this solution? has an impact on tolerant. Allow time for
What might be the limitations? the amount of time it students to share with
takes to complete a the group where they feel
task can help make connections should be
this concept more added.
concrete.
2.A: Represent Express or interpret the Students need Sharing and Responding
algorithmic meaning of an algorithm that is exposure to multiple Provide students a set
processes without expressed using a diagram or representations— of five to 10 index cards
pseudocode. in pseudocode, with different numbers on
using a programming
diagrams, or blocks— them, placing the cards
language. Key questions for students: of a given algorithm. faceup. In small groups,
1. Is a diagram or pseudocode ask students to write
better to represent this algorithms in pseudocode
process? to determine the highest
2. How do you know if this and lowest cards in the set.
representation, when Ask students to consider
implemented, would lead to using an algorithm in
the desired result? pseudocode for sorting
all the cards in order from
lowest to highest.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 142
Return to Table of Contents
© 2023 College Board
Practice 2: Algorithms and Program Development (cont’d)
2.B: Implement and Write program code that Prior to the official Pair programming
apply an algorithm. includes sequencing, selection, administration of the Have students use pair
iteration, and procedures Create performance programming to write two
or lists. task, students need procedures, switching
practice implementing the driver and navigator
Given a scenario or partial programs that first for each procedure. The
program code expressed using include sequencing, first procedure they
the Exam Reference Sheet, then incorporate write should convert a
select the program code that selection and iteration, decimal value to its binary
would satisfy the scenario or and finally use equivalent. The second
complete the program code. procedures and lists. procedure should convert
a binary number to its
Apply algorithms by hand, such It is important that decimal equivalent.
as to convert from binary to students have practice
decimal or to search for a value writing program code
in a set. from scratch, as well
as reading and adding
Key questions for students: to program code that
1. What programming language someone else has
is best for this project? written.
2. Would sorting or filtering the
data make them easier to
understand?
3. Are there existing algorithms
that could be combined to
have the desired effect?
Sample Activities
Skills Tasks/Questions Instructional Notes and Strategies
3.A: Generalize Identify the input, output, and Although there are Using manipulatives
data sources other necessary data in a similarities to the way Provide students with a
through variables. program, and represent these variables are used in math set of short problems that
data using variables. and computer science, could be solved using a
there are also some key computer along with a set
Key questions for students: differences. In algebra, of potential data inputs.
1. Are there constants being variables are often used to Have students match the
used when a variable represent an unknown value problem with the data that
would make the code more or set of values. In computer might be necessary to
flexible? science, variables hold solve the problem.
2. How could you use a list to specific assigned values
represent something new in that can change over time.
your program? Students will need multiple
opportunities to create and
analyze variables to help
make this distinction.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 143
Return to Table of Contents
© 2023 College Board
Practice 3: Abstraction in Program Development (cont’d)
Sample Activities
Skills Tasks/Questions Instructional Notes and Strategies
3.B: Use Develop and use procedural Students should Code tracing
abstraction abstractions by writing understand that simply Provide students with
to manage procedures that often contain using a procedure or list two code segments that
parameters to allow for more does not mean the program output a nursery rhyme,
complexity in a
general use. code has been generalized. such as “Row, Row, Row
program.
The goal is for the program Your Boat.” The first
Develop data abstractions code to be flexible enough code segment should
by using lists and writing to use in a variety of only contain output
program code that is general situations or to still function statements for each line
enough to work even if the list correctly as the program of the song. The second
needs to be resized at a later requirements evolve and code segment should call
point in time. change. separate procedures for
the verses and chorus.
Key questions for students: As students trace each
1. Are there subtasks that code segment, they
could be pulled out of the should record both the
solution for reuse? output and the procedure
2. Are you using the same that is generating the
statements in your program output. Have students
repeatedly, just with compare their code
different values? Would a tracing and explain how
procedure with parameters the code segment that
work to streamline your used procedures helped
code? manage the complexity of
the program code.
3.C: Explain After writing a program, Using large data sets, in Journaling
how abstraction explain how the use of data which the solutions are After students write a
manages abstractions make program difficult to determine by program, have them
code less complex. hand, can help students identify any abstraction
complexity.
understand the necessity that was used and write
Given data, explain how those for and power of data a journal entry explaining
data can be represented in the abstractions. how that abstraction
computer differently by using managed complexity in
the binary number system. their program and how
they would've needed
Key questions for students: to write the program
1. How does using an differently if they didn't
abstraction make the use the abstraction. If
program code easier the student did not use
to write, understand, or any abstraction, they
modify? should explain where in
2. How could your program their program abstraction
code be written more could've been used to
generally so that a change manage complexity.
to the size of a list wouldn’t
necessitate a change to the
rest of your program code?
3. How does the use of
parameters help make your
procedure more usable in
new situations?
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 144
Return to Table of Contents
© 2023 College Board
Practice 4: Code Analysis
Sample Activities
Skills Tasks/Questions Instructional Notes and Strategies
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 145
Return to Table of Contents
© 2023 College Board
Practice 4: Code Analysis (cont’d)
Sample Activities
Skills Tasks/Questions Instructional Notes and Strategies
4.C: Identify and Given program code, Students will encounter Marking the text
correct errors in identify logic errors either many logic and syntax Provide students with
algorithms and through analyzing the errors while writing program code that
program code itself or programs. Having a contains syntax and logic
programs, including
hand tracing using a set of collaborative partner(s) can errors, such as missing
error discovery
test data. be helpful when finding and statements or statements
through testing. correcting errors. that are out of order. Have
Determine sample input students use a highlighter
data for testing a program to identify any syntax
and describe the expected errors and then use arrows
result each input would to rearrange the order of
produce. statements. Any missing
statements should be
Key questions for written into the code.
students:
1. When encountering a
runtime error, is there
anything wrong with the
syntax? Has the compiler
given you information
related to the type of
error or the location of
the error?
2. For your sample input,
does your program
produce the expected
output?
3. Have you considered
all boundary cases to
test your algorithm? For
example, if you have the
condition x < 5, have you
tested values just less
than 5, equal to 5, and
just greater than 5?
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 146
Return to Table of Contents
© 2023 College Board
Practice 5: Computing Innovations
5.A: Explain how Explain how computing devices Using the Internet Kinesthetic learning
computing systems are networked and connected to is not the same as Simulate how messages
work. the Internet to share data. understanding how are sent via the Internet
it works. Students by passing out index
Key questions for students: need to be given cards or other objects
1. What is the difference between opportunities to with messages on them.
the Internet and the World investigate multiple To simulate packets,
Wide Web? ways computers divide the message up
2. How does the system handle share data over and write pieces of it on
a packet not arriving at its networks. several separate index
destination? cards and number them.
3. What would happen to the Pass the partial messages
data if a path was no longer to students one at a
available, maybe because a time to ultimately get the
line was severed? complete message to an
assigned destination (a
preselected student in
the room who will display
the messages in the
order they are received).
Students can only hold
one message in each hand
and can only pass their
message to a student with
a free hand. Once all the
messages have reached
their destination, that
student will reassemble
the message and report
it to the rest of the class.
Be sure to debrief with
students, pointing out that
the packets could’ve taken
different routes to get to
the destination or arrived
out of order.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 147
Return to Table of Contents
© 2023 College Board
Practice 5: Computing Innovations (cont’d)
5.B: Explain how Given categories of data and/or If the data set Activating prior
knowledge can be metadata, explain what information provided is relatively knowledge
generated from data. can be extracted through small—for example, Before providing
manipulation of those data. five items—students instruction on how
often create information can be
Key questions for students: solutions that are extracted from data, have
1. Would a different equally limited and students write down what
representation of the data help will only work with they already know about
when analyzing them? this specific set of computing devices with
2. Based on the data and data. Even if the sensors (e.g., cellphones,
metadata available, what data set is small, voice assistants, fitness
questions might you be able challenge students to devices) and how these
to answer? Is there additional create more abstract devices collect data.
information you might need? solutions that can be Have students consider
adapted to a larger how these data could
data set. be combined to create
assumptions about
the user.
5.C: Describe Given a passage about a Before being able to Discussion group
the impact of computing innovation, describe describe the impact Have students research
a computing potential beneficial and harmful of a computing causes of the digital
effects of that computing innovation, divide. During the class
innovation.
innovation on society, the students need an discussion, have students
economy, or our culture. understanding of propose solutions to
what such an impact combat the digital divide.
Key questions for students: is and how it can be For each proposed
1. What are some ways a determined. This solution, students should
computing innovation has been requires multiple discuss what digital
used that weren’t intended by opportunities for divide cause might be
the innovator? guided practice with addressed, what barriers/
2. What are some beneficial feedback throughout obstacles the solution
effects this computing the year. might pose, and any
innovation might have on potential positive and
you? What are some harmful negative impacts of
effects? the solution.
3. How might a computing
innovation contribute to the
digital divide?
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 148
Return to Table of Contents
© 2023 College Board
Practice 5: Computing Innovations (cont’d)
5.D: Describe the Given a scenario related to data When asked about Marking the text
impact of gathering or a passage about a computing data concerns, Provide students with
data. innovation, describe the potential students often first the opportunity to mimic
risks to data privacy, storage, think of hacking; the process of cleaning
and security, as well as potential however, there are data with a subset of
challenges that arise when other ways that raw data. Ask them to
processing data. data privacy can underline all text that
be compromised. has the same meaning
When provided with larger Additional examples but is represented
data sets that may have poor will help broaden differently (e.g., “street,”
formatting and missing data, students’ thinking “st,” or “Street” would be
identify the potential challenges about what else equivalent). Next, have
and what might need to be done might be a data them circle areas of
before using the data set. concern for them incomplete or invalid data.
or others.
Key questions for students:
1. How can you work to combat
bias in your data?
2. What are some ways in which,
beyond their intended purpose,
some computing innovations
might be using user data?
3. What might need to be done to
the data prior to being able to
use them to answer a question?
5.E: Evaluate the use Given scenarios related to The way in which Look for a pattern
of computing based computer usage, explain: students use Challenge students to
on legal and ethical §§ Any legal and ethical concerns computers today create a flawed data set
§§ Any bias that might exist due can have future of pictures that supports
factors.
to the way the computing impacts on them an incorrect claim. For
innovation was developed or or others. By using example, a data set
the way in which it is being used real-world examples, containing only pictures of
students can learn red birds could lead one
§§ How computing resources can
the consequences to believe that all birds are
be misused, and unauthorized
of failing to protect red. Have students share
access obtained
themselves and their data sets with the
Key questions for students: their data. class and see if they can
1. What can you do to protect guess the flawed pattern.
your computing resources? With so much Afterwards, discuss how
2. What are some ways that information readily bias in data can result
people might try to access available and in biased computing
your computing resources seemingly free to use, innovations. Have them
without your permission? legal ramifications discuss how bias can
and ethical concerns show up in other data
that may be sources, such as text.
associated with the
use of information are
not always intuitive
to students.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 149
Return to Table of Contents
© 2023 College Board
Practice 6: Responsible Computing
Sample Activities
Skills Tasks/Questions Instructional Notes and Strategies
6.A: Collaborate in Move beyond group work, Assigning group work is Pair programming
the development where work is simply divided different from building Introduce students to
of solutions. among group members, the skills necessary for the concept of a text-
to a collaborative process effective collaboration. based “choose-your-
that involves respectful Collaboration skills, such own-adventure” game
and mutual sharing of as consensus-building where the user’s choices
ideas, compromise, and and conflict resolution, determine the output and
an emphasis on conflict need to be explicitly action in the program.
resolution. taught and practiced, with Then, have students
feedback, to be effective. work in pairs, taking turns
Key questions for students: writing possible paths
1. Are you collaborating with While collaboration on or outcomes for the
people who have different ideation and program character.
perspectives than you design and development
do? Is there an important during the Create
perspective missing that performance task is not
you will need to research? required, it is encouraged.
2. During your planning, how
are you ensuring that all
voices and opinions are
being heard?
3. How will you make a
decision when you have
differing opinions?
6.B: Use safe and Take steps to keep personal By having ongoing Discussion group
secure methods identifiable information discussions regarding At the start of class, work
when using from being shared while what data are being with students to develop
using computing devices. shared online about a group norms around how
computing devices.
Be prudent about what is student, with or without to use the computing
shared online. permission, students can resources available in
make informed decisions your school. Some norms
Key questions for students: about what to share might be using strong
1. What steps are you taking publicly about themselves. passwords, or establishing
to keep your identity safe how data are shared
when online? Information that is put among students during
2. How are you preventing online is incredibly times of collaboration.
access by others to your difficult, if not impossible, As the year progresses,
personal devices? to remove. expand this list of norms
3. How do you decide what to include topics outside
you will share publicly the classroom as well,
online? What are some such as asking someone's
of the consequences of permission before posting
sharing information about their picture on social
yourself online? media.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 150
Return to Table of Contents
© 2023 College Board
Practice 6: Responsible Computing (cont’d)
Sample Activities
Skills Tasks/Questions Instructional Notes and Strategies
6.C: Acknowledge the Provide citation for any Some programming Sharing and responding
intellectual property media or program code environments do not Have students
of others. that is being used in support the addition anonymously share
the development of a of comments into the whether they think it
program that has come program code. In these is acceptable to listen
from someone other cases, comments can be to music or watch
than the student or their added to a supporting movies that have been
collaborative partner(s). document to acknowledge downloaded illegally. Have
what work is not original. a class discussion in which
Key questions for students: students respond to what
1. When are you required to When completing the was shared and discuss
credit another author, and Create performance task, the real-life impacts and
what is the best way to students will need to add consequences of such
do so? substantial revisions and actions. Have students
2. What is the best way additional functionality brainstorm ways to
to give credit for open- when starting with protect the intellectual
source program code? preexisting program code. property of others.
Simply changing an image
in a game or the names of
variables is insufficient.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 151
Return to Table of Contents
© 2023 College Board
Using Strategies for
Collaboration
Collaboration allows computer scientists to improve classroom. Having an established protocol for students
their products. Throughout the school year, students to have equal participation and share their ideas,
should be encouraged to collaborate with many such as the think-pair-share or pair programming
different students, especially those who have different strategies, builds students’ confidence and can create
perspectives than their own. Collaborating with people a successful collaborative learning community within a
who have a different perspective helps to reveal blind classroom.
spots they might have due to their own backgrounds
One way to assess how well students collaborate is by
and experiences. Collaboration takes place in a variety
having them write reflections in a journal or participate
of ways:
in discussions about how collaborating with a partner
§§ Brainstorming ideas and solutions from different helped accomplish their task or improve the quality of
perspectives in a team environment their program. Students should be asked to reflect not
§§ Working together to design subtasks of a larger only on what went well in the collaboration process but
project, developing these subtasks, and then also where they could improve it. Some partnerships
integrating them in the completion of the project require more intervention from the teacher than others.
When a partnership is not working well, mediation and
§§ Providing feedback on program design and
reflection can be helpful in getting it back on track. The
development to improve the overall quality
reflection should focus on a student’s own actions and
§§ Providing technical support when problems arise how he or she works with others to solve problems.
that an individual is struggling to solve on their own Teachers should guide students to share their
The cooperative learning strategies that are outlined reflections and consider different ways their work can
in the instructional strategies table earlier can be be improved as they continue to collaborate.
used to help foster collaborative relationships in the
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 152
Return to Table of Contents
© 2023 College Board
Differentiating Computer
Science Instruction
With the availability of so many online resources about §§ Some students may need specific accommodations
programming and other computer science concepts, or additional support when taking AP Computer
some students may be self-taught in some of the Science Principles. College Board fully expects
introductory concepts for this course. While it is not that students with disabilities will receive all of the
required, students may have taken other introductory aids and services called for in their school plans.
computer science courses prior to taking AP Computer However, additional assistance or devices may
Science Principles, depending on your school district. be useful to fully access this course. For example,
This varying level of computer science background students who are physically disabled, blind, or
and ability can make teaching the course challenging visually impaired might need alternate formats for
and the need for differentiated instruction greater. To activities. They may also require special equipment,
engage all students in your classroom, consider trying such as screen readers. Block-based programming
the following: languages can be more difficult for these students,
so the use of a specially designed text-based
§§ Provide leveled assignments in which students
programming environment, such as Quorum,
have a base project that demonstrates proficiency
might be more suitable. For more information on
but can earn more points by completing additional
how to make your computer science classroom
challenges that move them to a more advanced
more accessible to students with disabilities,
demonstration of their understanding.
we recommend reviewing Access Computing
§§ Open-ended projects allow students to challenge resources.
themselves at their individual ability levels and
The goal is to ensure that all students are engaged
interests.
in learning computer science. Students with some
§§ Pair programming is a way for students to support experience or who pick up on material quickly will
each other when developing a program. need incremental challenges, while students with
§§ Give students extended projects or reading less experience may need more time and support to
assignments that can be completed over the course accomplish tasks.
of a week. These projects and assignments can be
homework for students who need the class time
to complete longer projects that might require
assistance from the teachers, while students who
are fast finishers will still have something engaging
and class-related to work on. One example might
be assignments from online practice sites, such
as CodingBat and Khan Academy. A minimum set
of problems can be assigned with incentives for
students who are eager to learn more.
AP Computer Science Principles Course and Exam Description Instructional Approaches V.1 | 153
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
AP COMPUTER SCIENCE PRINCIPLES
Curriculum
Alignment
Curriculum Alignment
Each AP endorsed provider offers a complete curriculum and syllabus for teachers to adopt.
Teachers can also choose to create their own curriculum and syllabus based on the AP
Computer Science Principles course framework. Because AP Computer Science Principles is
presented as big ideas instead of units, teachers who choose to create their own curriculum
and syllabus will need to develop their own unit plans to scaffold and integrate the big ideas
and skills in this course.
To aid in the sequencing of your course and assigning the Topic Questions from
AP Classroom, we have provided a blank Unit at a Glance page. This page can be replicated as
you plan your units and align the topics you intend to cover in that unit. It is important to note
that the big ideas in this course are themes that should be spiraled throughout the course,
rather than taught in isolation as units. When creating a unit plan, it is common for teachers to
pair content from multiple big ideas and skills.
While we have segmented each big idea into topics, there may be times when you introduce
part of a topic in one unit and revisit it one or more times in future units. In these cases, there
may be some Topic Questions that students can answer during the initial introduction of the
topic, while other questions would be more appropriate to use later in the school year. You
can preview questions in AP Classroom before assigning them to students. When pacing out
the number of class periods to spend on each topic, be sure to include time for students to
complete the corresponding Topic Questions.
If you choose an AP endorsed provider, check to see if they have developed their own Unit
at a Glance chart or something similar that can be printed and added to this section. This
document should align the provider curriculum to the AP Computer Science Principles Course
and Exam Description and indicate where it may be appropriate to assign formative Topic
Questions in AP Classroom.
AP Computer Science Principles Course and Exam Description Curriculum Alignment V.1 | 157
Return to Table of Contents
© 2023 College Board
Unit at a Glance
Unit :
This page provides a place to plan instruction and unit pacing for this course. When planning, be sure to:
Learning Objectives
Topic and Skills Topic Questions Class Periods Instructional Planning/Resources
AP Computer Science Principles Course and Exam Description Curriculum Alignment V.1 | 158
Return to Table of Contents
© 2023 College Board
Learning Objectives
Topic and Skills Topic Questions Class Periods Instructional Planning/Resources
AP Computer Science Principles Course and Exam Description Curriculum Alignment V.1 | 159
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
AP COMPUTER SCIENCE PRINCIPLES
Exam
Information
Exam Overview
Number of Exam
Section Question Type/Component Questions Weighting Timing
Single-select 57
Multi-select 8
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 163
Return to Table of Contents
© 2023 College Board
The AP Exam assesses each of the five big ideas of the course with the following weighting on the multiple-
choice section:
Questions in Big Ideas 1, 2, and 3 can be represented as algorithms (with no program code) or as program code
using the Exam Reference Sheet (see Appendix). The program code questions will contain some graphical
representations, some of which use robots in a grid.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 164
Return to Table of Contents
© 2023 College Board
How Student Learning Is
Assessed on the AP Exam
The AP Computer Science Principles computational thinking practices are assessed on the AP Exam as
detailed below.
All computational thinking practices except Computational Thinking Practice 6 are assessed in the multiple-choice
section, with the following exam weighting:
Block Explanation
Oval The start of the algorithm
Parallelogram An input or output step
A conditional or decision step, where execution proceeds to the side labeled “Yes” if the
Diamond
answer to the question is yes and to the side labeled “No” if the answer to the question is no
Rectangle The result of the algorithm
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 165
Return to Table of Contents
© 2023 College Board
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 166
Return to Table of Contents
© 2023 College Board
All reading passage questions will be worded in a similar way. The following are
examples of types of questions associated with reading passage questions; note that
only five of these examples would be included with any one reading passage. The text
in italics will vary by question, while the remainder of the prompt will be consistently
used in all reading passage questions. This Call Center reading passage and a subset
of its associated set of questions can be found in the Sample Exam Questions section
starting on page 172. A full set of five questions for the Call Center reading passage
can be found in the question bank in AP Classroom.
For the written response prompts, students will have access to their student-authored
Personalized Project Reference and write responses to prompts related to the code
contained in this reference. One question from each of the four categories listed below
will appear on the end-of-course AP exam.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 167
Return to Table of Contents
© 2023 College Board
Prompt Category Related Learning Objectives
Program Design, Students should be prepared to respond to prompts about their
Function, and program that assess any of the following learning objectives:
Purpose §§ CRD-2.A: Describe the purpose of a computing innovation.
§§ CRD-2.B: Explain how a program or code segment functions.
§§ CRD-2.C: Identify input(s) to a program.
§§ CRD-2.D: Identify output(s) produced by a program.
§§ CRD-2.E: Develop a program using a development process.
§§ CRD-2.F: Design a program and its user interface.
§§ CRD-2.G: Describe the purpose of a code segment or
program by writing documentation.
Algorithm Students should be prepared to respond to prompts about their
Development program that assess any of the following learning objectives:
§§ CRD-2.B: Explain how a program or code segment functions.
§§ AAP-2.E.b: Evaluate expressions that use relational operators.
§§ AAP-2.F.b: Evaluate expressions that use logic operators.
§§ AAP-2.H.b: Determine the result of conditional statements.
§§ AAP-2.J: Express an algorithm that uses iteration without
using a programming language.
§§ AAP-2.K.b: Determine the result or side effect of iteration
statements.
§§ AAP-2.L: Compare multiple algorithms to determine if they
yield the same side effect or result.
§§ AAP-2.M.a: Create algorithms.
§§ AAP-2.M.b: Combine and modify existing algorithms.
Errors and Students should be prepared to respond to prompts about their
Testing program that assess any of the following learning objectives:
§§ CRD-2.I.a: Identify the error.
§§ CRD-2.I.b: Correct the error.
§§ CRD-2.J: Identify inputs and corresponding expected outputs
or behaviors that can be used to check the correctness of an
algorithm or program.
Data and Students should be prepared to respond to prompts about their
Procedural program that assess any of the following learning objectives:
Abstraction §§ AAP-1.D.a: Develop data abstraction using lists to store
multiple elements.
§§ AAP-1.D.b: Explain how the use of data abstraction manages
complexity in program code.
§§ AAP-2.O.a: Write iteration statements to traverse a list.
§§ AAP-2.O.b: Determine the result of an algorithm that
includes list traversals.
§§ AAP-3.B: Explain how the use of procedural abstraction
manages complexity in a program.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 168
Return to Table of Contents
© 2023 College Board
The second section of the AP Computer Science Principles Exam assesses
Computational Thinking Practices 1, 2, 3, and 4 across six rubric rows.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 169
Return to Table of Contents
© 2023 College Board
Performance Task
Verbs
The following task verbs are commonly used in the performance task and
written responses:
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 170
Return to Table of Contents
© 2023 College Board
Preparing for the
Create Performance
Task
Plagiarism
The use of program code, media (e.g., video, images, sound), data, information, or
evidence created by someone else or with generative AI tools in the creation of a
program and/or a program code segment(s), without appropriate acknowledgment (i.e.,
through citation, through attribution, and/or by reference), is considered plagiarism.
A student who commits plagiarism will receive a score of 0 on the Create performance
task, including their responses to the written response prompts on the end-of-course
AP Exam.
To the best of their ability, teachers will ensure that students understand how to
ethically incorporate ideas that are not their own and provide credit to the original
creator or source, as well as the consequences of plagiarism.
Students should be aware that generative AI tools can produce incomplete code,
code that creates or introduces biases, code with errors, inefficiencies in how the
code executes, or code complexities that make it difficult to understand and therefore
explain the code. It is the student’s responsibility to review and understand any code
co-written with AI tools, ensuring its functionality. Additionally, students must be
prepared to explain their code in detail, as required on the end-of-course AP Exam.
Attestations
During the final submission process in the AP Digital Portfolio, students will be asked
to attest that they have followed the Performance Task guidelines and have not
plagiarized their submission. Each of the three components of the Create performance
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 171
Return to Table of Contents
© 2023 College Board
task must be submitted as final to be sent for scoring. Additionally, if students do not
submit their Personalized Project Reference by the deadline, they will not have this
resource available on exam day to complete their written response section.
§§ Provide instruction, practice, and feedback related to content and skills that will
help students succeed on the performance task. This can include, but needs
not be limited to, the iterative development process, strategies for collaboration,
the development of both data and procedural abstractions, describing an
algorithm’s purpose and explaining how it functions, and identifying test data that
demonstrates the different outcomes of an algorithm.
§§ Brainstorm problems that programming can address or brainstorm special
interests that students want to incorporate when developing a program.
§§ Assist students in defining their focus and choice of topics without making
selections for them (e.g., by asking questions).
§§ Review the performance task directions and provide multiple opportunities to
practice and discuss all or part of the performance task. Formative performance
task prompts can be assigned in AP Classroom.
§§ Explain the role the teacher can and cannot play in providing students with
assistance during the actual performance task; teachers should encourage
students to take advantage of the opportunity to get assistance and feedback
from them during practice.
§§ Inform students that they cannot submit any work from AP Central samples,
curriculum provider samples, or practice performance tasks for their final
submission.
§§ Provide guidance to students about how they can use media or data sources in
their program code and how to avoid plagiarism when doing so. Any media or data
sources that have not been created by the student must be acknowledged, and
credit must be given to the author.
§§ Provide guidance to students about how they can integrate existing program code
into their own program and extend it in some new way by adding new functionality.
Any program code that has not been written by the student—including starter
code provided by you as their teacher, code found in APIs or open-source code,
and code generated using AI tools—should be acknowledged, and credit should
be given to the author. Some examples of ways to provide attribution for program
code that was not authored by the student are as follows:
◆◆ If the program code has been made available for use by their teacher, students
should add a comment that states: This code was provided as starter code by
my teacher.
◆◆ If the program code has been made available through an API or open-source
code, students should add a comment that states: This code was made freely
available by [source of code].
◆◆ If the program code has been co-created with the assistance of a generative
AI tool, students should add a comment that states: This code was generated
using [Generative AI Tool Name].
§§ Instruct students how to add comments to their program code to acknowledge and
credit authors of program code, media, or data sources.
◆◆ If the programming environment allows students to include comments, this is
the preferred way to acknowledge and give credit to another author.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 172
Return to Table of Contents
© 2023 College Board
◆◆ If the programming environment does not allow students to include comments,
students can add comments in a document editor when they capture their
program code for submission to acknowledge and give credit to another author.
§§ Provide explicit instructions about the AP Digital Portfolio file submission
requirements and process to ensure that students’ work is sent for scoring. NOTE: All
three components must be submitted as final by the deadline posted on AP Central.
Only files that are submitted as final will be sent for scoring. Additionally, if students
do not submit their Personalized Project Reference by the deadline, they will not have
this resource available on exam day to complete their written response section.
§§ Encourage students to keep a programming journal of the design choices made
during the development of the program code or code segment and the effect of
these decisions on the program’s function.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 173
Return to Table of Contents
© 2023 College Board
development of their program should be removed prior to taking screen captures.
Including course content or comments in the screen captures will result in the
written response portion of the student’s exam being scored a 0.
§§ Instruct students how to capture their program code to submit for the performance
task.
◆◆ With text-based program code, students can use the print command to save
their program code as a PDF file, or they can copy and paste their code to a
text document and then convert it into a PDF file.
◆◆ With block-based program code, students can create screen captures that
include only their program code, paste these images into a document, and
then convert that document to a PDF file. Screen captures should not be
blurry, and text should be at least 10 pt font size.
◆◆ For the Personalized Project Reference, screen captures should not be blurry,
and text should be at least 10 pt font size. Any course content or comments
that were included with the program code, should not be included in the
screen captures included in the Personalized Project Reference. Including
course content or comments in the Personalized Project Reference could
result in students receiving a 0 for the Create performance task.
§§ Share the categories for each written response question on the end-of-course
AP Exam. The written response questions will be related to the student’s Create
performance task.
§§ Review the final submitted files for each performance task component. These files
should be returned to students if they are the incorrect file, are corrupt, not readable,
or there is course content or comments in the Personalized Project Reference.
Teachers may not return a file to a student due to the quality of the work submitted.
Once students have started their official administration of the performance task,
teachers may not:
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 174
Return to Table of Contents
© 2023 College Board
Sample Exam
Questions
The sample exam questions that follow illustrate the relationship between the course
framework and AP Computer Science Principles Exam and serve as examples of the
types of questions that appear on the exam. After the sample questions, you will find a
table that shows the skill and learning objective(s) to which each question relates. The
table also provides the answers to the multiple-choice questions.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 175
Return to Table of Contents
© 2023 College Board
3. The following grid contains a robot represented as a triangle. The robot is
initially facing right.
Which of the following code segments can be used to move the robot to the gray
square along the path indicated by the arrows?
(A) (B)
(C) (D)
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 176
Return to Table of Contents
© 2023 College Board
4. A user purchased a new smart home device with embedded software and
connected the device to a home network. The user then registered the device
with the manufacturer, setting up an account using a personal e-mail and
password. Which of the following explains how a phishing attack could occur
against the user of the smart home device?
(A) A vulnerability in the device’s software is exploited to gain unauthorized
access to other devices on the user’s home network.
(B) A vulnerability in the device’s software is exploited to install software that
reveals the user’s password to an unauthorized individual.
(C) The user is sent an e-mail appearing to be from the manufacturer, asking
the user to confirm the account password by clicking on a link in the e-mail
and entering the password on the resulting page.
(D) The user’s account is sent an overwhelming number of messages in an
attempt to disrupt service on the user’s home network.
5. Which of the following school policies is most likely to have a positive impact
on the digital divide?
(A) A school allows students to bring a graphing calculator from home to
complete in-class mathematics assignments.
(B) A school allows students to bring a tablet computer to class every day to
participate in graded quizzes.
(C) A school provides a laptop or tablet computer to all students enrolled at
the school.
(D) A school recommends that all students purchase a computer with as much
processing speed as possible so that projects run faster.
6. In a certain country, a person must be at least 16 years old to drive a car and
must be at least 18 years old to vote. The variable age represents the age of a
person as an integer.
Which of the following expressions evaluates to true if the person is old
enough to drive but not old enough to vote, and evaluates to false
otherwise?
(A) II only
(B) I and II only
(C) I and III only
(D) II and III only
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 177
Return to Table of Contents
© 2023 College Board
7. A Web site uses several strategies to prevent unauthorized individuals from
accessing user accounts. Which of the following is NOT an example of
multifactor authentication?
(A) Each employee for a company is issued a USB device that contains a unique
token code. To log into a company computer, an employee must insert the
USB device into the computer and provide a correct password.
(B) After logging into an account from a new device, a user must enter a code
that is sent via e-mail to the e-mail address on file with the account.
(C) In order to log into an account, a user must provide both a password and a
fingerprint that is captured using the user’s device.
(D) When a user enters an incorrect password more than two times in a row,
the user is locked out of the account for 24 hours.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 178
Return to Table of Contents
© 2023 College Board
9. The following code segment is intended to set max equal to the maximum
value among the integer variables x, y, and z. The code segment does not
work as intended in all cases.
Which of the following initial values for x, y, and z can be used to show
that the code segment does not work as intended?
(A) x = 1, y = 2, z = 3
(B) x = 1, y = 3, z = 2
(C) x = 2, y = 3, z = 1
(D) x = 3, y = 2, z = 1
10. A digital photo file contains data representing the level of red, green, and blue for
each pixel in the photo. The file also contains metadata that describe the date and
geographic location where the photo was taken. For which of the following goals
would analyzing the metadata be more appropriate than analyzing the data?
(A) Determining the likelihood that the photo is a picture of the sky
(B) Determining the likelihood that the photo was taken at a particular
public event
(C) Determining the number of people that appear in the photo
(D) Determining the usability of the photo for projection onto a particular
color background
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 179
Return to Table of Contents
© 2023 College Board
11. The following procedure is intended to return the number of times the value
val appears in the list myList. The procedure does not work as intended.
Line 1: PROCEDURE countNumOccurences(myList, val)
Line 2: {
Line 3: FOR EACH item IN myList
Line 4: {
Line 5: count 0
Line 6: IF(item = val)
Line 7: {
Line 8: count count + 1
Line 9: }
Line 10: }
Line 11: RETURN(count)
Line 12:}
Which of the following changes can be made so that the procedure will work
as intended?
(A) Changing line 6 to IF(item = count)
(B) Changing line 6 to IF(myList[item] = val)
(C) Moving the statement in line 5 so that it appears between lines 2 and 3
(D) Moving the statement in line 11 so that it appears between lines 9 and 10
12. A certain computer has two identical processors that are able to run in parallel.
Each processor can run only one process at a time, and each process must be
executed on a single processor. The following table indicates the amount of time
it takes to execute each of three processes on a single processor. Assume that
none of the processes are dependent on any of the other processes.
Execution Time on
Process
Either Processor
X 60 seconds
Y 30 seconds
Z 50 seconds
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 180
Return to Table of Contents
© 2023 College Board
13. A sorted list of numbers contains 500 elements. Which of the following is
closest to the maximum number of list elements that will be examined when
performing a binary search for a value in the list?
(A) 10
(B) 50
(C) 250
(D) 500
Block Explanation
Oval The start of the algorithm
Parallelogram An input or output step
A conditional or decision step, where execution proceeds to the side
Diamond labeled “Yes” if the answer to the question is yes and to the side labeled
“No” if the answer to the question is no
Rectangle The result of the algorithm
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 181
Return to Table of Contents
© 2023 College Board
14. The upgraded system uses a directory containing additional information not
supplied by the customer. The directory is used to help direct calls effectively.
Which of the following is LEAST likely to be included in the directory?
(A) A list of common issues and whether each issue requires a human
representative
(B) A list of common keywords or phrases and a corresponding issue for each
keyword or phrase
(C) A list of computers the company owns and the computers’ corresponding
IP addresses
(D) A list of human representatives and the corresponding department for each
representative
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 182
Return to Table of Contents
© 2023 College Board
15. Of the following potential benefits, which is LEAST likely to be provided by the
upgraded system?
(A) Human representatives will not be needed to respond to some inquiries.
(B) The company will be able to provide a human representative for any
incoming call.
(C) Customers are likely to spend less time listening to information not relevant
to their issue.
(D) Customers will be unable to mistakenly select the incorrect department for
their particular issue.
16. Which of the following is the most likely data privacy concern of the upgraded
system?
(A) Customers’ personal information could be compromised if an unauthorized
individual gains access to the call session database.
(B) Storing information in the call session database makes it easy for
individuals to trick the system using malicious links.
(C) The system design increases the chance that customers will unknowingly
install malware on their devices that will share their data with unauthorized
individuals.
(D) The system design makes it easy for unauthorized individuals to acquire
customers’ private encryption keys.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 183
Return to Table of Contents
© 2023 College Board
17. Consider the following procedure.
Procedure Call Explanation
drawCircle(xPos, yPos, Draws a circle on a coordinate grid with
rad) center (xPos, yPos) and radius rad
Which of the following code segments can be used to draw the figure?
(A) x 4 (B) x 4
y 1 y 1
r 0 r 0
REPEAT 3 TIMES REPEAT 3 TIMES
{ {
drawCircle(x, y, r) r r + 1
r r + 1 y y + 1
y y + 1 drawCircle(x, y, r)
} }
(C) x 4 (D) x 4
y 4 y 4
r 3 r 3
REPEAT 3 TIMES REPEAT 3 TIMES
{ {
drawCircle(x, y, r) y y - 1
y y - 1 r r - 1
r r - 1 drawCircle(x, y, r)
} }
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 184
Return to Table of Contents
© 2023 College Board
18. In the following statement, val1, val2, and result are Boolean
variables.
Which of the following code segments produce the same result as the statement
above for all possible values of val1 and val2 ?
(C) (D)
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 185
Return to Table of Contents
© 2023 College Board
Section II: Create Performance Task: Written Responses
The Create performance task section of the end-of-course exam consists of four prompts that require students to
write responses that demonstrate understanding of their personal Create performance task. The following are sample
prompts for each of the four categories – but the specific prompts will vary across the different versions of the exam.
Students will have access to their student-authored Personalized Project Reference, as long as it was submitted as
final via the AP Digital Portfolio, when responding to these prompts.
Algorithm Development Consider the first iteration statement included in the Procedure section of your
Personalized Project Reference. Identify the number of times the body of your
iteration statement will execute. Describe a condition or error that would cause your
iteration statement to not terminate and cause an infinite loop. If no such condition
or error exists, explain how the loop could be modified to cause an infinite loop.
Errors and Testing Consider the procedure included in part (i) of the Procedure section of your
Personalized Project Reference. Describe a change to your procedure that will result
in a run-time error. Explain why this change will result in a run-time error.
Data and Procedural Suppose you are provided with a procedure called isEqual (value1,
Abstraction value2). The procedure returns true if the two parameters value1 and
value2 are equal in value and returns false otherwise. Using the list you
identified in the List section of your Personalized Project Reference, explain in
detailed steps an algorithm that uses isEqual to count the number of times a
certain value appears in your list. Your explanation must be detailed enough for
someone else to write the program code.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 186
Return to Table of Contents
© 2023 College Board
Answer Key and Question
Alignment to Course Framework
Multiple-Choice
Question Answer Skill Learning Objective
1 A 5.A CSN-1.C
2 A 2.B DAT-1.C.b
3 D 2.B AAP-2.K.a
4 C 5.E IOC-2.C
5 C 5.C IOC-1.C
6 D 4.B AAP-2.F.b
7 D 5.E IOC-2.B
8 B 2.A AAP-2.J
9 D 4.C CRD-2.J
10 B 5.B DAT-2.B
11 C 4.C CRD-2.I.b
12 C 1.D CSN-2.A.b
13 A 1.D AAP-2.P.a
14 C 3.A CRD-2.C
15 B 5.C IOC-1.A
16 A 5.D IOC-2.A
17 B,C 3.B AAP-3.A.a
18 A,D 1.D AAP-2.L
The scoring information for the questions within this course and exam
description, along with further exam resources, can be found on the
AP Computer Science Principles Exam page on AP Central.
AP Computer Science Principles Course and Exam Description Exam Information V.1 | 187
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
AP COMPUTER SCIENCE PRINCIPLES
Student
Handouts
AP COMPUTER SCIENCE PRINCIPLES
Student
Handouts
The following pages contain a student-directed version of
the performance task guidelines that you can print out or
copy to share with your students.
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 191
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
Create Performance Task
Programming is a collaborative and creative process that brings ideas to life through
the development of software. In the Create performance task, you will design
and implement a program that might solve a problem, enable innovation, explore
personal interests, or express creativity. Your submission must include the elements
listed in the Submission Requirements section below.
You are allowed to collaborate with your partner(s) on the development of the
program only. The video and Personalized Project Reference that you submit for
this performance task must be completed individually, without any collaboration
with your partner(s) or anyone else. You can develop the code segments used in
your Personalized Project Reference with your partner(s) or on your own as you
work on the performance task during class.
Please note that once your teacher has assigned this performance task as one
of your AP score components, you are expected to complete the task without
assistance from anyone except for your partner(s) and then only when developing
the program code. You must follow the Guidelines for Completing the Create
Performance Task section below.
General Requirements
You will be provided with a minimum of 9 hours of class time to complete and submit
the following:
§§ Final program code (created independently or collaboratively)
§§ A video that displays the running of your program and demonstrates
functionality you developed (created independently)
§§ Code Segments for your Personalized Project Reference (created independently)
Note: Students in nontraditional classroom environments should consult a school-
based AP Coordinator for instructions.
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 193
Return to Table of Contents
© 2023 College Board
Submission Requirements
COMPONENT A: PROGRAM CODE (CREATED INDEPENDENTLY OR COLLABORATIVELY)
Submit one PDF file that contains all of your program code (including
comments). Include comments or acknowledgments for any part of the DEFINITION:
submitted program code that has been written by someone other than you
List
and/or your collaborative partner(s).
A list is an ordered
IMPORTANT:
sequence of elements.
If the programming environment allows you to include comments, this is the
The use of lists allows
preferred way to acknowledge and give credit to another author. However, if the
multiple related items
programming environment does not allow you to include comments, you can add
to be represented using
them in a document editor when you capture your program code for submission.
a single variable. Lists
may be referred to by
In your program, you must include student-developed program code that
different names, such as
contains the following:
arrays, depending on the
□□Instructions for input from one of the following: programming language.
◆◆ the user (including user actions that trigger events)
DEFINITION:
◆◆ a device
Collection Type
◆◆ an online data stream
A collection type is a
◆◆ a file type that aggregates
□□Use of at least one list (or other collection type) to represent a collection of elements in a single
structure. Some
data that is stored and used to manage program complexity and help fulfill
examples include lists,
the program’s purpose databases, and sets.
IMPORTANT:
The data abstraction must make the program easier to develop (alternatives would IMPORTANT:
be more complex) or easier to maintain (future changes to the size of the list would With text-based program
otherwise require significant modifications to the program code). code, you can use the
print command to save
□□At least one procedure that contributes to the program’s intended purpose, your program code as
where you have defined: a PDF file, or you can
◆◆ the procedure’s name copy and paste your
◆◆ the return type (if necessary) code to a text document
and then convert it into
◆◆ one or more parameters
a PDF file. With block-
IMPORTANT: based program code,
Implementation of built-in or existing procedures or language structures, such as you can create screen
event handlers or main methods, are not considered student-developed. captures that include
only your program code,
□□An algorithm that includes sequencing, selection, and iteration that is in the paste these images into
body of the selected procedure a document, and then
convert that document
□□Calls to your student-developed procedure to a PDF. Screen
□□Instructions for output (tactile, audible, visual, or textual) based on input and captures should not be
program functionality blurry, and text should be
at least 10 pt font size.
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 194
Return to Table of Contents
© 2023 College Board
COMPONENT B: VIDEO (CREATED INDEPENDENTLY) Submit one video file that
demonstrates the running of your program as described below. Collaboration
is not allowed during the development of your video.
Your video must demonstrate your program running, including:
□□Input to your program
□□At least one aspect of the functionality of your program
□□Output produced by your program
Your video may NOT contain:
□□Any distinguishing information about yourself
□□Voice narration (though text captions are encouraged)
Your video must be:
□□Either .webm, .mp4, .wmv, .avi, or .mov format
□□No more than 1 minute in length
□□No more than 30MB in file size
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 195
Return to Table of Contents
© 2023 College Board
COMPONENT C: PERSONALIZED PROJECT REFERENCE (CREATED
INDEPENDENTLY) To assist in responding to the written response prompts on
exam day, submit required portions of your code by capturing and pasting
program code segments you developed during the administration of this task.
Screen captures should not be blurry, and text should be at least 10-point
font size. Your code segments should not include any comments. These code
segments will be made available to you on exam day only if this component is
submitted as final in the AP Digital Portfolio by the deadline.
Procedure: Capture and paste two program code segments you developed
during the administration of this task that contain a student-developed
procedure that implements an algorithm used in your program and a call to
that procedure.
IMPORTANT:
Built-in or existing procedures and language structures, such as event handlers
and main methods, are not considered student-developed.
ii. The second program code segment must show where your
student-developed procedure is being called in your program.
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 196
Return to Table of Contents
© 2023 College Board
List: Capture and paste two program code segments you developed during DEFINITION:
the administration of this task that contain a list (or other collection type) List
being used to manage complexity in your program. A list is an ordered
i. The first program code segment must show how data have been sequence of elements.
stored in the list. The use of lists allows
multiple related items
to be represented using
a single variable. Lists
may be referred to by
different names, such as
arrays, depending on the
programming language.
DEFINITION:
ii. The second program code segment must show the data in the
same list being used, such as creating new data from the existing Collection Type
data or accessing multiple elements in the list, as part of fulfilling A collection type is a type
the program’s purpose. that aggregates elements
in a single structure. Some
examples include lists,
databases, and sets.
IMPORTANT:
The data abstraction
manages complexity by
making the program easier
to develop (alternatives
would be more complex) or
easier to maintain (future
changes to the size of the
list would otherwise require
significant modifications to
the program code).
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 197
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
Guidelines for Completing
the Performance Task
Plagiarism
The use of program code, media (e.g., video, images, sound), data, information, or
evidence created by someone else or with generative AI tools in the creation of a
program and/or a program code segment(s), without appropriate acknowledgment
(i.e., through citation, through attribution, and/or by reference), is considered plagiarism.
A student who commits plagiarism will receive a score of 0 on the Create performance
task, including their responses to the written response prompts on the end-of-course
AP Exam.
To the best of their ability, teachers will ensure that students understand how to ethically
incorporate ideas that are not their own and provide credit to the original creator or
source, as well as the consequences of plagiarism.
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 199
Return to Table of Contents
© 2023 College Board
Attestations
During the final submission process in the AP Digital Portfolio, students will be
asked to attest that they have followed the Performance Task guidelines and
have not plagiarized their submission. Each of the three components of the
Create performance task must be submitted as final to be sent for scoring.
Additionally, if students do not submit their Personalized Project Reference
by the deadline, they will not have this resource available on exam day to
complete their written response section.
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 200
Return to Table of Contents
© 2023 College Board
Preparing for the Performance Task
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 201
Return to Table of Contents
© 2023 College Board
§§ Practice creating a video of your program running, while adhering to file
type, size, and length requirements.
§§ Practice making readable screen captures and creating a PDF file of your
program code to submit for the performance task:
◆◆ With text-based program code, you can use the print command to
save your program code as a PDF file, or you can copy and paste your
code to a text document and then convert it into a PDF file.
◆◆ With block-based program code, you can create screen captures that
include only your program code, paste these images into a document,
and then convert that document to a PDF file. Screen captures should
not be blurry, and text should be at least 10 pt font size.
◆◆ For the Personalized Project Reference, screen captures should
not be blurry, and text should be at least 10 pt font size. Any
course content or comments that were included with the program
code, should not be included in the screen captures used in the
Personalized Project Reference. Including course content or
comments in the Personalized Project Reference could result in
students receiving a 0 for the Create performance task.
§§ Understand that you may not revise your work once you have submitted
it as final to the AP Digital Portfolio.
§§ Review the categories for each written response prompts on the end-
of-course AP Exam. The written response prompts will be related to your
Create performance task. Practice writing responses for these types of
questions.
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 202
Return to Table of Contents
© 2023 College Board
Completing the Performance Task
You must:
§§ Submit all three components of your performance task as final prior
to the submission deadline, which can be found on the AP Computer
Science Principles Exam page on AP Central. Only files submitted as final
will be sent for scoring. If you do not submit your Personalized Project
Reference by the deadline, you will not have this resource available on
exam day to complete your written response section.
§§ Follow a calendar or schedule that provides time for all performance task
components to be completed and uploaded in advance of the deadline.
§§ Read the performance task directions.
§§ Apply the computer science knowledge you have obtained throughout
the course, and when completing the performance task.
§§ Use acceptable acknowledgment practices when using program code,
media (i.e., images, videos, sound), or data sources created by others
or with generative AI tools in your program code to avoid plagiarism.
Program code not written by you could include starter code provided by
your teacher, the use of APIs or open-source code, or generated using
an AI tool. When using existing code, you must extend the program in
some new way by adding new functionality. Some examples of ways to
provide attribution for program code that was not authored by you are as
follows:
◆◆ If the program code has been made available for your use by your
teacher, add a comment that states: This code was provided as
starter code by my teacher.
◆◆ If the program code has been made available through an API or open-
source code, add a comment that states: This code was made freely
available by [source of code].
◆◆ If the program code has been co-created with the assistance of
a generative AI tool, add a comment that states: This code was
generated using [Generative AI Tool Name].
§§ Add comments to your program code to clarify the functionality of
program code segments or to acknowledge and credit authors of media,
data sources, or program code:
◆◆ If the programming environment allows you to include comments,
this is the preferred way to acknowledge and give credit to another
author.
◆◆ If the programming environment does not allow you to include
comments, you can add them in a document editor when you capture
your program code for submission.
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 203
Return to Table of Contents
© 2023 College Board
Once you have started your official administration of the performance
task, you may not:
§§ Seek assistance in writing, revising, amending, or correcting your work,
including debugging the program, writing or designing functionality in
the program, testing the program, or making revisions to the program,
from anyone other than your collaborative partner(s).
§§ Submit practice performance tasks or any work that has been
revised, amended, or corrected by another individual, other than your
collaborative partner(s) or cited program code, as a submission for AP
Exam scoring.
§§ Include any course content in the screen captures of the program code
included in the Personalized Project Reference. Any course content
or comments that were included in the program code during the
development of your program should be removed prior to taking screen
captures. Including course content or comments in your screen captures
will result in the written response portion of your exam being scored a 0.
§§ Collaborate during the creation of your video or creation of your
Personalized Project Reference.
§§ Revise your work once you have completed and submitted it as final to
the AP Digital Portfolio.
AP Computer Science Principles Course and Exam Description Student Handouts V.1 | 204
Return to Table of Contents
© 2023 College Board
AP COMPUTER SCIENCE PRINCIPLES
Appendix
AP COMPUTER SCIENCE PRINCIPLES
Appendix 1:
AP CSP Exam
Reference
Sheet
AP Computer Science Principles Course and Exam Description Appendix V.1 | 207
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
Exam Reference Sheet
Instruction Explanation
Assignment, Display, and Input
Text: Evaluates expression and then assigns a copy of the result to
a ← expression the variable a.
Block:
a expression
Block:
DISPLAY expression
Text: Accepts a value from the user and returns the input value.
INPUT()
Block:
INPUT
Arithmetic Operators and Numeric Procedures
Text and Block: The arithmetic operators +, -, *, and / are used to perform
a + b arithmetic on a and b.
a - b For example, 17 / 5 evaluates to 3.4.
a * b
The order of operations used in mathematics applies when evaluating
a / b
expressions.
Text and Block: Evaluates to the remainder when a is divided by b. Assume that
a MOD b a is an integer greater than or equal to 0 and b is an integer
greater than 0.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 209
Return to Table of Contents
© 2023 College Board
Instruction Explanation
Relational and Boolean Operators (continued)
Text: Evaluates to true if condition is false; otherwise
NOT condition evaluates to false.
Block:
NOT condition
Selection
Text: The code in block of statements is executed if the
IF(condition) Boolean expression condition evaluates to true; no
{ action is taken if condition evaluates to false.
<block of statements>
}
Block:
IF condition
block of statements
IF condition
AP Computer Science Principles Course and Exam Description Appendix V.1 | 210
Return to Table of Contents
© 2023 College Board
Instruction Explanation
Iteration
Text: The code in block of statements is executed n times.
REPEAT n TIMES
{
<block of statements>
}
Block:
REPEAT n TIMES
block of statements
block of statements
List Operations
For all list operations, if a list index is less than 1 or greater than the length of the list, an error message is produced and the program
terminates.
Text: Creates a new list that contains the values value1, value2,
aList ← [value1, value2, value3, ...] value3, and ... at indices 1, 2, 3, and ...
respectively and assigns it to aList.
Block:
aList
aList i
AP Computer Science Principles Course and Exam Description Appendix V.1 | 211
Return to Table of Contents
© 2023 College Board
Instruction Explanation
List Operations (continued)
Text: Assigns the value of aList[i] to the variable x.
x ← aList[i]
Block:
x aList i
aList i x
aList i aList j
Text: Removes the item at index i in aList and shifts to the left
REMOVE(aList, i) any values at indices greater than i. The length of aList is
decreased by 1.
Block:
REMOVE aList, i
Block:
block of statements
AP Computer Science Principles Course and Exam Description Appendix V.1 | 212
Return to Table of Contents
© 2023 College Board
Instruction Explanation
Procedures and Procedure Calls
Text: Defines procName as a procedure that takes zero or more
PROCEDURE procName(parameter1, arguments. The procedure contains block of statements.
parameter2, ...) The procedure procName can be called using the following
{ notation, where arg1 is assigned to parameter1, arg2 is
<block of statements> assigned to parameter2, etc.:
} procName(arg1, arg2, ...)
Block:
block of statements
block of statements
RETURN expression
Text: Returns the flow of control to the point where the procedure was
RETURN(expression) called and returns the value of expression.
Block:
RETURN expression
Robot
If the robot attempts to move to a square that is not open or is beyond the edge of the grid, the robot will stay in its current location
and the program will terminate.
Text: The robot moves one square forward in the direction it is facing.
MOVE_FORWARD()
Block:
MOVE_FORWARD
ROTATE_LEFT
AP Computer Science Principles Course and Exam Description Appendix V.1 | 213
Return to Table of Contents
© 2023 College Board
Instruction Explanation
Robot
Text: The robot rotates in place 90 degrees clockwise (i.e., makes an in-
ROTATE_RIGHT() place right turn).
Block:
ROTATE_RIGHT
AP Computer Science Principles Course and Exam Description Appendix V.1 | 214
Return to Table of Contents
© 2023 College Board
AP COMPUTER SCIENCE PRINCIPLES
Appendix 2:
AP CSP
Conceptual
Framework
AP Computer Science Principles Course and Exam Description Appendix V.1 | 215
Return to Table of Contents
© 2023 College Board
THIS PAGE IS INTENTIONALLY LEFT BLANK.
Conceptual Framework
Enduring
Understanding Learning Objective Essential Knowledge
CRD-1.A.3
Effective collaboration produces a computing innovation that
reflects the diversity of talents and perspectives of those who
designed it.
CRD-1.A.4
Collaboration that includes diverse perspectives helps avoid
bias in the development of computing innovations.
CRD-1.A.5
Consultation and communication with users are important
aspects of the development of computing innovations.
CRD-1.A.6
Information gathered from potential users can be used
to understand the purpose of a program from diverse
perspectives and to develop a program that fully incorporates
these perspectives.
CRD-1.B CRD-1.B.1
Explain how computing Online tools support collaboration by allowing programmers to
innovations are developed by share and provide feedback on ideas and documents.
groups of people. 1.C
CRD-1.B.2
Common models such as pair programming exist to facilitate
collaboration.
CRD-1.C CRD-1.C.1
Demonstrate effective Effective collaborative teams practice interpersonal skills,
interpersonal skills during including but not limited to:
collaboration. 1.C §§ communication
§§ consensus building
§§ conflict resolution
continued on next page §§ negotiation
AP Computer Science Principles Course and Exam Description Appendix V.1 | 217
Return to Table of Contents
© 2023 College Board
Big Idea 1: Creative Development (CRD) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
CRD-2.B.3
A program needs to work for a variety of inputs and situations.
CRD-2.B.4
The behavior of a program is how a program functions during
execution and is often described by how a user interacts with it.
CRD-2.B.5
A program can be described broadly by what it does, or in more
detail by both what the program does and how the program
statements accomplish this function.
CRD-2.C CRD-2.C.1
Identify input(s) to a program. Program inputs are data sent to a computer for processing by
3.A a program. Input can come in a variety of forms, such as tactile,
audio, visual, or text.
CRD-2.C.2
An event is associated with an action and supplies input data to
a program.
CRD-2.C.3
Events can be generated when a key is pressed, a mouse is
clicked, a program is started, or any other defined action occurs
that affects the flow of execution.
CRD-2.C.4
Inputs usually affect the output produced by a program.
CRD-2.C.5
In event-driven programming, program statements are
executed when triggered rather than through the sequential
flow of control.
CRD-2.C.6
continued on next page Input can come from a user or other programs.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 218
Return to Table of Contents
© 2023 College Board
Big Idea 1: Creative Development (CRD) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
CRD-2.E.3
A development process that is iterative requires refinement and
revision based on feedback, testing, or reflection throughout
the process. This may require revisiting earlier phases of the
process.
CRD-2.E.4
A development process that is incremental is one that breaks
the problem into smaller pieces and makes sure each piece
works before adding it to the whole.
CRD-2.F CRD-2.F.1
Design a program and its user The design of a program incorporates investigation to
interface. 1.B determine its requirements.
CRD-2.F.2
Investigation in a development process is useful for
understanding and identifying the program constraints, as well
as the concerns and interests of the people who will use the
program.
CRD-2.F.3
Some ways investigation can be performed are as follows:
§§ collecting data through surveys
§§ user testing
§§ interviews
continued on next page §§ direct observations
AP Computer Science Principles Course and Exam Description Appendix V.1 | 219
Return to Table of Contents
© 2023 College Board
Big Idea 1: Creative Development (CRD) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
CRD-2 CRD-2.F.4
Program requirements describe how a program functions and
Developers create and may include a description of user interactions that a program
innovate using an must provide.
iterative design process
CRD-2.F.5
that is user-focused, A program’s specification defines the requirements for the
that incorporates program.
implementation/
CRD-2.F.6
feedback cycles, and
In a development process, the design phase outlines how to
that leaves ample room accomplish a given program specification.
for experimentation and
CRD-2.F.7
risk-taking.
The design phase of a program may include:
§§ brainstorming
§§ planning and storyboarding
§§ organizing the program into modules and functional
components
§§ creation of diagrams that represent the layouts of the user
interface
§§ development of a testing strategy for the program
CRD-2.G CRD-2.G.1
Describe the purpose of a Program documentation is a written description of the function
code segment or program by of a code segment, event, procedure, or program and how it
writing documentation. 4.A was developed.
CRD-2.G.2
Comments are a form of program documentation written into
the program to be read by people and do not affect how a
program runs.
CRD-2.G.3
Programmers should document a program throughout its
development.
CRD-2.G.4
Program documentation helps in developing and maintaining
correct programs when working individually or in collaborative
programming environments.
CRD-2.G.5
Not all programming environments support comments, so
continued on next page other methods of documentation may be required.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 220
Return to Table of Contents
© 2023 College Board
Big Idea 1: Creative Development (CRD) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
CRD-2.I.3
A run-time error is a mistake in the program that occurs during
the execution of a program. Programming languages define
their own run-time errors.
CRD-2.I.4
An overflow error is an error that occurs when a computer
attempts to handle a number that is outside of the defined
range of values.
CRD-2.I.5
The following are effective ways to find and correct errors:
§§ test cases
§§ hand tracing
§§ visualizations
§§ debuggers
§§ adding extra output statement(s)
CRD-2.J CRD-2.J.1
Identify inputs and In the development process, testing uses defined inputs to
corresponding expected ensure that an algorithm or program is producing the expected
outputs or behaviors that outcomes. Programmers use the results from testing to revise
can be used to check the their algorithms or programs.
correctness of an algorithm
or program. 4.C CRD-2.J.2
Defined inputs used to test a program should demonstrate
the different expected outcomes that are at or just beyond the
extremes (minimum and maximum) of input data.
CRD-2.J.3
Program requirements are needed to identify appropriate
defined inputs for testing.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 221
Return to Table of Contents
© 2023 College Board
Big Idea 2: Data (DAT)
Data are central to computing innovations because they communicate initial conditions to programs
and represent new knowledge. Computers consume data, transform data, and produce new data,
allowing users to create new information or knowledge to solve problems through the interpretation of
these data. Computers store data digitally, which means that the data must be manipulated in order
to be presented in a useful way to the user.
Enduring
Understanding Learning Objective Essential Knowledge
people. DAT-1.A.5
Abstraction is the process of reducing complexity by focusing
on the main idea. By hiding details irrelevant to the question
at hand and bringing together related and useful details,
abstraction reduces complexity and allows one to focus on
the idea.
DAT-1.A.6
Bits are grouped to represent abstractions. These abstractions
include, but are not limited to, numbers, characters, and color.
DAT-1.A.7
The same sequence of bits may represent different types of
data in different contexts.
DAT-1.A.8
Analog data have values that change smoothly, rather than in
discrete intervals, over time. Some examples of analog data
include pitch and volume of music, colors of a painting, or
position of a sprinter during a race.
DAT-1.A.9
The use of digital data to approximate real-world analog data is
an example of abstraction.
DAT-1.A.10
Analog data can be closely approximated digitally using a
sampling technique, which means measuring values of the
analog signal at regular intervals called samples. The samples
are measured to figure out the exact bits required to store
continued on next page each sample.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 222
Return to Table of Contents
© 2023 College Board
Big Idea 2: Data (DAT) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
DAT-1.C DAT-1.C.1
For binary numbers: Number bases, including binary and decimal, are used to
a. Calculate the binary represent data.
(base 2) equivalent of a
positive integer (base 10) DAT-1.C.2
and vice versa. 2.B Binary (base 2) uses only combinations of the digits zero and
b. Compare and order binary one.
numbers. 2.B
DAT-1.C.3
Decimal (base 10) uses only combinations of the digits 0 – 9.
DAT-1.C.4
As with decimal, a digit’s position in the binary sequence
determines its numeric value. The numeric value is equal to the
bit’s value (0 or 1) multiplied by the place value of its position.
DAT-1.C.5
The place value of each position is determined by the base
raised to the power of the position. Positions are numbered
starting at the rightmost position with 0 and increasing by 1 for
continued on next page each subsequent position to the left.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 223
Return to Table of Contents
© 2023 College Board
Big Idea 2: Data (DAT) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
DAT-1.D.5
Lossy data compression algorithms can significantly reduce
the number of bits stored or transmitted but only allow
reconstruction of an approximation of the original data.
DAT-1.D.6
Lossy data compression algorithms can usually reduce the
number of bits stored or transmitted more than lossless
compression algorithms.
DAT-1.D.7
In situations where quality or ability to reconstruct the original
is maximally important, lossless compression algorithms are
typically chosen.
DAT-1.D.8
In situations where minimizing data size or transmission time
is maximally important, lossy compression algorithms are
typically chosen.
DAT-2.A.4
Often, a single source does not contain the data needed to
draw a conclusion. It may be necessary to combine data from a
continued on next page variety of sources to formulate a conclusion.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 224
Return to Table of Contents
© 2023 College Board
Big Idea 2: Data (DAT) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
DAT-2.B.3
Metadata are used for finding, organizing, and managing
information.
DAT-2.B.4
Metadata can increase the effective use of data or data sets by
providing additional information.
DAT-2.B.5
Metadata allow data to be structured and organized.
DAT-2.C DAT-2.C.1
Identify the challenges The ability to process data depends on the capabilities of the
associated with processing users and their tools.
data. 5.D
DAT-2.C.2
Data sets pose challenges regardless of size, such as:
§§ the need to clean data
§§ incomplete data
§§ invalid data
§§ the need to combine data sources
DAT-2.C.3
Depending on how data were collected, they may not be
uniform. For example, if users enter data into an open field, the
way they choose to abbreviate, spell, or capitalize something
may vary from user to user.
DAT-2.C.4
Cleaning data is a process that makes the data uniform
without changing their meaning (e.g., replacing all equivalent
abbreviations, spellings, and capitalizations with the same word).
DAT-2.C.5
Problems of bias are often created by the type or source of
data being collected. Bias is not eliminated by simply collecting
more data.
DAT-2.C.6
The size of a data set affects the amount of information that can
be extracted from it.
DAT-2.C.7
Large data sets are difficult to process using a single computer
and may require parallel systems.
DAT-2.C.8
Scalability of systems is an important consideration when
working with data sets, as the computational capacity of a
continued on next page system affects how data sets can be processed and stored.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 225
Return to Table of Contents
© 2023 College Board
Big Idea 2: Data (DAT) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
allows users to discover Tables, diagrams, text, and other visual tools can be used to
communicate insight and knowledge gained from data.
information and create
new knowledge. DAT-2.D.3
Search tools are useful for efficiently finding information.
DAT-2.D.4
Data filtering systems are important tools for finding
information and recognizing patterns in data.
DAT-2.D.5
Programs such as spreadsheets help efficiently organize and
find trends in information.
DAT-2.D.6
Some processes that can be used to extract or modify
information from data include the following:
§§ transforming every element of a data set, such as doubling
every element in a list, or adding a parent’s email to every
student record
§§ filtering a data set, such as keeping only the positive
numbers from a list, or keeping only students who signed
up for band from a record of all the students
§§ combining or comparing data in some way, such as adding
up a list of numbers, or finding the student who has the
highest GPA
§§ visualizing a data set through a chart, graph, or other visual
representation
DAT-2.E DAT-2.E.1
Explain how programs can Programs are used in an iterative and interactive way when
be used to gain insight and processing information to allow users to gain insight and
knowledge from data. 5.B knowledge about data.
DAT-2.E.2
Programmers can use programs to filter and clean digital data,
thereby gaining insight and knowledge.
DAT-2.E.3
Combining data sources, clustering data, and classifying data
are parts of the process of using programs to gain insight and
knowledge from data.
DAT-2.E.4
Insight and knowledge can be obtained from translating and
transforming digitally represented information.
DAT-2.E.5
Patterns can emerge when data are transformed using
programs.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 226
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP)
Programmers integrate algorithms and abstraction to create programs for creative purposes and
to solve problems. Using multiple program statements in a specified order, making decisions,
and repeating the same process multiple times are the building blocks of programs. Incorporating
elements of abstraction, by breaking problems down into interacting pieces, each with their own
purpose, makes writing complex programs easier. Programmers need to think algorithmically and use
abstraction to define and interpret processes that are used in a program.
Enduring
Understanding Learning Objective Essential Knowledge
AAP-1.A.3
Some programming languages provide types to represent
data, which are referenced using variables. These types include
numbers, Booleans, lists, and strings.
AAP-1.A.4
Some values are better suited to representation using one type
of datum rather than another.
AAP-1.B AAP-1.B.1
Determine the value of a The assignment operator allows a program to change the value
variable as a result of an represented by a variable.
assignment. 4.B
AAP-1.B.2
The exam reference sheet provides the ” ” operator to use for
assignment. For example,
Text:
a expression
Block:
a expression
evaluates expression and then assigns a copy of the result to
the variable a.
AAP-1.B.3
The value stored in a variable will be the most recent value
assigned. For example:
a 1
b a
a 2
display(b)
continued on next page still displays 1.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 227
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
AAP-1.C.3
An index is a common method for referencing the elements in a
list or string using natural numbers.
AAP-1.C.4
continued on next page A string is an ordered sequence of characters.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 228
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
AAP-1.D.3
Data abstractions can be created using lists.
AAP-1.D.4
Developing a data abstraction to implement in a program can
result in a program that is easier to develop and maintain.
AAP-1.D.5
Data abstractions often contain different types of elements.
AAP-1.D.6
The use of lists allows multiple related items to be treated as a
single value. Lists are referred to by different names, such as
array, depending on the programming language.
X EXCLUSION STATEMENT (EK APP-1.D.6)
AAP-1.D.7
The exam reference sheet provides the notation
§§ Text:
§§ Text:
aList []
Block:
aList
continued on next page creates a new empty list and assigns it to aList.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 229
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
AAP-1 §§ Text:
aList bList
To find specific Block:
solutions to
aList bList
generalizable problems,
programmers represent assigns a copy of the list bList to the list aList.
For example, if bList contains [20, 40, 60],
and organize data in then aList will also contain [20, 40, 60] after
multiple ways. the assignment.
AAP-1.D.8
The exam reference sheet describes a list structure whose
index values are 1 through the number of elements in the list,
inclusive. For all list operations, if a list index is less than 1 or
greater than the length of the list, an error message is produced
and the program will terminate.
AAP-2.B AAP-2.B.1
Represent a step-by-step Sequencing is the application of each step of an algorithm in
algorithmic process using the order in which the code statements are given.
sequential code statements.
2.B AAP-2.B.2
A code statement is a part of program code that expresses an
action to be carried out.
AAP-2.B.3
An expression can consist of a value, a variable, an operator, or
a procedure call that returns a value.
AAP-2.B.4
Expressions are evaluated to produce a single value.
AAP-2.B.5
The evaluation of expressions follows a set order of operations
defined by the programming language.
AAP-2.B.6
Sequential statements execute in the order they appear in the
code segment.
AAP-2.B.7
Clarity and readability are important considerations when
continued on next page expressing an algorithm in a programming language.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 230
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
AAP-2.C.4
The order of operations used in mathematics applies when
evaluating expressions. The MOD operator has the same
precedence as the * and / operators.
AAP-2.D AAP-2.D.1
Evaluate expressions that String concatenation joins together two or more strings
manipulate strings. 4.B end-to-end to make a new string.
AAP-2.D.2
A substring is part of an existing string.
AAP-2.E AAP-2.E.1
For relationships between A Boolean value is either true or false.
two variables, expressions, or
values: AAP-2.E.2
a. Write expressions using The exam reference sheet provides the following relational
relational operators. 2.B operators: =, ≠, >, <, ≥, and ≤.
b. Evaluate expressions that Text and Block:
use relational operators. §§ a = b
4.B
§§ a ≠ b
§§ a > b
§§ a < b
§§ a ≥ b
§§ a ≤ b
These are used to test the relationship between two variables,
expressions, or values. A comparison using a relational operator
evaluates to a Boolean value. For example, a = b evaluates
to true if a and b are equal; otherwise, it evaluates
continued on next page to false.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 231
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
Text:
condition1 AND condition2
Block:
condition1 AND condition2
which evaluates to true if both condition1 and
condition2 are true; otherwise it evaluates to false.
AAP-2.F.4
The exam reference sheet provides
Text:
condition1 OR condition2
Block:
condition1 OR condition2
which evaluates to true if condition1 is true or
if condition2 is true or if both condition1 and
condition2 are true; otherwise it evaluates to false.
AAP-2.F.5
The operand for a logical operator is either a Boolean
expression or a single Boolean value.
AAP-2.G AAP-2.G.1
Express an algorithm that Selection determines which parts of an algorithm are executed
uses selection without using a based on a condition being true or false.
continued on next page programming language. 2.A
AP Computer Science Principles Course and Exam Description Appendix V.1 | 232
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
block of statements
AAP-2.H.3
The exam reference sheet provides
Text:
IF(condition)
{
<first block of statements>
}
ELSE
{
<second block of statements>
}
Block:
IF condition
AAP-2.I AAP-2.I.1
For nested selection: Nested conditional statements consist of conditional
a. Write nested conditional statements within conditional statements.
statements. 2.B
b. Determine the result
of nested conditional
continued on next page statements. 4.B
AP Computer Science Principles Course and Exam Description Appendix V.1 | 233
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
REPEAT n TIMES
block of statements
AAP-2.K.3
The exam reference sheet provides
Text:
REPEAT UNTIL(condition)
{
<block of statements>
}
Block:
block of statements
AAP-2.K.4
In REPEAT UNTIL(condition) iteration, an infinite loop
occurs when the ending condition will never evaluate to true.
AAP-2.K.5
In REPEAT UNTIL(condition) iteration, if the conditional
evaluates to true initially, the loop body is not executed at all,
continued on next page due to the condition being checked before the loop.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 234
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
AAP-2.M AAP-2.M.1
For algorithms: Algorithms can be created from an idea, by combining existing
a. Create algorithms. 2.A algorithms, or by modifying existing algorithms.
b. Combine and modify AAP-2.M.2
existing algorithms. 2.B
Knowledge of existing algorithms can help in constructing new
ones. Some existing algorithms include:
§§ determining the maximum or minimum value of two or more
numbers
§§ computing the sum or average of two or more numbers
§§ identifying if an integer is or is not evenly divisible by
another integer
§§ determining a robot’s path through a maze
AAP-2.M.3
Using existing correct algorithms as building blocks for
constructing another algorithm has benefits such as reducing
development time, reducing testing, and simplifying the
identification of errors.
AAP-2.N AAP-2.N.1
For list operations: The exam reference sheet provides basic operations on lists,
a. Write expressions that including:
use list indexing and list §§ accessing an element by index
procedures. 2.B Text:
b. Evaluate expressions that aList[i]
use list indexing and list Block:
procedures. 4.B aList i
accesses the element of aList at index i. The first
element of aList is at index 1 and is accessed using
the notation aList[1].
§§ assigning a value of an element of a list to a variable
Text:
x ← aList [i]
Block:
x aList i
continued on next page assigns the value of aList[i] to the variable x.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 235
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
REMOVE aList, i
AAP-2.N.2
List procedures are implemented in accordance with the syntax
continued on next page rules of the programming language.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 236
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
block of statements
AAP-2.O.4
Knowledge of existing algorithms that use iteration can help
in constructing new algorithms. Some examples of existing
algorithms that are often used with lists include:
§§ determining a minimum or maximum value in a list
§§ computing a sum or average of a list of numbers
AAP-2.O.5
Linear search or sequential search algorithms check each
element of a list, in order, until the desired value is found or all
elements in the list have been checked.
AAP-2.P AAP-2.P.1
For binary search algorithms: The binary search algorithm starts at the middle of a sorted
a. Determine the number of data set of numbers and eliminates half of the data; this process
iterations required to find a repeats until the desired value is found or all elements have
value in a data set. 1.D been eliminated.
b. Explain the requirements X EXCLUSION STATEMENT (EK: AAP-2.P.1):
necessary to complete a Specific implementations of the binary search are outside
binary search. 1.A the scope of the course and the AP Exam.
AAP-2.P.2
Data must be in sorted order to use the binary search algorithm.
AAP-2.P.3
Binary search is often more efficient than sequential/linear
continued on next page search when applied to sorted data.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 237
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
effect of a procedure call. Procedures are referred to by different names, such as method
manageable pieces. By or function, depending on the programming language.
4.B
creating procedures and
leveraging parameters, AAP-3.A.3
Parameters are input variables of a procedure. Arguments
programmers generalize
specify the values of the parameters when a procedure is
processes that can be called.
reused. Procedures
AAP-3.A.4
allow programmers
A procedure call interrupts the sequential execution of
to draw upon existing statements, causing the program to execute the statements
code that has already within the procedure before continuing. Once the last statement
been tested, allowing in the procedure (or a return statement) has executed, flow of
control is returned to the point immediately following where the
them to write programs procedure was called.
more quickly and with
AAP-3.A.5
more confidence.
The exam reference sheet provides
procName(arg1, arg2, ...)
as a way to call
Text:
PROCEDURE procName(parameter1,
parameter2, ...)
{
<block of statements>
}
Block:
block of statements
AAP-3.A.6
The exam reference sheet provides the procedure
Text:
DISPLAY(expression)
Block:
DISPLAY expression
continued on next page to display the value of expression, followed by a space.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 238
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
AAP-3 AAP-3.A.7
The exam reference sheet provides the
Programmers break
Text:
down problems into RETURN(expression)
smaller and more Block:
manageable pieces. By
RETURN expression
creating procedures and
leveraging parameters, statement, which is used to return the flow of control to the
point where the procedure was called and to return the value of
programmers generalize
expression.
processes that can be
reused. Procedures AAP-3.A.8
block of statements
RETURN expression
AAP-3.A.9
The exam reference sheet provides procedure
Text:
INPUT()
Block:
INPUT
continued on next page which accepts a value from the user and returns the input value.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 239
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
AAP-3.B.6
Using procedural abstraction helps improve code readability.
AAP-3.B.7
Using procedural abstraction in a program allows programmers
to change the internals of the procedure (to make it faster, more
efficient, use less storage, etc.) without needing to notify users
continued on next page of the change as long as what the procedure does is preserved.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 240
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
block of statements
RETURN expression
AP Computer Science Principles Course and Exam Description Appendix V.1 | 241
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
allow programmers Application program interfaces (APIs) are specifications for how
the procedures in a library behave and can be used.
to draw upon existing
code that has already AAP-3.D.5
more confidence. For generating random The exam reference sheet provides
values: Text:
a. Write expressions to RANDOM(a, b)
generate possible values.
Block:
2.B
AAP-3.E.2
Using random number generation in a program means each
continued on next page execution may produce a different result.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 242
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
AAP-3.F.7
Simulations facilitate the formulation and refinement of
hypotheses related to the objects or phenomena under
consideration.
AAP-3.F.8
Random number generators can be used to simulate the
variability that exists in the real world.
AAP-4.A.4
An algorithm’s efficiency is determined through formal or
continued on next page mathematical reasoning.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 243
Return to Table of Contents
© 2023 College Board
Big Idea 3: Algorithms and Programming (AAP) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
AAP-4 AAP-4.A.5
An algorithm’s efficiency can be informally measured by
There exist problems determining the number of times a statement or group of
that computers cannot statements executes.
solve, and even when
AAP-4.A.6
a computer can solve Different correct algorithms for the same problem can have
a problem, it may not different efficiencies.
be able to do so in a
AAP-4.A.7
reasonable amount
Algorithms with a polynomial efficiency or lower (constant,
of time. linear, square, cube, etc.) are said to run in a reasonable amount
of time. Algorithms with exponential or factorial efficiencies
are examples of algorithms that run in an unreasonable amount
of time.
AAP-4.A.8
Some problems cannot be solved in a reasonable amount of
time because there is no efficient algorithm for solving them. In
these cases, approximate solutions are sought.
AAP-4.A.9
A heuristic is an approach to a problem that produces a solution
that is not guaranteed to be optimal but may be used when
techniques that are guaranteed to always find an optimal
solution are impractical.
X EXCLUSION STATEMENT (AAP-4.A.9):
AAP-4.B AAP-4.B.1
Explain the existence of A decidable problem is a decision problem for which an
undecidable problems in algorithm can be written to produce a correct output for all
computer science. 1.A inputs (e.g., “Is the number even?”).
AAP-4.B.2
An undecidable problem is one for which no algorithm can be
constructed that is always capable of providing a correct yes-
or-no answer.
X EXCLUSION STATEMENT (EK AAP-4.B.2):
AAP-4.B.3
An undecidable problem may have some instances that have
an algorithmic solution, but there is no algorithmic solution that
could solve all instances of the problem.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 244
Return to Table of Contents
© 2023 College Board
Big Idea 4: Computing Systems and Networks (CSN)
Computer systems and networks are used to transfer data. One of the largest and most commonly
used networks is the Internet. Through a series of protocols, the Internet can be used to send and
receive information and ideas throughout the world. Transferring and processing information can be
slow when done on a single computer but leveraging multiple computers to do the work at the same
time can significantly shorten the time it takes to complete tasks or solve problems.
Enduring
Understanding Learning Objective Essential Knowledge
CSN-1.A.3
A computer network is a group of interconnected computing
devices capable of sending or receiving data.
CSN-1.A.4
A computer network is a type of computing system.
CSN-1.A.5
A path between two computing devices on a computer network
(a sender and a receiver) is a sequence of directly connected
computing devices that begins at the sender and ends at the
receiver.
CSN-1.A.6
Routing is the process of finding a path from sender to receiver.
CSN-1.A.7
The bandwidth of a computer network is the maximum amount
of data that can be sent in a fixed amount of time.
CSN-1.A.8
Bandwidth is usually measured in bits per second.
CSN-1.B CSN-1.B.1
Explain how the Internet The Internet is a computer network consisting of
works. 5.A interconnected networks that use standardized, open
(nonproprietary) communication protocols.
CSN-1.B.2
Access to the Internet depends on the ability to connect a
computing device to an Internet-connected device.
CSN-1.B.3
A protocol is an agreed-upon set of rules that specify the
behavior of a system.
CSN-1.B.4
The protocols used in the Internet are open, which allows users
continued on next page to easily connect additional computing devices to the Internet.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 245
Return to Table of Contents
© 2023 College Board
Big Idea 4: Computing Systems and Networks (CSN) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
CSN-1 CSN-1.B.5
Routing on the Internet is usually dynamic; it is not specified in
Computer systems and advance.
networks facilitate the
transfer of data. CSN-1.B.6
The scalability of a system is the capacity for the system to
change in size and scale to meet new demands.
CSN-1.B.7
The Internet was designed to be scalable.
CSN-1.C CSN-1.C.1
Explain how data are sent Information is passed through the Internet as a data stream.
through the Internet via Data streams contain chunks of data, which are encapsulated
packets. 5.A in packets.
CSN-1.C.2
Packets contain a chunk of data and metadata used for routing
the packet between the origin and the destination on the
Internet, as well as for data reassembly.
CSN-1.C.3
Packets may arrive at the destination in order, out of order, or
not at all.
CSN-1.C.4
IP, TCP, and UDP are common protocols used on the Internet.
CSN-1.D CSN-1.D.1
Describe the differences The World Wide Web is a system of linked pages, programs,
between the Internet and the and files.
World Wide Web. 5.A
CSN-1.D.2
HTTP is a protocol used by the World Wide Web.
CSN-1.D.3
continued on next page The World Wide Web uses the Internet.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 246
Return to Table of Contents
© 2023 College Board
Big Idea 4: Computing Systems and Networks (CSN) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
b. Explain how a given system Redundancy is the inclusion of extra components that can be
is fault-tolerant. 5.A used to mitigate failure of a system if other components fail.
c. Identify vulnerabilities to
CSN-1.E.3
failure in a system. 1.D
One way to accomplish network redundancy is by having more
than one path between any two connected devices.
CSN-1.E.4
If a particular device or connection on the Internet fails,
subsequent data will be sent via a different route, if possible.
CSN-1.E.5
When a system can support failures and still continue to
function, it is called fault-tolerant. This is important because
elements of complex systems fail at unexpected times, often in
groups, and fault tolerance allows users to continue to use the
network.
CSN-1.E.6
Redundancy within a system often requires additional
resources but can provide the benefit of fault tolerance.
CSN-1.E.7
The redundancy of routing options between two points
increases the reliability of the Internet and helps it scale to more
continued on next page devices and more people.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 247
Return to Table of Contents
© 2023 College Board
Big Idea 4: Computing Systems and Networks (CSN) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
b. Determine the efficiency of Parallel computing is a computational model where the program
to more quickly solve is broken into multiple smaller sequential computing operations,
solutions. 1.D
complex problems or some of which are performed simultaneously.
process large data sets.
CSN-2.A.3
Distributed computing is a computational model in which
multiple devices are used to run a program.
CSN-2.A.4
Comparing efficiency of solutions can be done by comparing
the time it takes them to perform the same task.
CSN-2.A.5
A sequential solution takes as long as the sum of all of its steps.
CSN-2.A.6
A parallel computing solution takes as long as its sequential
tasks plus the longest of its parallel tasks.
CSN-2.A.7
The “speedup” of a parallel solution is measured in the time it
took to complete the task sequentially divided by the time it
took to complete the task when done in parallel.
CSN-2.B CSN-2.B.1
Describe benefits and Parallel computing consists of a parallel portion and a
challenges of parallel and sequential portion.
distributed computing. 1.D
CSN-2.B.2
Solutions that use parallel computing can scale more effectively
than solutions that use sequential computing.
CSN-2.B.3
Distributed computing allows problems to be solved that could
not be solved on a single computer because of either the
processing time or storage needs involved.
CSN-2.B.4
Distributed computing allows much larger problems to be
solved quicker than they could be solved using a single
computer.
CSN-2.B.5
When increasing the use of parallel computing in a solution, the
efficiency of the solution is still limited by the sequential portion.
This means that at some point, adding parallel portions will no
longer meaningfully increase efficiency.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 248
Return to Table of Contents
© 2023 College Board
Big Idea 5: Impact of Computing (IOC)
Computers and computing have revolutionized our lives. To use computing safely and responsibly, we
need to be aware of privacy, security, and ethical issues. As programmers, we need to understand the
potential impacts of our programs and be responsible for the consequences. As computer users, we
need to understand any potential beneficial or harmful effects and how to protect ourselves and our
privacy when using a computer.
Enduring
Understanding Learning Objective Essential Knowledge
IOC-1 IOC-1.A IOC-1.A.1
Explain how an effect of a People create computing innovations.
While computing computing innovation can be
innovations are both beneficial and harmful. IOC-1.A.2
typically designed 5.C The way people complete tasks often changes to incorporate
new computing innovations.
to achieve a specific
purpose, they may IOC-1.A.3
Not every effect of a computing innovation is anticipated in
have unintended
advance.
consequences.
IOC-1.A.4
A single effect can be viewed as both beneficial and harmful by
different people, or even by the same person.
IOC-1.A.5
Advances in computing have generated and increased
creativity in other fields, such as medicine, engineering,
communications, and the arts.
IOC-1.B IOC-1.B.1
Explain how a computing Computing innovations can be used in ways that their creators
innovation can have an impact had not originally intended:
beyond its intended purpose. §§ The World Wide Web was originally intended only for rapid
5.C and easy exchange of information within the scientific
community.
§§ Targeted advertising is used to help businesses, but it can
be misused at both individual and aggregate levels.
§§ Machine learning and data mining have enabled innovation
in medicine, business, and science, but information
discovered in this way has also been used to discriminate
against groups of individuals.
IOC-1.B.2
Some of the ways computing innovations can be used may
have a harmful impact on society, the economy, or culture.
IOC-1.B.3
Responsible programmers try to consider the unintended ways
their computing innovations can be used and the potential
beneficial and harmful effects of these new uses.
IOC-1.B.4
It is not possible for a programmer to consider all the ways a
computing innovation can be used.
IOC-1.B.5
Computing innovations have often had unintended beneficial
effects by leading to advances in other fields.
IOC-1.B.6
Rapid sharing of a program or running a program with a large
number of users can result in significant impacts beyond the
continued on next page
intended purpose or control of the programmer.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 249
Return to Table of Contents
© 2023 College Board
Big Idea 5: Impact of Computing (IOC) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
IOC-1.C.4
The digital divide raises issues of equity, access, and influence,
both globally and locally.
IOC-1.C.5
The digital divide is affected by the actions of individuals,
organizations, and governments.
IOC-1.D IOC-1.D.1
Explain how bias exists in Computing innovations can reflect existing human biases
computing innovations. 5.E because of biases written into the algorithms or biases in the
data used by the innovation.
IOC-1.D.2
Programmers should take action to reduce bias in algorithms
used for computing innovations as a way of combating existing
human biases.
IOC-1.D.3
Biases can be embedded at all levels of software development.
IOC-1.E IOC-1.E.1
Explain how people Widespread access to information and public data facilitates
participate in problem- the identification of problems, development of solutions, and
solving processes at scale. dissemination of results.
1.C
IOC-1.E.2
Science has been affected by using distributed and “citizen
science” to solve scientific problems.
IOC-1.E.3
Citizen science is scientific research conducted in whole or part
by distributed individuals, many of whom may not be scientists,
who contribute relevant data to research using their own
computing devices.
IOC-1.E.4
Crowdsourcing is the practice of obtaining input or information
from a large number of people via the Internet.
IOC-1.E.5
Human capabilities can be enhanced by collaboration via
computing.
IOC-1.E.6
Crowdsourcing offers new models for collaboration, such as
continued on next page connecting businesses or social causes with funding.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 250
Return to Table of Contents
© 2023 College Board
Big Idea 5: Impact of Computing (IOC) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
IOC-1.F.4
The use of material created by someone else without
permission and presented as one’s own is plagiarism and may
have legal consequences.
IOC-1.F.5
Some examples of legal ways to use materials created by
someone else include:
§§ Creative Commons—a public copyright license that
enables the free distribution of an otherwise copyrighted
work. This is used when the content creator wants to give
others the right to share, use, and build upon the work they
have created.
§§ open source—programs that are made freely available and
may be redistributed and modified
§§ open access—online research output free of any and all
restrictions on access and free of many restrictions on use,
such as copyright or license restrictions
IOC-1.F.6
The use of material created by someone other than you should
always be cited.
IOC-1.F.7
Creative Commons, open source, and open access have
enabled broad access to digital information.
IOC-1.F.8
As with any technology or medium, using computing to
harm individuals or groups of people raises legal and ethical
concerns.
IOC-1.F.9
Computing can play a role in social and political issues, which in
turn often raises legal and ethical concerns.
IOC-1.F.10
The digital divide raises ethical concerns around computing.
IOC-1.F.11
Computing innovations can raise legal and ethical concerns.
Some examples of these include:
§§ the development of software that allows access to digital
media downloads and streaming
§§ the development of algorithms that include bias
§§ the existence of computing devices that collect and analyze
continued on next page data by continuously monitoring activities
AP Computer Science Principles Course and Exam Description Appendix V.1 | 251
Return to Table of Contents
© 2023 College Board
Big Idea 5: Impact of Computing (IOC) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
IOC-2.A.2
Search engines can record and maintain a history of searches
made by users.
IOC-2.A.3
Websites can record and maintain a history of individuals who
have viewed their pages.
IOC-2.A.4
Devices, websites, and networks can collect information about
a user’s location.
IOC-2.A.5
Technology enables the collection, use, and exploitation
of information about, by, and for individuals, groups, and
institutions.
IOC-2.A.6
Search engines can use search history to suggest websites or
for targeted marketing.
IOC-2.A.7
Disparate personal data, such as geolocation, cookies, and
browsing history, can be aggregated to create knowledge about
an individual.
IOC-2.A.8
PII and other information placed online can be used to enhance
a user’s online experiences.
IOC-2.A.9
PII stored online can be used to simplify making online
purchases.
IOC-2.A.10
Commercial and governmental curation of information may be
exploited if privacy and other protections are ignored.
IOC-2.A.11
Information placed online can be used in ways that were not
intended and that may have a harmful impact. For example, an
email message may be forwarded, tweets can be retweeted,
and social media posts can be viewed by potential employers.
IOC-2.A.12
PII can be used to stalk or steal the identity of a person or to aid
continued on next page in the planning of other criminal acts.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 252
Return to Table of Contents
© 2023 College Board
Big Idea 5: Impact of Computing (IOC) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
IOC-2 IOC-2.A.13
Once information is placed online, it is difficult to delete.
The use of computing
innovations may IOC-2.A.14
involve risks to personal Programs can collect your location and record where you have
been, how you got there, and how long you were at a given
safety and identity. location.
IOC-2.A.15
Information posted to social media services can be used by
others. Combining information posted on social media and
other sources can be used to deduce private information
about you.
IOC-2.B IOC-2.B.1
Explain how computing Authentication measures protect devices and information from
resources can be protected unauthorized access. Examples of authentication measures
and can be misused. 5.E include strong passwords and multifactor authentication.
IOC-2.B.2
A strong password is something that is easy for a user to
remember but would be difficult for someone else to guess
based on knowledge of that user.
IOC-2.B.3
Multifactor authentication is a method of computer
access control in which a user is only granted access after
successfully presenting several separate pieces of evidence
to an authentication mechanism, typically in at least two of
the following categories: knowledge (something they know),
possession (something they have), and inherence (something
they are).
IOC-2.B.4
Multifactor authentication requires at least two steps to unlock
protected information; each step adds a new layer of security
that must be broken to gain unauthorized access.
IOC-2.B.5
Encryption is the process of encoding data to prevent
unauthorized access. Decryption is the process of decoding
the data. Two common encryption approaches are:
§§ Symmetric key encryption involves one key for both
encryption and decryption.
§§ Public key encryption pairs a public key for encryption and
a private key for decryption. The sender does not need
the receiver’s private key to encrypt a message, but the
receiver’s private key is required to decrypt the message.
X EXCLUSION STATEMENT (EK IOC-2.B.5):
IOC-2.B.6
Certificate authorities issue digital certificates that validate the
ownership of encryption keys used in secure communications
continued on next page and are based on a trust model.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 253
Return to Table of Contents
© 2023 College Board
Big Idea 5: Impact of Computing (IOC) (cont’d)
Enduring
Understanding Learning Objective Essential Knowledge
IOC-2 IOC-2.B.7
Computer virus and malware scanning software can help
The use of computing protect a computing system against infection.
innovations may
involve risks to personal IOC-2.B.8
A computer virus is a malicious program that can copy itself and
safety and identity. gain access to a computer in an unauthorized way. Computer
viruses often attach themselves to legitimate programs and
start running independently on a computer.
IOC-2.B.9
Malware is software intended to damage a computing system
or to take partial control over its operation.
IOC-2.B.10
All real-world systems have errors or design flaws that can be
exploited to compromise them. Regular software updates help
fix errors that could compromise a computing system.
IOC-2.B.11
Users can control the permissions programs have for collecting
user information. Users should review the permission settings
of programs to protect their privacy.
IOC-2.C IOC-2.C.1
Explain how unauthorized Phishing is a technique that attempts to trick a user into
access to computing providing personal information. That personal information can
resources is gained. 5.E then be used to access sensitive online resources, such as
bank accounts and emails.
IOC-2.C.2
Keylogging is the use of a program to record every keystroke
made by a computer user in order to gain fraudulent access to
passwords and other confidential information.
IOC-2.C.3
Data sent over public networks can be intercepted, analyzed,
and modified. One way that this can happen is through a rogue
access point.
IOC-2.C.4
A rogue access point is a wireless access point that gives
unauthorized access to secure networks.
IOC-2.C.5
A malicious link can be disguised on a web page or in an email
message.
IOC-2.C.6
Unsolicited emails, attachments, links, and forms in emails can
be used to compromise the security of a computing system.
These can come from unknown senders or from known senders
whose security has been compromised.
IOC-2.C.7
Untrustworthy (often free) downloads from freeware or
shareware sites can contain malware.
AP Computer Science Principles Course and Exam Description Appendix V.1 | 254
Return to Table of Contents
© 2023 College Board