| Enduring Understanding | Learning Objective | Essential Knowledge |
|---|---|---|
CRD-1 | CRD-1.A |
|
CRD-1.B |
| |
CRD-1.C |
|
AP Computer Science Principles
-
1 Creative Development
1.1
Collaboration
Syllabus
Source: College Board AP Course and Exam Description
Computing is a collaborative 协作 activity. Working in a team brings more perspectives, catches more errors, and produces better programs than working alone. Good collaboration uses consensus building, clear communication, and each member's strengths. Pair programming 结对编程 – two people at one computer, one typing and one reviewing – is a common practice. On the exam, you should be able to explain how collaboration improved a program (more ideas, fewer bugs, wider testing).
Vocabulary TrainEnglish Chinese Pinyin collaborative 协作 xié zuò Pair programming 结对编程 jié duì biān chéng 1.2
Program Function and Purpose
Syllabus
Enduring Understanding Learning Objective Essential Knowledge CRD-2
Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.CRD-2.A
Describe the purpose of a computing innovation. [Skill 1.A]- CRD-2.A.1 The purpose of computing innovations is to solve problems or to pursue interests through creative expression.
- CRD-2.A.2 An understanding of the purpose of a computing innovation provides developers with an improved ability to develop that computing innovation.
CRD-2.B
Explain how a program or code segment functions. [Skill 4.A]- CRD-2.B.1 A program is a collection of program statements that performs a specific task when 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.
- 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
Identify input(s) to a program. [Skill 3.A]- CRD-2.C.1 Program inputs are data sent to a computer for 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
Identify output(s) produced by a program. [Skill 3.A]- CRD-2.D.1 Program outputs are any data sent from 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).
Source: College Board AP Course and Exam Description
Every program is written for a purpose – it solves a problem or pursues an interest. A program takes input 输入, processes it, and produces output 输出. Inputs can come from a user, a device, a file, or another program; outputs can be visual, audible, textual, or a signal to a device. Being able to state a program's purpose, and describe its inputs and outputs clearly, is a core skill (and part of the Create performance task).
Every program decomposes into input, processing, and output
Every program follows the input-processing-output modelExploreExplore the input → processing → output model
Step through the IPO model. Every program takes some input, performs processing on it by following its instructions, then produces output — trace one weather-app example along the pipeline.
Vocabulary TrainEnglish Chinese Pinyin input 输入 shū rù output 输出 shū chū 1.3
Program Design and Development
Syllabus
Enduring Understanding Learning Objective Essential Knowledge CRD-2
Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.CRD-2.E
Develop a program using a development process. [Skill 1.B]- CRD-2.E.1 A development process can be ordered and 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.
CRD-2.F
Design a program and its user interface. [Skill 1.B]- CRD-2.F.1 The design of a program incorporates 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
CRD-2.G
Describe the purpose of a code segment or program by writing documentation. [Skill 4.A]- CRD-2.G.1 Program documentation is a written description of the function of a code segment, event, 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
Acknowledge code segments used from other sources. [Skill 1.C]- CRD-2.H.1 It is important to acknowledge any code segments that were developed collaboratively 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.
Source: College Board AP Course and Exam Description
Programs are built through an iterative 迭代 process, not in one straight line: investigate the problem and users, design (often with a diagram or written plan), implement in code, and test – then repeat. A large problem is broken into smaller pieces (decomposition 分解). Comments 注释 and clear naming document the design so others (and your future self) can understand it. Development is incremental – build and test a small piece, then add the next.
The stages of program development, with testing feeding back to fix and refine
Software is built by an iterative, incremental development processExploreLoop through the iterative development process
Development is iterative — you repeat the stages, improving the program a little on each pass. Step around the loop and notice it returns to the start rather than ending after one run.
Vocabulary TrainEnglish Chinese Pinyin iterative 迭代 dié dài decomposition 分解 fēn jiě Comments 注释 zhù shì 1.4
Identifying and Correcting Errors
Syllabus
Enduring Understanding Learning Objective Essential Knowledge CRD-2
Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.CRD-2.I
For errors in an algorithm or program:
a. Identify the error. [Skill 4.C]
b. Correct the error. [Skill 4.C]- CRD-2.I.1 A logic error is a mistake in the algorithm or program that causes it to behave incorrectly or unexpectedly.
- CRD-2.I.2 A syntax error is a mistake in the program where the rules of the programming language are not followed.
- 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
Identify inputs and corresponding expected outputs or behaviors that can be used to check the correctness of an algorithm or program. [Skill 4.C]- CRD-2.J.1 In the development process, testing uses defined inputs to ensure that an algorithm or program is producing the expected outcomes. Programmers use the results from testing to revise their algorithms or programs.
- 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.
Source: College Board AP Course and Exam Description
A bug is an error in a program; debugging 调试 is finding and fixing it. Three kinds:
A trace table records each variable's value as the program runs, to find bugs- a syntax error 语法错误 breaks the language's rules, so the program will not run;
- a runtime error 运行时错误 crashes the program while it runs (e.g. dividing by zero);
- a logic error 逻辑错误 lets it run but gives the wrong result.
Find bugs by testing with different inputs (including edge cases), adding print statements to see values, and hand-tracing the code. Fixing one bug at a time and re-testing is the reliable method.
Exam skill: be able to name the type of an error and describe a testing strategy that would catch it – a recurring multiple-choice and Create-task theme.
Three kinds of programming error: syntax, logic, and runtimeExploreTrace the guessing-game logic and spot a logic error
Drag the guess and watch which branch runs. A logic error would send the same guess down the wrong branch — the program still runs, but gives the wrong message. The secret number here is 50.
Vocabulary TrainEnglish Chinese Pinyin debugging 调试 tiáo shì syntax error 语法错误 yǔ fǎ cuò wù runtime error 运行时错误 yùn xíng shí cuò wù logic error 逻辑错误 luó jí cuò wù 1.4
Exam tips
- Much of CSP is assessed through the Create and written performance tasks — explain your reasoning clearly, not just your result.
- Know the benefits of collaboration and how diverse perspectives reduce bias in a program.
- Use precise vocabulary (iterative development, program requirements) when you describe a design process.
- Give and take feedback constructively; credit collaborators and sources.
- Break a large problem into smaller modules that a team can build in parallel.
-
2 Data
2.1
Binary Numbers
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.DAT-1.A
Explain how data can be represented using bits. [Skill 3.C]- DAT-1.A.1 Data values can be stored in variables, lists of items, or standalone constants and can be passed as input to (or output from) procedures.
- DAT-1.A.2 Computing devices represent data digitally, meaning that the lowest-level components of any value are bits.
- DAT-1.A.3 Bit is shorthand for binary digit and is either 0 or 1.
- DAT-1.A.4 A byte is 8 bits.
- 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 each sample.
DAT-1.B
Explain the consequences of using bits to represent data. [Skill 1.D]- DAT-1.B.1 In many programming languages, integers are represented by a fixed number of bits, 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.
- Exclusion statement: Specific range limitations for real numbers are outside the scope of this course and the AP Exam.
DAT-1.C
For binary numbers:
a. Calculate the binary (base 2) equivalent of a positive integer (base 10) and vice versa. [Skill 2.B]
b. Compare and order binary numbers. [Skill 2.B]- DAT-1.C.1 Number bases, including binary and decimal, are used to represent data.
- DAT-1.C.2 Binary (base 2) uses only combinations of the digits zero and one.
- 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 each subsequent position to the left.
Source: College Board AP Course and Exam Description
Computers store everything as bits 位 – each a
0or1. A group of 8 bits is a byte 字节. Numbers are stored in binary 二进制 (base 2), where each place is a power of two ($1, 2, 4, 8, 16, \dots$) instead of the powers of ten in decimal 十进制. For example, binary1011is $8+2+1=11$.
An 8-bit place-value chart: the 1s sit under the values that add to the numberWorked example. To convert binary
1101to decimal, write the place values8 4 2 1under the bits1 1 0 1and add the ones that have a1: $8+4+0+1=13$. Going the other way, convert19to binary by subtracting the largest power of two that fits: $19-16=3$, then $3-2=1$, then $1-1=0$, so the bits sit at the16,2, and1places $\rightarrow$10011(check: $16+2+1=19$).Because a computer has a finite number of bits, it can represent only a limited range of values. This causes two effects tested on the exam:
- Overflow error 溢出错误: a number too large for the available bits cannot be stored correctly.
- Round-off (rounding) error 舍入错误: numbers with decimals (real numbers) can only be approximated, because infinitely many real values must map onto finitely many bit patterns.
All data – text, images, sound – is ultimately encoded as binary. An image is a grid of pixels 像素, each stored as numbers for its colors; sound is stored as numbers sampled many times per second.
ExploreConvert between binary and decimal
Computers store numbers in binary (base 2). Each bit is a power of two; add the place values of the 1-bits to read the decimal number.
Vocabulary TrainEnglish Chinese Pinyin bits 位 wèi byte 字节 zì jié binary 二进制 èr jìn zhì decimal 十进制 shí jìn zhì Overflow error 溢出错误 yì chū cuò wù Round-off (rounding) error 舍入错误 shě rù cuò wù pixels 像素 xiàng sù 2.2
Data Compression
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.DAT-1.D
Compare data compression algorithms to determine which is best in a particular context. [Skill 1.D]- DAT-1.D.1 Data compression can reduce the size (number of bits) of transmitted or stored data.
- DAT-1.D.2 Fewer bits does not necessarily mean less information.
- DAT-1.D.3 The amount of size reduction from compression depends on both the amount of redundancy in the original data representation and the compression algorithm applied.
- DAT-1.D.4 Lossless data compression algorithms can usually reduce the number of bits stored or transmitted while guaranteeing complete reconstruction of the original data.
- 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.
Source: College Board AP Course and Exam Description
Compression 压缩 reduces the number of bits needed to store or send data. Two kinds:
Compression methods: lossless versus lossy, with common examples- Lossless compression 无损压缩 lets you restore the exact original data (used for text and programs, where every bit matters).
- Lossy compression 有损压缩 throws away some data to shrink the size further (used for photos, music, video, where a small quality loss is acceptable).
Choosing between them trades size against fidelity: lossless keeps everything but saves less; lossy saves more but loses detail permanently. Prefer lossless when the data must be exact.
ExploreCompress a run of repeats
Run-length encoding is a lossless compression: a long run of the same symbol is replaced by the symbol and a count, shrinking the data with no information lost.
Vocabulary TrainEnglish Chinese Pinyin Compression 压缩 yā suō Lossless compression 无损压缩 wú sǔn yā suō Lossy compression 有损压缩 yǒu sǔn yā suō 2.3
Extracting Information from Data
Syllabus
Enduring Understanding Learning Objective Essential Knowledge DAT-2
Programs can be used to process data, which allows users to discover information and create new knowledge.DAT-2.A
Describe what information can be extracted from data. [Skill 5.B]- DAT-2.A.1 Information is the collection of facts and patterns extracted from data.
- DAT-2.A.2 Data provide opportunities for identifying trends, making connections, and addressing problems.
- DAT-2.A.3 Digitally processed data may show correlation between variables. A correlation found in data does not necessarily indicate that a causal relationship exists. Additional research is needed to understand the exact nature of the relationship.
- 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 variety of sources to formulate a conclusion.
DAT-2.B
Describe what information can be extracted from metadata. [Skill 5.B]- DAT-2.B.1 Metadata are data about data. For example, the piece of data may be an image, while the 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
Identify the challenges associated with processing data. [Skill 5.D]- DAT-2.C.1 The ability to process data depends on the capabilities of the users and their tools.
- 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 system affects how data sets can be processed and stored.
Source: College Board AP Course and Exam Description
Data 数据 becomes useful when we extract information 信息 from it – patterns, trends, and answers to questions. Large data sets can reveal correlations a small one cannot, but data must be cleaned (fixing errors and inconsistencies) and often transformed or filtered first. A correlation 相关性 between two things does not prove that one causes the other – a key caution. Metadata 元数据 (data about data, like a photo's date and location) helps organize and search large collections.
Vocabulary TrainEnglish Chinese Pinyin Data 数据 shù jù information 信息 xìn xī correlation 相关性 xiāng guān xìng Metadata 元数据 yuán shù jù 2.4
Using Programs with Data
Syllabus
Enduring Understanding Learning Objective Essential Knowledge DAT-2
Programs can be used to process data, which allows users to discover information and create new knowledge.DAT-2.D
Extract information from data using a program. [Skill 2.B]- DAT-2.D.1 Programs can be used to process data to acquire information.
- DAT-2.D.2 Tables, diagrams, text, and other visual tools can be used to communicate insight and knowledge gained from data.
- 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
Explain how programs can be used to gain insight and knowledge from data. [Skill 5.B]- DAT-2.E.1 Programs are used in an iterative and interactive way when processing information 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.
Source: College Board AP Course and Exam Description
Programs process data at scales humans cannot. Common operations are filtering 过滤 (keeping only rows that meet a condition), cleaning (removing errors), and visualizing 可视化 (charts and graphs that make patterns visible). Combining data from multiple sources can reveal more, but raises privacy 隐私 concerns. Interactive tools and visualizations let people explore data and draw their own conclusions.
Exam skill: be able to explain how a program helps find information in a large data set, and why correlation shown in the data does not establish causation.
Vocabulary TrainEnglish Chinese Pinyin filtering 过滤 guò lǜ visualizing 可视化 kě shì huà privacy 隐私 yǐn sī 2.4
Exam tips
- Convert confidently between binary, decimal, and (where asked) hexadecimal — practise until it is quick.
- Remember a bit is one binary digit and a byte is 8 bits; $n$ bits represent $2^n$ values.
- Explain that all data — numbers, text, images, sound — is stored as binary, and that finite bits cause overflow and round-off.
- Distinguish lossless from lossy compression and when each is appropriate.
- Show the analog-to-digital idea: sampling turns a continuous signal into discrete values.
-
3 Algorithms and Programming
Code below uses the AP CSP pseudocode – the exam's language-neutral reference. Assignment is written
a ← expression, and list indices start at 1.3.1
Variables and Assignments
Syllabus
Enduring Understanding Learning Objective Essential Knowledge AAP-1
To find specific solutions to generalizable problems, programmers represent and organize data in multiple ways.AAP-1.A
Represent a value with a variable. [Skill 3.A]- AAP-1.A.1 A variable is an abstraction inside a program that can hold a value. Each variable has associated data storage that represents one value at a time, but that value can be a list or other collection that in turn contains multiple values.
- AAP-1.A.2 Using meaningful variable names helps with the readability of program code and understanding of what values are represented by the variables.
- 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
Determine the value of a variable as a result of an assignment. [Skill 4.B]-
AAP-1.B.1 The assignment operator allows a program to change the value represented by a variable.
-
AAP-1.B.2 The exam reference sheet provides the "$\leftarrow$" operator to use for assignment. For example,
Text:
a ← expressionBlock:
a ← expressionevaluates
expressionand then assigns a copy of the result to the variablea. -
AAP-1.B.3 The value stored in a variable will be the most recent value assigned. For example:
a ← 1b ← aa ← 2display(b)still displays
1.
Source: College Board AP Course and Exam Description
A variable 变量 is a named place that holds a value. The assignment 赋值 operator stores the value on the right into the variable on the left:
A variable is a named store whose value can changea ← 5 b ← a + 3 // b is now 8A variable holds one value at a time; assigning again replaces it. Variables let a program store input, remember results, and reuse them.
ExploreWatch a variable hold and change its value
A variable is a named box that stores one value at a time. An assignment copies a value into the box; assigning again overwrites whatever was there.
Vocabulary TrainEnglish Chinese Pinyin variable 变量 biàn liàng assignment 赋值 fù zhí 3.2
Data Abstraction
Syllabus
Enduring Understanding Learning Objective Essential Knowledge AAP-1
To find specific solutions to generalizable problems, programmers represent and organize data in multiple ways.AAP-1.C
Represent a list or string using a variable. [Skill 3.A]-
AAP-1.C.1 A list is an ordered sequence of elements. For example,
[value1, value2, value3, ...]describes a list where
value1is the first element,value2is the second element,value3is the third element, and so on. -
AAP-1.C.2 An element is an individual value in a list that is assigned a unique index.
-
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 A string is an ordered sequence of characters.
AAP-1.D
For data abstraction:
a. Develop data abstraction using lists to store multiple elements. [Skill 3.B]
b. Explain how the use of data abstraction manages complexity in program code. [Skill 3.C]-
AAP-1.D.1 Data abstraction provides a separation between the abstract properties of a data type and the concrete details of its representation.
-
AAP-1.D.2 Data abstractions manage complexity in programs by giving a collection of data a name without referencing the specific details of the 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.
- Exclusion statement (EK AAP-1.D.6): 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 ← value1, value2, value3creates a new list that contains the values
value1,value2,value3, and...at indices1,2,3, and...respectively and assigns it toaList. -
Text:
aList ← []Block:
aList ←(empty)creates a new empty list and assigns it to
aList. -
Text:
aList ← bListBlock:
aList ← bListassigns a copy of the list
bListto the listaList. For example, ifbListcontains[20, 40, 60], thenaListwill 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.
Source: College Board AP Course and Exam Description
Data abstraction 数据抽象 lets you manage complexity by giving a single name to a collection of data – for example, a list rather than dozens of separate variables. It hides detail: you use the named collection without worrying about how it is stored. Lists (below) are the course's main data abstraction.
Vocabulary TrainEnglish Chinese Pinyin Data abstraction 数据抽象 shù jù chōu xiàng 3.3
Mathematical Expressions
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-2.A
Express an algorithm that uses sequencing without using a programming language. [Skill 2.A]- AAP-2.A.1 An algorithm is a finite set of instructions that accomplish a specific task.
- AAP-2.A.2 Beyond visual and textual programming languages, algorithms can be expressed in a variety of ways, such as natural language, diagrams, and pseudocode.
- AAP-2.A.3 Algorithms executed by programs are implemented using programming languages.
- AAP-2.A.4 Every algorithm can be constructed using combinations of sequencing, selection, and iteration.
AAP-2.B
Represent a step-by-step algorithmic process using sequential code statements. [Skill 2.B]- AAP-2.B.1 Sequencing is the application of each step of an algorithm in the order in which the code statements are given.
- 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 expressing an algorithm in a programming language.
AAP-2.C
Evaluate expressions that use arithmetic operators. [Skill 4.B]-
AAP-2.C.1 Arithmetic operators are part of most 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 whenais divided byb. Assume thatais an integer greater than or equal to0andbis an integer greater than0. For example,17 MOD 5evaluates to2. -
AAP-2.C.3 The exam reference sheet provides the arithmetic operators
+,-,*,/, andMOD.Text and Block:
a + ba - ba * ba / ba MOD b
These are used to perform arithmetic on
aandb. For example,17 / 5evaluates to3.4. -
AAP-2.C.4 The order of operations used in mathematics applies when evaluating expressions. The
MODoperator has the same precedence as the*and/operators.
Source: College Board AP Course and Exam Description
Programs compute with the operators
+,-,*,/, andMOD(the remainder 余数 of a division, e.g.17 MOD 5is2). Expressions follow the usual order of operations.MODis especially useful for testing divisibility (n MOD 2 = 0meansnis even) and for wrapping values around a range.ExploreEvaluate an expression step by step
An expression is evaluated with order of operations: multiplication and division happen before addition and subtraction, left to right.
Vocabulary TrainEnglish Chinese Pinyin remainder 余数 yú shù 3.4
Strings
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-2.D
Evaluate expressions that manipulate strings. [Skill 4.B]- AAP-2.D.1 String concatenation joins together two or more strings end-to-end to make a new string.
- AAP-2.D.2 A substring is part of an existing string.
Source: College Board AP Course and Exam Description
A string 字符串 is an ordered sequence of characters, like
"hello". Programs join strings (concatenation 拼接) and find their length. Strings represent text – names, messages, sequences – and are a common program input and output.Vocabulary TrainEnglish Chinese Pinyin string 字符串 zì fú chuàn concatenation 拼接 pīn jiē 3.5
Boolean Expressions
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-2.E
For relationships between two variables, expressions, or values:
a. Write expressions using relational operators. [Skill 2.B]
b. Evaluate expressions that use relational operators. [Skill 4.B]-
AAP-2.E.1 A Boolean value is either true or false.
-
AAP-2.E.2 The exam reference sheet provides the following relational operators:
=,≠,>,<,≥, and≤.Text and Block:
a = ba ≠ ba > ba < ba ≥ ba ≤ 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 = bevaluates totrueifaandbare equal; otherwise, it evaluates tofalse.
AAP-2.F
For relationships between Boolean values:
a. Write expressions using logical operators. [Skill 2.B]
b. Evaluate expressions that use logic operators. [Skill 4.B]-
AAP-2.F.1 The exam reference sheet provides the logical operators
NOT,AND, andOR, which evaluate to a Boolean value. -
AAP-2.F.2 The exam reference sheet provides
Text:
NOT conditionBlock:
NOT conditionwhich evaluates to
trueifconditionisfalse; otherwise it evaluates tofalse. -
AAP-2.F.3 The exam reference sheet provides
Text:
condition1 AND condition2Block:
condition1 AND condition2which evaluates to
trueif bothcondition1andcondition2aretrue; otherwise it evaluates tofalse. -
AAP-2.F.4 The exam reference sheet provides
Text:
condition1 OR condition2Block:
condition1 OR condition2which evaluates to
trueifcondition1istrueor ifcondition2istrueor if bothcondition1andcondition2aretrue; otherwise it evaluates tofalse. -
AAP-2.F.5 The operand for a logical operator is either a Boolean expression or a single Boolean value.
Source: College Board AP Course and Exam Description
A Boolean expression 布尔表达式 evaluates to
trueorfalse. It uses relational operators (=,≠,<,>,≤,≥) and logical operatorsNOT,AND,OR:
The three families of operators: arithmetic, relational, and logicalNOTreverses a value,ANDis true only when both sides are true,ORis true when at least one side is true.
These conditions drive every decision and loop.
ExploreTry the OR truth table
A Boolean expression is either true (1) or false (0). OR is true when at least one input is true; flip the inputs to see every case.
Vocabulary TrainEnglish Chinese Pinyin Boolean expression 布尔表达式 bù ěr biǎo dá shì 3.6
Conditionals
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-2.G
Express an algorithm that uses selection without using a programming language. [Skill 2.A]- AAP-2.G.1 Selection determines which parts of an algorithm are executed based on a condition being
trueorfalse.
AAP-2.H
For selection:
a. Write conditional statements. [Skill 2.B]
b. Determine the result of conditional statements. [Skill 4.B]-
AAP-2.H.1 Conditional statements, or "if-statements," affect the sequential flow of control by executing different statements based on the value of a Boolean expression.
-
AAP-2.H.2 The exam reference sheet provides
Text:
IF(condition){<block of statements>}Block:
IF conditionblock of statementsin which the code in
block of statementsis executed if the Boolean expressionconditionevaluates totrue; no action is taken ifconditionevaluates tofalse. -
AAP-2.H.3 The exam reference sheet provides
Text:
IF(condition){<first block of statements>}ELSE{<second block of statements>}Block:
IF conditionfirst block of statementsELSEsecond block of statementsin which the code in
first block of statementsis executed if the Boolean expressionconditionevaluates totrue; otherwise, the code insecond block of statementsis executed.
Source: College Board AP Course and Exam Description
A conditional (selection) 条件语句 chooses which code to run.
IFruns a block only when its condition is true;ELSEgives an alternative:
Selection chooses between paths based on a conditionIF (score ≥ 60) { DISPLAY("Pass") } ELSE { DISPLAY("Fail") }ExploreFollow an if / else decision
A conditional runs one branch or another depending on whether its condition is true. Slide the value across the threshold and watch which branch is taken.
Vocabulary TrainEnglish Chinese Pinyin conditional (selection) 条件语句 tiáo jiàn yǔ jù 3.7
Nested Conditionals
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-2.I
For nested selection:
a. Write nested conditional statements. [Skill 2.B]
b. Determine the result of nested conditional statements. [Skill 4.B]- AAP-2.I.1 Nested conditional statements consist of conditional statements within conditional statements.
Source: College Board AP Course and Exam Description
A nested conditional 嵌套条件 places one
IFinside another (or chainsELSE IF) to choose among more than two paths. Only the first matching branch runs:IF (g ≥ 90) { grade ← "A" } ELSE IF (g ≥ 80) { grade ← "B" } ELSE { grade ← "C" }Vocabulary TrainEnglish Chinese Pinyin nested conditional 嵌套条件 qiàn tào tiáo jiàn 3.8
Iteration
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-2.J
Express an algorithm that uses iteration without using a programming language. [Skill 2.A]- AAP-2.J.1 Iteration is a repeating portion of an algorithm. Iteration repeats a specified number of times or until a given condition is met.
AAP-2.K
For iteration:
a. Write iteration statements. [Skill 2.B]
b. Determine the result or side effect of iteration statements. [Skill 4.B]-
AAP-2.K.1 Iteration statements change the sequential flow of control by repeating a set of statements zero or more times, until a stopping condition is met.
-
AAP-2.K.2 The exam reference sheet provides
Text:
REPEAT n TIMES{<block of statements>}Block:
REPEAT n TIMESblock of statementsin which the
block of statementsis executedntimes. -
AAP-2.K.3 The exam reference sheet provides
Text:
REPEAT UNTIL(condition){<block of statements>}Block:
REPEAT UNTIL conditionblock of statementsin which the code in
block of statementsis repeated until the Boolean expressionconditionevaluates totrue. -
AAP-2.K.4 In
REPEAT UNTIL(condition)iteration, an infinite loop occurs when the ending condition will never evaluate totrue. -
AAP-2.K.5 In
REPEAT UNTIL(condition)iteration, if the conditional evaluates totrueinitially, the loop body is not executed at all, due to the condition being checked before the loop.
Source: College Board AP Course and Exam Description
Iteration (a loop) 迭代 repeats instructions. AP pseudocode has two forms:
A pre-condition (WHILE) loop tests before the body, so it may run zero timesREPEAT 5 TIMES // a fixed count { DISPLAY("hi") } REPEAT UNTIL (found) // until a condition becomes true { ... }A loop that never meets its stopping condition is an infinite loop 无限循环.
ExploreTrace a loop one pass at a time
A loop repeats a block while its counter runs through a range. Step through to watch the counter and the running total update each pass.
Vocabulary TrainEnglish Chinese Pinyin Iteration (a loop) 迭代 dié dài infinite loop 无限循环 wú xiàn xún huán 3.9
Developing Algorithms
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-2.L
Compare multiple algorithms to determine if they yield the same side effect or result. [Skill 1.D]- AAP-2.L.1 Algorithms can be written in different ways and still accomplish the same tasks.
- AAP-2.L.2 Algorithms that appear similar can yield different side effects or results.
- AAP-2.L.3 Some conditional statements can be written as equivalent Boolean expressions.
- AAP-2.L.4 Some Boolean expressions can be written as equivalent conditional statements.
- AAP-2.L.5 Different algorithms can be developed or used to solve the same problem.
AAP-2.M
For algorithms:
a. Create algorithms. [Skill 2.A]
b. Combine and modify existing algorithms. [Skill 2.B]- AAP-2.M.1 Algorithms can be created from an idea, by combining existing algorithms, or by modifying existing algorithms.
- 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.
Source: College Board AP Course and Exam Description
An algorithm 算法 is a finite sequence of steps that solves a problem, built from sequencing, selection, and iteration. Different algorithms can solve the same problem, and you should be able to combine and modify existing algorithms (for example, count the values in a list that meet a condition, or find the largest). Trace an algorithm by hand to check it is correct.
A flowchart lays out an algorithm using the standard symbolsVocabulary TrainEnglish Chinese Pinyin algorithm 算法 suàn fǎ 3.10
Lists
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-2.N
For list operations:
a. Write expressions that use list indexing and list procedures. [Skill 2.B]
b. Evaluate expressions that use list indexing and list procedures. [Skill 4.B]- AAP-2.N.1 The exam reference sheet provides basic operations on lists, including:
-
accessing an element by index
Text:
aList[i]Block:
aList iaccesses the element of
aListat indexi. The first element ofaListis at index1and is accessed using the notationaList[1]. -
assigning a value of an element of a list to a variable
Text:
x ← aList[i]Block:
x ← aList iassigns the value of
aList[i]to the variablex. -
assigning a value to an element of a list
Text:
aList[i] ← xBlock:
aList i ← xassigns the value of
xtoaList[i].Text:
aList[i] ← aList[j]Block:
aList i ← aList jassigns the value of
aList[j]toaList[i]. -
inserting elements at a given index
Text:
INSERT(aList, i, value)Block:
INSERT aList, i, valueshifts to the right any values in
aListat indices greater than or equal toi. The length of the list is increased by 1, andvalueis placed at indexiinaList. -
adding elements to the end of the list
Text:
APPEND(aList, value)Block:
APPEND aList, valueincreases the length of
aListby 1, andvalueis placed at the end ofaList. -
removing elements
Text:
REMOVE(aList, i)Block:
REMOVE aList, iremoves the item at index
iinaListand shifts to the left any values at indices greater thani. The length ofaListis decreased by 1. -
determining the length of a list
Text:
LENGTH(aList)Block:
LENGTH aListevaluates 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.
AAP-2.O
For algorithms involving elements of a list:
a. Write iteration statements to traverse a list. [Skill 2.B]
b. Determine the result of an algorithm that includes list traversals. [Skill 4.B]-
AAP-2.O.1 Traversing a list can be a complete traversal, where all elements in the list are accessed, or a partial traversal, where only a portion of elements are accessed.
- Exclusion statement (EK AAP-2.O.1): Traversing multiple lists at the same time using 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:
FOR EACH item IN aListblock of statementsThe variable
itemis assigned the value of each element ofaListsequentially, in order, from the first element to the last element. The code inblock of statementsis executed once for each assignment ofitem. -
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.
Source: College Board AP Course and Exam Description
A list 列表 is an ordered collection of values under one name, the course's key data abstraction. AP pseudocode indexes from 1:
A list holds many values in one variable, each found by its indexscores ← [88, 74, 95] DISPLAY(scores[1]) // 88 scores[2] ← 80 // replace the 2nd value APPEND(scores, 60) // add to the end INSERT(scores, 1, 100) // insert at index 1 REMOVE(scores, 3) // delete the 3rd element LENGTH(scores) // how many elementsTraverse a list with a loop to sum, count, search, or find a maximum:
FOR EACH x IN scores { total ← total + x }Vocabulary TrainEnglish Chinese Pinyin list 列表 liè biǎo 3.11
Binary Search
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-2.P
For binary search algorithms:
a. Determine the number of iterations required to find a value in a data set. [Skill 1.D]
b. Explain the requirements necessary to complete a binary search. [Skill 1.A]- AAP-2.P.1 The binary search algorithm starts at the middle of a sorted data set of numbers and eliminates half of the data; this process repeats until the desired value is found or all elements have been eliminated.
- Exclusion statement (EK AAP-2.P.1): Specific implementations of the binary search are outside 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 search when applied to sorted data.
Source: College Board AP Course and Exam Description
Binary search 二分搜索 finds a value in a sorted list far faster than checking each element. It looks at the middle element, then discards the half that cannot contain the target, repeating until found. Each step halves the search space, so a list of $n$ items takes about $\log_2 n$ steps. It requires the data to be sorted first.
Binary search halves the range at each step (the list must be sorted)Worked example. Searching a sorted list of $8$ items, binary search halves the range each step: $8\rightarrow4\rightarrow2\rightarrow1$, at most $3$ comparisons ($\log_2 8=3$), whereas a linear search could take up to $8$. The advantage grows explosively: about $1{,}000$ items need only $\approx10$ binary-search steps (but up to $1{,}000$ linear ones), and $1{,}000{,}000$ items need just $\approx20$. Halving is what makes it a reasonable-time algorithm.
Vocabulary TrainEnglish Chinese Pinyin Binary search 二分搜索 èr fēn sōu suǒ 3.12
Calling Procedures
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-3.A
For procedure calls:
a. Write statements to call procedures. [Skill 3.B]
b. Determine the result or effect of a procedure call. [Skill 4.B]-
AAP-3.A.1 A procedure is a named group of programming instructions that may have parameters and return values.
-
AAP-3.A.2 Procedures are referred to by different names, such as method or function, depending on the programming language.
-
AAP-3.A.3 Parameters are input variables of a procedure. Arguments specify the values of the parameters when a procedure is called.
-
AAP-3.A.4 A procedure call interrupts the sequential execution of statements, causing the program to execute the statements within the procedure before continuing. Once the last statement in the procedure (or a return statement) has executed, flow of control is returned to the point immediately following where the procedure was called.
-
AAP-3.A.5 The exam reference sheet provides
procName(arg1, arg2, ...)as a way to call
Text:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>}Block:
PROCEDURE procName parameter1, parameter2,...block of statementswhich takes zero or more arguments;
arg1is assigned toparameter1,arg2is assigned toparameter2, and so on. -
AAP-3.A.6 The exam reference sheet provides the procedure
Text:
DISPLAY(expression)Block:
DISPLAY expressionto display the value of
expression, followed by a space. -
AAP-3.A.7 The exam reference sheet provides the
Text:
RETURN(expression)Block:
RETURN expressionstatement, which is used to return the flow of control to the point where the procedure was called and to return the value of
expression. -
AAP-3.A.8 The exam reference sheet provides
result ← procName(arg1, arg2, ...)to assign to
resultthe "value of the procedure" being returned by callingText:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>RETURN(expression)}Block:
PROCEDURE procName parameter1, parameter2,...block of statementsRETURN expression -
AAP-3.A.9 The exam reference sheet provides procedure
Text:
INPUT()Block:
INPUTwhich accepts a value from the user and returns the input value.
Source: College Board AP Course and Exam Description
A procedure (function) 过程 is a named, reusable block of code. Calling it runs its code with the arguments you supply, and it may return a value:
sum ← Add(3, 4) // call, passing 3 and 4Procedures let you use code without knowing its inner workings – procedural abstraction 过程抽象.
Vocabulary TrainEnglish Chinese Pinyin procedure (function) 过程 guò chéng procedural abstraction 过程抽象 guò chéng chōu xiàng 3.13
Developing Procedures
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-3.B
Explain how the use of procedural abstraction manages complexity in a program. [Skill 3.C]- AAP-3.B.1 One common type of abstraction is procedural abstraction, which provides a name for a process and allows a procedure to be used only knowing what it does, not how it does it.
- AAP-3.B.2 Procedural abstraction allows a solution to a large problem to be based on the solutions of smaller subproblems. This is accomplished by creating procedures to solve each of the subproblems.
- AAP-3.B.3 The subdivision of a computer program into separate subprograms is called modularity.
- AAP-3.B.4 A procedural abstraction may extract shared features to generalize functionality instead of duplicating code. This allows for program code reuse, which helps manage complexity.
- AAP-3.B.5 Using parameters allows procedures to be generalized, enabling the procedures to be reused with a range of input values or arguments.
- 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 of the change as long as what the procedure does is preserved.
AAP-3.C
Develop procedural abstractions to manage complexity in a program by writing procedures. [Skill 3.B]-
AAP-3.C.1 The exam reference sheet provides
Text:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>}Block:
PROCEDURE procName parameter1, parameter2,...block of statementswhich is used to define a procedure that takes zero or more arguments. The procedure contains
block of statements. -
AAP-3.C.2 The exam reference sheet provides
Text:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>RETURN(expression)}Block:
PROCEDURE procName parameter1, parameter2,...block of statementsRETURN expressionwhich is used to define a procedure that takes zero or more arguments. The procedure contains
block of statementsand returns the value ofexpression. TheRETURNstatement may appear at any point inside the procedure and causes an immediate return from the procedure back to the calling statement.
Source: College Board AP Course and Exam Description
You define a procedure with a name, parameters (inputs), and a body, and optionally
RETURNa result:
Decomposing a program into procedures and sub-proceduresPROCEDURE Add(a, b) { RETURN(a + b) }Writing your own procedures reduces repetition, breaks a big problem into named pieces, and makes programs readable and easier to test – the essence of abstraction 抽象.
Vocabulary TrainEnglish Chinese Pinyin abstraction 抽象 chōu xiàng 3.14
Libraries
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-3.D
Select appropriate libraries or existing code segments to use in creating new programs. [Skill 2.B]- AAP-3.D.1 A software library contains procedures that may be used in creating new programs.
- AAP-3.D.2 Existing code segments can come from internal or external sources, such as libraries or previously written code.
- AAP-3.D.3 The use of libraries simplifies the task of creating complex programs.
- AAP-3.D.4 Application program interfaces (APIs) are specifications for how the procedures in a library behave and can be used.
- AAP-3.D.5 Documentation for an API/library is necessary in understanding the behaviors provided by the API/library and how to use them.
Source: College Board AP Course and Exam Description
A library 库 is a collection of ready-made procedures that others can reuse. An API (Application Program Interface) 应用程序接口 documents what each procedure does, its parameters, and its result – so you can use it without seeing its code. Libraries save time and let you build on existing, tested work.
Vocabulary TrainEnglish Chinese Pinyin library 库 kù Interface 应用程序接口 yìng yòng chéng xù jiē kǒu 3.15
Random Values
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-3.E
For generating random values:
a. Write expressions to generate possible values. [Skill 2.B]
b. Evaluate expressions to determine the possible results. [Skill 4.B]-
AAP-3.E.1 The exam reference sheet provides
Text:
RANDOM(a, b)Block:
RANDOM a, bwhich generates and returns a random integer from
atob, inclusive. Each result is equally likely to occur. For example,RANDOM(1, 3)could return1,2, or3. -
AAP-3.E.2 Using random number generation in a program means each execution may produce a different result.
Source: College Board AP Course and Exam Description
RANDOM(a, b)returns a random integer fromatob(inclusive), letting a program produce unpredictable results – for games, sampling, or simulations. Each call may give a different value, so a program using randomness behaves differently each run.3.16
Simulations
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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.AAP-3.F
For simulations:
a. Explain how computers can be used to represent real-world phenomena or outcomes. [Skill 1.A]
b. Compare simulations with real-world contexts. [Skill 1.D]- AAP-3.F.1 Simulations are abstractions of more complex objects or phenomena for a specific purpose.
- AAP-3.F.2 A simulation is a representation that uses varying sets of values to reflect the changing state of a phenomenon.
- AAP-3.F.3 Simulations often mimic real-world events with the purpose of drawing inferences, allowing investigation of a phenomenon without the constraints of the real world.
- AAP-3.F.4 The process of developing an abstract simulation involves removing specific details or simplifying functionality.
- AAP-3.F.5 Simulations can contain bias derived from the choices of real-world elements that were included or excluded.
- AAP-3.F.6 Simulations are most useful when real-world events are impractical for experiments (e.g., too big, too small, too fast, too slow, too expensive, or too dangerous).
- 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.
Source: College Board AP Course and Exam Description
A simulation 模拟 is a program that models a real-world process to study it safely and cheaply. Simulations simplify reality (they leave out detail) and often use randomness to imitate chance events. They let you test scenarios that would be too costly, slow, or dangerous in real life – but their results are only as good as their assumptions.
Vocabulary TrainEnglish Chinese Pinyin simulation 模拟 mó nǐ 3.17
Algorithmic Efficiency
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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
For determining the efficiency of an algorithm:
a. Explain the difference between algorithms that run in reasonable time and those that do not. [Skill 1.D]
b. Identify situations where a heuristic solution may be more appropriate. [Skill 1.D]- AAP-4.A.1 A problem is a general description of a task that can (or cannot) be solved algorithmically. An instance of a problem also includes specific input. For example, sorting is a problem; sorting the list (2,3,1,7) is an instance of the problem.
- AAP-4.A.2 A decision problem is a problem with a yes/no answer (e.g., is there a path from A to B?). An optimization problem is a problem with the goal of finding the "best" solution among many (e.g., what is the shortest path from A to B?).
- AAP-4.A.3 Efficiency is an estimation of the amount of computational resources used by an algorithm. Efficiency is typically expressed as a function of the size of the input.
- Exclusion statement (EK AAP-4.A.3): Formal analysis of algorithms (Big-O) and formal reasoning using mathematical formulas are outside the scope of this course and the AP Exam.
- AAP-4.A.4 An algorithm's efficiency is determined through formal or mathematical reasoning.
- AAP-4.A.5 An algorithm's efficiency can be informally measured by determining the number of times a statement or group of statements executes.
- AAP-4.A.6 Different correct algorithms for the same problem can have different efficiencies.
- AAP-4.A.7 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.
- Exclusion statement (AAP-4.A.9): Specific heuristic solutions are outside the scope of this course and the AP Exam.
Source: College Board AP Course and Exam Description
Efficiency 效率 is how much time (or memory) an algorithm needs as its input grows. A reasonable-time algorithm's work grows like a polynomial of the input size (e.g. linear or quadratic); an unreasonable-time algorithm grows far faster (e.g. doubling with each added item), becoming impractical for large inputs. A faster algorithm can make a previously impossible problem solvable. Sometimes an exact answer takes too long, so a heuristic 启发式 – an approach that finds a good-enough answer quickly – is used instead.
How the running time of an algorithm grows with the input size nVocabulary TrainEnglish Chinese Pinyin Efficiency 效率 xiào lǜ heuristic 启发式 qǐ fā shì 3.18
Undecidable Problems
Syllabus
Enduring Understanding Learning Objective Essential Knowledge 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
Explain the existence of undecidable problems in computer science. [Skill 1.A]- AAP-4.B.1 A decidable problem is a decision problem for which an algorithm can be written to produce a correct output for all 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.
- Exclusion statement (EK AAP-4.B.2): Determining whether a given problem is undecidable is outside the scope of this course and the AP Exam.
- 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.
Source: College Board AP Course and Exam Description
Some problems are undecidable 不可判定: no algorithm can solve every case of them with a correct yes/no answer. This is a fundamental limit of computing – not a matter of needing a faster computer, but a proof that no such algorithm can exist.
Exam skill: be able to determine a code segment's result by tracing it, compare two algorithms' efficiency (reasonable vs unreasonable time), and recognize procedural and data abstraction in a program.
Vocabulary TrainEnglish Chinese Pinyin undecidable 不可判定 bù kě pàn dìng 3.18
Exam tips
- Know a variable is a named store for a value and trace how assignment updates it step by step.
- Read the AP pseudocode carefully —
a <- expressionassigns, and lists are 1-indexed on the exam reference sheet. - Distinguish a variable from a list (a collection accessed by index) and use list operations correctly.
- Evaluate expressions with the right precedence and boolean logic (
AND,OR,NOT). - Pick clear, meaningful variable names — the written tasks reward readable code.
-
4 Computer Systems and Networks
4.1
The Internet
Syllabus
Enduring Understanding Learning Objective Essential Knowledge CSN-1
Computer systems and networks facilitate the transfer of data.CSN-1.A
Explain how computing devices work together in a network. [Skill 5.A]- CSN-1.A.1 A computing device is a physical artifact that can run a program. Some examples include 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.
- 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
Explain how the Internet works. [Skill 5.A]- CSN-1.B.1 The Internet is a computer network 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.
CSN-1.C
Explain how data are sent through the Internet via packets. [Skill 5.A]- CSN-1.C.1 Information is passed through the Internet as a data stream. Data streams contain chunks of 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
Describe the differences between the Internet and the World Wide Web. [Skill 5.A]- CSN-1.D.1 The World Wide Web is a system of linked pages, programs, and files.
- 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.
Source: College Board AP Course and Exam Description
The Internet 互联网 is a global network of networks. Data travels as packets 数据包 – small chunks that are sent separately and reassembled at the destination. Two ideas make it work at scale:
The internet is the worldwide network; the web is one service running on it- Protocols 协议 are agreed rules for communication. IP (Internet Protocol) addresses and routes packets; TCP reassembles them in order and re-requests lost ones; HTTP carries web pages; DNS translates a name like
example.cominto an IP address. - Redundancy 冗余 and routing: there are many possible paths between two points, so if one path fails, packets take another. This makes the Internet fault-tolerant 容错.
The Internet is designed to be open and scalable – built on standards anyone can use, so it keeps working as billions of devices join. Bandwidth 带宽 is the amount of data a connection can carry per second.
ExploreHow data crosses the Internet in packets
The Internet breaks a message into numbered packets, each addressed and routed independently (often by different paths), then reassembled at the destination. That design makes it fault-tolerant — if one route fails, packets take another.
Vocabulary TrainEnglish Chinese Pinyin Internet 互联网 hù lián wǎng packets 数据包 shù jù bāo Protocols 协议 xié yì Redundancy 冗余 rǒng yú fault-tolerant 容错 róng cuò Bandwidth 带宽 dài kuān 4.2
Fault Tolerance
Syllabus
Enduring Understanding Learning Objective Essential Knowledge CSN-1
Computer systems and networks facilitate the transfer of data.CSN-1.E
For fault-tolerant systems, like the Internet:
a. Describe the benefits of fault tolerance. [Skill 1.D]
b. Explain how a given system is fault-tolerant. [Skill 5.A]
c. Identify vulnerabilities to failure in a system. [Skill 1.D]- CSN-1.E.1 The Internet has been engineered to be fault-tolerant, with abstractions for routing and transmitting data.
- CSN-1.E.2 Redundancy is the inclusion of extra components that can be used to mitigate failure of a system if other components fail.
- CSN-1.E.3 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 devices and more people.
Source: College Board AP Course and Exam Description
A system is fault-tolerant if it keeps working even when part of it fails. The Internet achieves this through redundant connections: because packets can be routed along multiple paths, the failure of one router or cable does not stop communication – traffic simply reroutes. Fault tolerance costs extra resources (the redundant paths) but greatly improves reliability 可靠性. A single path with no backup is not fault-tolerant.
Packet switching sends packets by independent routes, so the network tolerates a failed linkVocabulary TrainEnglish Chinese Pinyin reliability 可靠性 kě kào xìng 4.3
Parallel and Distributed Computing
Syllabus
Enduring Understanding Learning Objective Essential Knowledge CSN-2
Parallel and distributed computing leverage multiple computers to more quickly solve complex problems or process large data sets.CSN-2.A
For sequential, parallel, and distributed computing:
a. Compare problem solutions. [Skill 1.D]
b. Determine the efficiency of solutions. [Skill 1.D]- CSN-2.A.1 Sequential computing is a computational model in which operations are performed in order one at a time.
- CSN-2.A.2 Parallel computing is a computational model where the program is broken into multiple smaller sequential computing operations, some of which are performed simultaneously.
- 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
Describe benefits and challenges of parallel and distributed computing. [Skill 1.D]- CSN-2.B.1 Parallel computing consists of a parallel portion and a sequential portion.
- 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.
Source: College Board AP Course and Exam Description
- Sequential computing 顺序计算 runs one operation at a time.
- Parallel computing 并行计算 splits a task into parts that run at the same time on multiple processors, finishing faster.
- Distributed computing 分布式计算 uses many computers connected by a network to work on one problem – essential for problems too big for a single machine.
Parallel computing: many processors work at the same timeA parallel solution's speedup 加速比 is the sequential time divided by the parallel time. Speedup is limited: parts that must run in sequence cannot be sped up by adding processors, so doubling the processors rarely doubles the speed.
Worked example. A task has a part that must run sequentially, taking $40$ seconds, plus a parallelizable part that takes $60$ seconds on one processor – so on a single processor the whole task takes $40+60=100$ seconds. Spread the parallel part across $3$ processors and it takes $\tfrac{60}{3}=20$ seconds, so the total parallel time is $40+20=60$ seconds and the speedup is $\tfrac{100}{60}\approx1.67$. The $40$-second sequential part is a floor: even with infinitely many processors the task can never finish in under $40$ seconds.
Exam skill: given the times for the sequential and parallel portions of a task, be able to calculate the total parallel time and the speedup.
Vocabulary TrainEnglish Chinese Pinyin Sequential computing 顺序计算 shùn xù jì suàn Parallel computing 并行计算 bìng xíng jì suàn Distributed computing 分布式计算 fēn bù shì jì suàn speedup 加速比 jiā sù bǐ 4.3
Exam tips
- Describe how data travels in packets over a redundant, fault-tolerant network of independent routers.
- Know that protocols (IP, TCP, HTTP) are agreed rules, and that open standards let different systems interoperate.
- Explain scalability and how the Internet grows without central control.
- Contrast bandwidth (rate) with latency (delay), and describe the DNS name-to-address lookup.
- Discuss the digital divide and security basics (encryption, authentication) in plain terms.
-
5 Impact of Computing
5.1
Beneficial and Harmful Effects
Syllabus
Enduring Understanding Learning Objective Essential Knowledge IOC-1
While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.IOC-1.A
Explain how an effect of a computing innovation can be both beneficial and harmful. [Skill 5.C]- IOC-1.A.1 People create computing innovations.
- IOC-1.A.2 The way people complete tasks often changes to incorporate new computing innovations.
- IOC-1.A.3 Not every effect of a computing innovation is anticipated in advance.
- 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
Explain how a computing innovation can have an impact beyond its intended purpose. [Skill 5.C]- IOC-1.B.1 Computing innovations can be used in ways that their creators had not originally intended:
- The World Wide Web was originally intended 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.
Source: College Board AP Course and Exam Description
Every computing innovation can be used in ways that help and ways that harm – often the same technology does both. A social network connects people and can spread misinformation; automation raises productivity and can remove jobs. Effects are frequently unintended: creators cannot foresee every use. When you evaluate a computing innovation, weigh its benefits and harms on people and society, and remember that harms are not always deliberate.
Computing affects the public's wellbeing in several ways5.2
The Digital Divide
Syllabus
Enduring Understanding Learning Objective Essential Knowledge IOC-1
While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.IOC-1.C
Describe issues that contribute to the digital divide. [Skill 5.C]- IOC-1.C.1 Internet access varies between socioeconomic, geographic, and demographic characteristics, as well as between countries.
- IOC-1.C.2 The "digital divide" refers to differing access to computing devices and the Internet, based on socioeconomic, geographic, or demographic characteristics.
- IOC-1.C.3 The digital divide can affect both groups and individuals.
- 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.
Source: College Board AP Course and Exam Description
The digital divide 数字鸿沟 is the unequal access to computing and the Internet across groups – by income, geography, age, or country. Those with access gain education, jobs, and services; those without fall further behind. The divide is shaped by economic, social, and geographic factors, and efforts to close it (affordable devices, public access, infrastructure) aim to make computing's benefits fairer.
Vocabulary TrainEnglish Chinese Pinyin digital divide 数字鸿沟 shù zì hóng gōu 5.3
Computing Bias
Syllabus
Enduring Understanding Learning Objective Essential Knowledge IOC-1
While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.IOC-1.D
Explain how bias exists in computing innovations. [Skill 5.E]- IOC-1.D.1 Computing innovations can reflect existing human biases 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.
Source: College Board AP Course and Exam Description
Bias 偏见 can be built into computing systems – often unintentionally. If the data used to build a system reflects existing prejudice, or if the designers' assumptions are one-sided, the system can produce unfair results (for example, a hiring tool that favors one group). Bias can enter at every stage – data collection, design, and use – so systems should be tested for fairness across different groups. Recognizing that "the computer said so" is not the same as "fair" is an important habit.
Vocabulary TrainEnglish Chinese Pinyin Bias 偏见 piān jiàn 5.4
Crowdsourcing
Syllabus
Enduring Understanding Learning Objective Essential Knowledge IOC-1
While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.IOC-1.E
Explain how people participate in problem-solving processes at scale. [Skill 1.C]- IOC-1.E.1 Widespread access to information and public data facilitates the identification of problems, development of solutions, and dissemination of results.
- 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 connecting businesses or social causes with funding.
Source: College Board AP Course and Exam Description
Crowdsourcing 众包 obtains input, ideas, or funding from a large group of people, usually online. It harnesses the knowledge and effort of many – mapping projects, product reviews, citizen science, and crowdfunding all rely on it. The Internet makes crowdsourcing possible at a scale and speed never before achievable, letting a project draw on contributors worldwide.
Vocabulary TrainEnglish Chinese Pinyin Crowdsourcing 众包 zhòng bāo 5.5
Legal and Ethical Concerns
Syllabus
Enduring Understanding Learning Objective Essential Knowledge IOC-1
While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.IOC-1.F
Explain how the use of computing can raise legal and ethical concerns. [Skill 5.E]- IOC-1.F.1 Material created on a computer is the intellectual property of the creator or an organization.
- IOC-1.F.2 Ease of access and distribution of digitized information raises intellectual property concerns regarding ownership, value, and use.
- IOC-1.F.3 Measures should be taken to safeguard intellectual property.
- 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 data by continuously monitoring activities
Source: College Board AP Course and Exam Description
Computing raises questions of law and ethics:
- Intellectual property 知识产权 and copyright 版权 protect creators' work; using it may require permission or a license. Open-source 开源 and Creative Commons licenses let creators share work under stated terms.
- Plagiarism 抄袭 – using others' work as your own – is unethical and often illegal.
- Collecting and using personal data raises privacy questions about consent and misuse.
Just because something is technically possible does not make it legal or ethical.
Vocabulary TrainEnglish Chinese Pinyin Intellectual property 知识产权 zhī shí chǎn quán copyright 版权 bǎn quán Open-source 开源 kāi yuán Plagiarism 抄袭 chāo xí 5.6
Safe Computing
Syllabus
Enduring Understanding Learning Objective Essential Knowledge IOC-2
The use of computing innovations may involve risks to personal safety and identity.IOC-2.A
Describe the risks to privacy from collecting and storing personal data on a computer system. [Skill 5.D]- IOC-2.A.1 Personally identifiable information (PII) is information about an individual that identifies, links, relates, or describes them. Examples of PII include:
- Social Security number
- age
- race
- phone number(s)
- medical information
- financial information
- biometric data
- 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 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.
IOC-2.B
Explain how computing resources can be protected and can be misused. [Skill 5.E]- IOC-2.B.1 Authentication measures protect devices and information from unauthorized access. 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.
- Exclusion statement (EK IOC-2.B.5): Specific mathematical procedures for encryption and decryption are beyond the scope of this course and the AP Exam.
- 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.
- IOC-2.B.7 Computer virus and malware scanning software can help protect a computing system 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
Explain how unauthorized access to computing resources is gained. [Skill 5.E]- IOC-2.C.1 Phishing is a technique that attempts to trick a user into providing personal information. 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.
- 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.
Source: College Board AP Course and Exam Description
Protecting personal data is a shared responsibility. Key ideas:
Encryption scrambles plaintext with a key; only the key can decrypt it- Personally identifiable information (PII) 个人身份信息 (name, address, ID numbers) should be shared carefully, because it can be misused for identity theft 身份盗窃.
- Threats include phishing 网络钓鱼 (tricking you into revealing information), malware 恶意软件, and weak passwords.
- Defenses include strong, unique passwords, multi-factor authentication 多因素认证, encryption 加密 (scrambling data so only authorized people can read it), and keeping software updated.
Encryption is the central tool for keeping data private in transit and storage. Being a responsible computer user means protecting your own and others' information.
Exam skill: be able to identify the beneficial and harmful effects of a given innovation, explain a privacy or security risk, and name a safe-computing practice that addresses it.
ExploreScramble a message with encryption
Encryption protects data by scrambling it with a key; only someone with the key can read it back. This simple Caesar cipher shifts each letter — real encryption uses the same idea with far stronger keys to keep passwords and messages safe.
Vocabulary TrainEnglish Chinese Pinyin Personally identifiable information (PII) 个人身份信息 gè rén shēn fèn xìn xī identity theft 身份盗窃 shēn fèn dào qiè phishing 网络钓鱼 wǎng luò diào yú malware 恶意软件 è yì ruǎn jiàn multi-factor authentication 多因素认证 duō yīn sù rèn zhèng encryption 加密 jiā mì 5.6
Exam tips
- Argue both the beneficial and harmful effects of a computing innovation — a balanced answer scores best.
- Use correct terms for data concerns: PII, privacy, security, and algorithmic bias.
- Explain how crowdsourcing and large data sets create value and raise new risks.
- Distinguish the digital divide (access) from bias (fairness) and give a concrete example of each.
- Tie every claim to a specific innovation and effect, as the written response demands.