to

## AP Computer Science Principles

83 Standards in this Framework 51 Standards Mapped 61% Mapped to Course

Standard Lessons
CS.HS.1.1a Identify and create different types of algorithms (sort, search, etc.).
1. 8.6 Finding an Element in a List
CS.HS.1.1b Predict the outcome of different types of algorithms.
CS.HS.1.1c Create or adapt algorithms to solve problems for multiple purposes (e.g., personal interests, client needs).
CS.HS.1.1d Use an algorithm that involves mathematical operations and functions to solve problems.
1. 4.6 Basic Math in JavaScript
CS.HS.1.1e Use an iterative approach to utilizing and/or developing an algorithm.
1. 5.5 For Loops in JavaScript
2. 5.6 General For Loops
3. 5.7 For Loop Practice
4. 5.9 While Loops
5. 5.10 Loop and a Half
CS.HS.1.1f Recognize problems that cannot be solved computationally.
1. 9.10 Cryptography
CS.HS.1.1g Identify and describe algorithms that exist within their personal lives.
1. 4.2 Uses of Programs
2. 5.10 Loop and a Half
CS.HS.1.2a Identify and compare different algorithms that can be used to solve the same problem.
1. 5.10 Loop and a Half
2. 6.3 Functions and Parameters 3
CS.HS.1.2b Illustrate the flow of execution of an iterative algorithm (e.g., recursion).
CS.HS.1.2c Explain the value of heuristic algorithms to model ways to solve problems.
CS.HS.1.2d Adapt algorithms used in one problem to solve a related or different problem.
1. 6.4 Functions and Return Values 1
2. 6.5 Functions and Return Values 2
CS.HS.1.2e Use multiple methods to represent an algorithm (e.g., diagram, programming language, unplugged).
1. 2.7 Top Down Design and Decomposition in Karel
2. 2.17 Karel Algorithms
CS.HS.1.3a Describe pros and cons of the performance of algorithms for the same task.
CS.HS.1.3b Use an iterative approach to developing an algorithm.
1. 2.7 Top Down Design and Decomposition in Karel
2. 2.17 Karel Algorithms
CS.HS.1.3c Test and troubleshoot so that algorithms produce reasonable results.
1. 2.7 Top Down Design and Decomposition in Karel
2. 2.9 Abstraction
3. 2.16 Debugging Strategies
CS.HS.1.4a Demonstrate how the process of decomposition is iterative and used to solve problems.
1. 2.7 Top Down Design and Decomposition in Karel
2. 2.9 Abstraction
CS.HS.1.4b Formulate possible solutions based on the decomposition of a problem.
1. 2.7 Top Down Design and Decomposition in Karel
CS.HS.1.5a Describe how abstraction is central to computational thinking.
1. 2.9 Abstraction
CS.HS.1.5b Identify and prioritize the most relevant parts of a problem while filtering out extraneous details.
1. 2.7 Top Down Design and Decomposition in Karel
2. 2.9 Abstraction
CS.HS.1.5c Demonstrate different ways to represent key problem components.
1. 2.7 Top Down Design and Decomposition in Karel
2. 2.20 Karel Challenges
CS.HS.1.6a Identify different types of data that are exchanged and produced by computers (e.g., protocols).
1. 1.14 Viewing Websites
2. 12.6 Packets and Protocols
CS.HS.1.6b Represent data using multiple encoding schemes (e.g., RGB, Hex, HSB, ASCII, Unicode).
1. 9.1 Getting Started
2. 9.3 Encoding Text with Binary
3. 9.4 Pixel Images
5. 9.6 Pixel Colors!
6. 9.7 Image Manipulation
CS.HS.1.6c Evaluate the trade-offs for how data elements are organized and where data are stored (e.g., PNG/GIF, structured/unstructured).
1. 9.8 Data Compression
2. 9.9 Lossy Compression
CS.HS.1.6d Compare and contrast various data structures/techniques for storing and processing data (e.g., arrays, lists, tables).
CS.HS.1.7a Analyze computer programs to identify patterns within the program.
CS.HS.1.7b Provide multiple versions of data visualization in order to deepen problem analysis.
1. 14.1 Getting Started
2. 14.2 Visualizing and Interpreting Data
CS.HS.1.7c Interpret and analyze data to make informed decisions.
1. 14.2 Visualizing and Interpreting Data
2. 14.3 Data Collection & Limitations
3. 15.1 Practice PT: Present a Data-Driven Insight
CS.HS.1.8a Analyze computer output in different forms (e.g., plain text, CSV, graphs, images).
1. 14.2 Visualizing and Interpreting Data
2. 15.1 Practice PT: Present a Data-Driven Insight
CS.HS.1.8b Design visualizations using the appropriate tool(s) with the end user in mind.
1. 15.1 Practice PT: Present a Data-Driven Insight
2. 16.1 Intro to Design Thinking
3. 16.2 Prototype
4. 16.3 Test
5. 16.4 Project Prep and Development
CS.HS.1.8c Provide multiple versions of data visualization in order to deepen problem analysis.
1. 14.1 Getting Started
2. 14.2 Visualizing and Interpreting Data
3. 15.1 Practice PT: Present a Data-Driven Insight
CS.HS.2.1a Describe key protocols and underlying processes of internet-based services, (e.g., https) and discuss impact of technology change on communication protocols.
1. 1.14 Viewing Websites
3. 12.4 DNS
4. 12.5 Routing
5. 12.6 Packets and Protocols
6. 12.9 The Impact of the Internet
CS.HS.2.1b Illustrate and describe the basic components and various network types and topologies (e.g., personal, local, metropolitan, and wide).
1. 12.2 Internet Hardware
CS.HS.2.1c Explain the difference between decimal, hexadecimal, octal and binary number formats and how they are used in computing environments.
1. 9.2 Number Systems
2. 9.3 Encoding Text with Binary
3. 9.4 Pixel Images
5. 9.6 Pixel Colors!
6. 9.7 Image Manipulation
CS.HS.2.2a Explain the difference between memory and disk storage, internal and external storage, Random Access Memory (RAM), flash, cloud.
1. 12.2 Internet Hardware
CS.HS.2.2b List and explain the common working parts of a computing device.
CS.HS.2.2c Explain how to maintain safety when working on PCs, e.g., electromagnetic precautions.
CS.HS.2.2d Describe how computing devices are engineered for fault tolerance and reliability, and identify potential sources of weakness (e.g., redundant power supplies, RAID, SAN/NAS connections).
1. 12.5 Routing
CS.HS.2.3a Identify and differentiate between different kinds of software (e.g., operating systems vs. applications) and their purposes.
CS.HS.2.3b Explain what an operating system is, and why it is important for a computer or computing device (e.g., Linux, Windows, iOS).
CS.HS.2.3c Describe how software interacts with hardware to complete tasks.
CS.HS.2.4a Explain the integration of hardware, software and network communications components to create a networked system.
1. 12.2 Internet Hardware
CS.HS.2.4b Summarize security approaches using a systems approach perspective
1. 12.8 Cybersecurity
CS.HS.2.5a Identify clientâ€™s problems/needs.
CS.HS.2.5b Articulate design requirements back to client.
CS.HS.2.5c Illustrate options for considerations and develop conceptual model.
CS.HS.2.5d Perform system analysis based on client considerations.
CS.HS.2.6a Identify different ways that systems might lose data or functionality.
1. 9.8 Data Compression
2. 9.9 Lossy Compression
3. 9.10 Cryptography
4. 12.8 Cybersecurity
CS.HS.2.6b Describe elements of an effective backup system.
CS.HS.2.6c Compare backup systems for computer users, or a network.
1. 12.5 Routing
CS.HS.2.6d List the various backup methodologies (e.g., full, differential), and why one would pick one over the other, or use all.
CS.HS.2.6e Explain the ways an organization would continue to operate in light of a systems failure.
CS.HS.2.7a Identify examples of threats to systems and data.
1. 9.10 Cryptography
2. 12.8 Cybersecurity
CS.HS.2.7b Describe the process by which intruders gain entry into a production system (e.g., reconnaissance).
CS.HS.2.7c Describe and compare methods to test/validate how well systems and data are protected.
1. 12.8 Cybersecurity
CS.HS.2.7d Investigate different career pathways relating to systems security.
CS.HS.3.1a Analyze and apply a design methodology to identify constraints and requirements of an identified problem.
1. 16.1 Intro to Design Thinking
2. 16.2 Prototype
3. 16.3 Test
4. 16.4 Project Prep and Development
CS.HS.3.1b Utilize tools and resources such as pseudocode, flowcharts, wireframes, etc., as part of the design process.
1. 2.7 Top Down Design and Decomposition in Karel
2. 4.1 What is Code
CS.HS.3.1c Determine and use graphical or text-based languages.
1. 4.1 What is Code
CS.HS.3.1d Understand and apply core programming concepts.
1. 2.12 If Statements
2. 4.4 Variables
3. 4.5 User Input
4. 4.6 Basic Math in JavaScript
5. 5.1 Booleans
6. 5.2 Logical Operators
7. 5.3 Comparison Operators
8. 5.4 If Statements
9. 5.6 General For Loops
10. 5.9 While Loops
11. 6.1 Functions and Parameters 1
12. 6.2 Functions and Parameters 2
13. 6.3 Functions and Parameters 3
14. 6.4 Functions and Return Values 1
15. 6.5 Functions and Return Values 2
16. 6.6 Local Variables and Scope
17. 8.1 Intro to Lists/Arrays
18. 8.5 Iterating Over an Array
CS.HS.3.2a Write code per selected design.
2. 3.1 Practice PT: Pair-Programming Paint!
3. 7.1 Practice PT: Tell a Story
4. 11.1 Practice PT: Create Your Own Filter!
CS.HS.3.2b Create code comments to communicate to other developers and ensure documentation of code.
CS.HS.3.2c Use various troubleshooting and debugging techniques to improve code.
1. 2.7 Top Down Design and Decomposition in Karel
3. 2.16 Debugging Strategies
4. 2.18 How to Indent Your Code
CS.HS.3.2d Create appropriate variables to store and retrieve data.
1. 4.4 Variables
CS.HS.3.3a Integrate collaborative strategies to improve programming outputs.
1. 3.1 Practice PT: Pair-Programming Paint!
CS.HS.3.3b Identify and analyze a variety of collaborative tools (e.g., commenting, development repositories) in order to determine the appropriateness for intended use.
2. 3.1 Practice PT: Pair-Programming Paint!
CS.HS.3.3c Identify strategies such as peer reviews to test and refine artifacts in development.
1. 3.1 Practice PT: Pair-Programming Paint!
CS.HS.3.3d Determine when to use standard software tools like APIs, libraries, version control repositories, etc.
CS.HS.3.4a Understand and apply principles of client-based design.
CS.HS.3.4b Guide/advise clients on strategies and solutions best suited for their problem (i.e., type of platform).
CS.HS.3.4c Construct effective methods for gathering feedback from client.
CS.HS.3.4d Respond to feedback from clients to improve computing solutions.
CS.HS.3.4e Create and share product support documentation for potential users.
CS.HS.3.4f Articulate lessons learned as a result of the design and creation process.
2. 3.1 Practice PT: Pair-Programming Paint!
3. 7.1 Practice PT: Tell a Story
4. 11.1 Practice PT: Create Your Own Filter!
5. 16.4 Project Prep and Development
CS.HS.3.5a Investigate and understand privacy, security and protection laws.
CS.HS.3.5b Articulate the importance of securing personal data information on encrypted storage systems.
1. 12.8 Cybersecurity
CS.HS.3.5c Identify and analyze current events to ensure the safety, security and wellbeing of all potential clients and end users.
CS.HS.3.5d Identify influential computing innovations, and identify the beneficial and harmful effects they have had, or could have, on society, economy and culture.
1. 12.9 The Impact of the Internet
CS.HS.3.5e Discuss and explain how diversity of design and issues of accessibility impact a wide-range of users.
1. 16.1 Intro to Design Thinking
CS.HS.3.5f Demonstrate ways to improve the accessibility of computational technologies and artifacts.
1. 16.2 Prototype
2. 16.3 Test
3. 16.4 Project Prep and Development
CS.HS.3.6a Describe how software licensing influences program development.
CS.HS.3.6b Investigate and develop solutions that discourage online software piracy.
CS.HS.3.6c Explore and integrate security measures such as encryption, authentication and verification strategies to secure developed computer programs.
CS.HS.3.6d Research and abide by intellectual property laws and patents.
1. 12.9 The Impact of the Internet