AP Computer Science Principles - Fall Semester Exam
Flowchart Symbol - Output
(e.g., Printed Circuit Board (PBC) with holes drilled.) Outputs are represented with a rhombus shape.
Big Idea 2 - Abstraction
Abstraction reduces information and detail to facilitate focus on relevant concepts. In computer science, abstraction is a central problem-solving technique, which is a process, a strategy, and the result of reducing detail to focus on concepts relevant to understanding and solving problems.
Big Idea 4 - Algorithms
Algorithms are used to develop and express solutions to computational problems. Algorithms realized in software have affected the world in profound and lasting ways. (e.g., Secure data transmission and quick access to large amounts of relevant information are made possible through the implementation of algorithms.)
Flowchart Symbol - Start
All flow charts begin with the START symbol. This shape is called a terminator. It is represented with an oval shape.
Flowchart Symbol - End
All flowcharts end with the END symbol. This shape is called a terminator. It is represented with an oval shape.
Flowchart Symbol - Arrow
Arrow indicate the flow of the algorithm pathways. As the name implies, it is represented with an arrow shape.
Effective method of communicating knowledge gained from data [EK 3.1.3D]
By transforming information
Big Idea 7 - Global Impact
Computing has global impact. Computation has changed the way people think, work, live, and play. Our methods for communicating, collaborating, problem solving, and doing business have changed and are changing due to computing innovations, which are innovations that include a computer or program code as an integral part of their function.
Big Idea 1 - Creativity
Computing is a creative activity. Creativity and computing are prominent forces in innovation; the innovations enabled by computing have had and will continue to have far-reaching impacts. Computing facilitates exploration and the creation of computational artifacts and new knowledge that help people solve personal, societal, and global problems.
Big Idea 3 - Data and Information
Data and information facilitate the creation of knowledge. Computing enables and empowers new methods of information processing, driving monumental change across many disciplines -- from art to business to science.
Flowchart Symbol - Input
Inputs, such as materials or components. (e.g., Printed Circuit Board (PCB).) It is represented with a rhombus shape.
Flowchart Symbol - Process
Processes, such as activities or tasks, are sometimes used to link to a subroutine (another flowchart) with more detailed steps. (e.g., drill Printed Circuit Board (PCB).) It is represented with a rectangular shape.
Big Idea 5 - Programming
Programming enables problem solving, human expression, and creation of knowledge. Programming results in the creation of software, and it facilitates the creation of computational artifacts, including music, images, and visualizations.
Big Idea 6 - The Internet
The Internet pervades modern computing. The Internet supports both communication and collaboration. The principles of systems and networks that helped enable the Internet are also critical in the implementation of computational solutions.
Flowchart Symbol - Decision
The decision symbol checks a condition before carrying on. (e.g., Is the drill accurate?) It is represented with a diamond shape.
Computational Practice 6 - Collaborating
This involves collaborating with another student in solving a computational problem or producing an artifact, sharing the workload by providing individual contributions to an overall collaborative effort, fostering a constructive, collaborative climate by resolving conflicts and facilitating the contributions of a partner or team member, exchanging knowledge and feedback with a partner or team member, and reviewing and revising their work as needed to create a high-quality artifact.
Computational Practice 2 - Creating Computational Artifacts
This involves creating a computational artifact with a practical, personal, or societal intent, selecting appropriate techniques to develop a computational artifact, and using appropriate algorithmic and information management.
Computational Practice 4 - Analyzing Problems and Artifacts
This involves evaluating a proposed solution to a problem, locating and correcting errors, explaining how an artifact functions, and justifying appropriateness and correctness of a solution, model, or artifact.
Computational Practice 3 - Abstracting
This involves explaining how data, information, or knowledge is represented for computational use, explaining how abstractions are used in computational modeling, identifying abstractions, and describing modeling in a computational context.
Computational Practice 5 - Communicating
This involves explaining the meaning of a result in context, describing computation with accurate and precise language, notations, or visualizations, and summarizing the purpose of a computational artifact.
Computational Practice 1 - Connecting Computing
This involves identifying impacts of computing, describing connections between people and computing, and explaining connections between computing and concepts.
Natural language / pseudo code [EK 4.1.2B]
a description of an algorithm written in a way that humans can understand
Symmetric encryption [EK 6.3.1K]
a method of encryption involving one key for encryption and decryption
IPv6 [EK 6.1.1H]
a new protocol developed to replace IPv4, addressing the issue of IP address exhaustion; established to handle the routing of many more devices
Protocols (include TCP/IP) [EK 6.2.2D]
a set of rules or standards governing the format of data sent over the Internet or other network; they enable widespread use of the Internet; order of TCP/IP model: 1.) application layer, 2.) transport layer, 3.) internet layer, 4.) network access layer
Algorithm combination [EK 4.1.1E]
algorithms can be combined to make new algorithms
Machine learning and data mining [EK 7.2.1A]
an application of artificial intelligence that provides systems the ability to automatically learn and improve from experience without being explicitly programmed; the practice of examining large databases in order to generate new information; they have enabled innovation in medicine, business, and science
Abstraction of digital data [EK 2.1.1C]
at a higher level, bits are grouped to represent abstractions, including but not limited to numbers, characters, and color
Binary numbers [EK 2.1.1E]
at one of the lowest levels of abstraction, digital data is represented in this number base, using only a combination of the numbers 0 and 1
Metadata [EK 3.2.1H]
can be descriptive data about an image, a Web page, or other complex objects [i.e. data about data]
Digital certificate [EK 6.3.1M]
certificate authorities (CAs) issue these, and they validate the ownership of encrypted keys used in secured communications and are based on a trust model
Why classification of data is useful [EK 3.1.1D]
classification of data is the process of sorting and categorizing data into various types, forms, or distinct classes; insight/knowledge can be obtained from translating and transforming digitally represented information
Low-level programming languages [EK 2.2.3C]
code from a high-level programming language is often translated into this kind of language to be executed on a computer
What is an important part of solving data-driven problems? [EK 3.1.2A]
collaboration
Streaming [EK 7.3.1B]
commercial to this, plus music and movie downloads, raises legal and ethical concerns
Strings and string operations, including concatenation and some form of substring [EK 5.3.1I]
common in many programs
Filter [EK 3.1.1B]
computers refining a data set into simply what a user needs; done to digital information by computers to process information
Assistive technology [EK 7.1.1L]
computing contributes to this kind of technology, which enhances human capabilities
Determining correctness of algorithm [EK 4.2.4C]
determined by reasoning formally or mathematically about the algorithm, not by testing an implementation of the algorithm
Algorithms and problem solving [EK 4.1.1I]
developing a new algorithm to solve a problem can yield insight into the problem
Different algorithms; same goal [EK 4.1.1H]
different algorithms can be developed to solve the exact same problem
Efficiency and correctness relating to algorithms [EK 4.2.4D]
different correct algorithms for the same problem can have different efficiencies
Digital Data [EK 2.1.1A]
discrete, discontinuous representation of information or works, represented by bits
Collaboration, part 2 [EK 5.2.3C]
doing this in the iterative development of a program requires different skills than developing a program alone
Cryptography [EK 6.3.1H]
essential to many models of cybersecurity; mathematical foundation
Aggregation of information [7.3.1H]
examples of this include geolocation, cookies, and browsing history; raises privacy and security concerns
Compound expressions [EK 5.5.1F]
expressions using 'and', 'or', and 'not'; are part of most programming languages
Collaboration, part 4 [EK 5.1.3E]
facilitates developing program components indepedently
Collaboration, part 1 [EK 5.2.3B]
facilitates multiple perspectives in developing ideas for solving problems by programming
Goals and inputs/outputs of a program [EK 5.1.1B]
for creative expression, to satisfy personal curiosity, or to create new knowledge; may have visual, audible, or tactile inputs and outputs
Human computation [EK 7.1.2C]
harnesses contributions from many humans to solve problems related to digital data and the Web
"Citizen science" [EK 7.1.2B]
has had an impact on science; used to solve scientific problems using home computers in scientific research
Global distribution of computing resources [EK 7.4.1C]
has raised issues of equity, access, and power
Abstraction hierarchy [EK 2.2.3D]
higher levels of abstraction (the most general concepts) would be placed toward the top and lower-level abstractions (the more specific concepts) toward the bottom
Basic operations on collections [EK 5.5.1J]
include adding elements, removing elements, iterating over all elements, and determining whether an element is in a collection
Language of algorithms [EK 4.1.2A]
includes natural language, pseudo code, and visual and textual programming languages
Iterative [EK 3.1.1A]
involving the repetition of a process; computers are used in this way when processing digital information to gain insight and knowledge
Collaboration, part 3 [EK 5.1.3D]
makes it easier to find and correct errors when developing programs
Wireless [EK 7.4.1B]
mobile and network computing have an impact on innovation throughout the world
The power of nearly all programming languages [EK 4.1.2H]
nearly all programming languages are equivalent in terms of being able to express any algorithm
Mobile computing [EK 7.1.2G]
new applications are arising due to the move from desktop computers to a proliferation of always-on mobile computers
Conversion of bases [EK 2.1.1G]
numbers can be converted from any base to any other base
Hexadecimal numbers [EK 2.1.1F]
one representation of digital data; one way of representing data because it uses fewer digits than binary
Levels of abstraction [EK 2.2.3A]
programming languages offer different levels of abstraction
Programming [EK 5.1.1A]
programs are developed and used in a variety of ways by a wide range of people depending on the goals of the programmer
Large data sets [EK 3.2.1A]
provide opportunities and challenges for extracting information and knowledge; provide opportunities for identifying trends, making connections in data, and solving problems
The building blocks of algorithms [EK 4.1.1A]
sequencing, selection, and iteration
Bits [EK 2.1.1B]
smallest unit of data in a computer; digital data is represented by these
Interfaces [EK 6.2.2D]
software/hardware between two protocol layers; they enable widespread use of the Internet
Online services built on many people [EK 7.1.2E]
some online services use the contributions of many people to benefit both individuals and society
Open Standards [EK 6.2.2E]
standards open to the public and are developed and maintained via collaboration; this fuels the growth of the internet
Exploitation [EK 7.3.1J]
technology enables the collection, use and this of information about, by, and for individuals, groups, and institutions
Sequencing [EK 4.1.1B]
the application of each step of an algorithm in the order in which the statements are given
Cybersecurity [EK 6.3.1C]
the implementation of this has software, hardware, and human components
Algorithm knowledge [EK 4.1.1G]
the knowledge of standard algorithms can help in constructing a new algorithm
Moore's law [EK 7.2.1F]
the observation made by Intel co-founder Gordon Moore that the number of transistors on a chip doubles every year while the costs are halved; this has encouraged industries that used computers to effectively plan future research and development based on anticipated increases in computing power
The use of existing algorithms [EK 4.1.1F]
the usage of these algorithms as building blocks for constructing a new algorithm helps ensure the new algorithm is correct
Mathematical expressions [EK 5.5.1D]
the use of arithmetic operators are part of most programming languages
Logical concepts & Boolean algebra [EK 5.5.1E]
these are fundamental to programming
Infrastructure and commercial [EK 7.4.1E]
these are supported by both commercial and governmental initiatives
Patterns [EK 3.1.1E]
these can emerge when data is transformed using computational tools
Parameters [EK 5.3.1F]
these generalize a solution by allowing a procedure to be used instead of duplicated code
Open and curated scientific databases [EK 7.2.1E]
these have benefited scientific research
Cyber warfare; cybercrime [EK 6.3.1D]
these have widespread and potentially devastating effects
Spreadsheet/database software [EK 3.2.1F]
these kind of software tools help to efficiently organize and find trends in information
High-level programming languages [EK 2.2.3B]
these languages provide more abstractions for the programmer and make it easier for people to read and write the program
Visual displays [EK 5.4.1H]
these representations of a program state can help in finding errors
Phishing [EK 6.3.1F]
these, viruses, and other attacks have human and software components
Reading data versus updating data [EK 3.3.1I]
they have different storage requirements
Programming knowledge and skill [EK 5.1.2I]
this affects how a program is developed and how it is used to solve a problem
Collaboration on the internet [EK 6.6.1D]
this and its systems facilitate collaboration
End-to-end architecture [EK 6.6.1B]
this facilitates connecting new devices and networks on the Internet
Bandwidth [EK 6.2.2J]
this is a measure of the bit rate -- the amount of data (measured in bits) that can be sent in a fixed amount of time
Procedures [EK 5.3.1D]
this is a named grouping of programming instructions; they have names and may have parameters and return values
Trust model [EK 6.3.1A]
this model has trade offs
Authenticated and anonymous access [EK 7.3.1D]
this type of access to digital information raises legal and ethical concerns
DDoS (Distributed Denial of Service) [EK 6.3.1E]
this type of attack compromises a target by flooding it with requests from multiple systems
Decidable problems [EK 4.2.3B]
this type of problem is one in which an algorithm can be constructed to answer "yes" or "no" for all inputs [e.g., "is the number even?"]
Undecidable problems [EK 4.2.3A]
this type of problem may have instances that have an algorithmic solution, but there is no algorithmic solution that solves all instances of the problem
Number bases [EK 2.1.1D]
used represent and investigate digital data [e.g., binary, decimal, hexadecimal]
Target advertising [EK 7.3.1M]
used to help individuals, but it can be misused at both individual and aggregate levels
Pupose of application program interfaces (APIs) & libraries [EK 5.3.1M]
used to simplify complex programming tasks
Cloud computing [EK 7.1.1D]
using a network of remote servers hosted on the Internet to store, manage, and process data; this fosters new ways to communicate and collaborate