





















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of the AP Computer Science Principles (AP CSP) course, including curricular requirements, prerequisites, and the structure of the AP exam. The course is designed to introduce students to the foundational concepts of computer science and explore the impact of computing and technology on society.
Typology: Study notes
1 / 29
This page cannot be seen from the preview
Don't miss anything!






















Computational Thinking Practices P 1 P 2 P 3 P 4 P 5 P 6 Computational Solution Design Algorithms and Program Development Abstraction in Program Development Code Analysis Computing Innovations Responsible Computing
Big Ideas Big Idea 1 (CRD) Big Idea 2 (DAT) Big Idea 3 (AAP) Big Idea 4 (CSN) Big Idea 5 (IOC) Creative Development Data Algorithms and Programming Computing Systems and Networks Impact of Computing
Unit 0 is an introduction to the AP Computer Science Principles course. The unit exposes students to the foundational topics of computer science and computing. Additionally, it introduces the major topics and components on the AP exam, so students will become familiar with the big ideas and computational thinking practices around which the course is focused. Before finishing the unit, students will engage with their preconceived notions about computer science and challenge these ideas.
Topic Lesson Course Context Welcome to AP Computer Science Principles Computer Science Fundamentals Course Structure Course Resources Student Forum Forum Guidelines Honor Code Self-Evaluation Entry Questionnaire
Course Context ○ Students will examine and discuss the motivations behind a number of high-profile individuals in the field of programming. ○ Students will discuss the benefits of programming as a tool and a profession. ○ Students will discuss the impact computing has on society, business, and the economy. ○ Students will examine the ideas of computational thinking and computational artifacts. Course Resources ○ Students will become familiar with the resources on the Edhesive platform. Self-Evaluation ○ Students will consider their relationship with computer science and programming.
This unit lays the foundation for computational logic. Students first explore the iterative development process, seeing how an idea translates to a real, functioning program. Then, they take a closer look at this process by examining algorithms, languages, program execution, and the through-course concept of abstraction. For the second half of the unit, students get started coding in Scratch. Using this visual, block-based programming language, they learn basic programming concepts and constructs, including user input and variables. In creating programs of their own, they have the opportunity to apply the iterative development process. Over the course of the unit, students learn how to build computational artifacts and solve computational problems - two skills essential to the rest of the course. There are no major projects in this unit, but there are several post-lesson opportunities for students to apply the iterative development process and basic programming concepts.
Topic Lesson Program Development The Iterative Development Process Algorithms Languages Idea to Execution Big Picture Collaboration Visual Programming Getting Started in Scratch Programming with Blocks Program State User Input and Storage Defining Variables Applying Variables
This unit focuses on the three main control structures utilized within algorithms and programs: sequencing, selection, and iteration. Students first examine these structures conceptually, and then learn how to formally construct and evaluate them in Scratch and AP-style Pseudocode. In doing so, they hone their programming abilities and become familiar with the importance of precise commands and well-structured logic. Building on this knowledge, students explore how abstraction can be applied to algorithmic solutions using procedures, and examine 1 ) how algorithmic solutions should be efficient and help programs scale and 2 ) what happens when a problem is not able to be solved with an algorithm. At the end of the unit, students get a glimpse of how design documentation for hardware components employs computational logic and abstraction just like programming. There is one major project in this unit: the Password Generator Project.
Topic Lesson Control Structures Defining Sequencing Applying Sequencing Coding Skills Pseudocode Control Structures Defining Selection Applying Selection Defining Iteration Applying Iteration Procedural Abstraction Procedures Decidability and Efficiency Solvability & Performance Big Picture Moore’s Law Hardware Abstraction Logic Gates & Hardware Unit Project Password Generator Project
Control Structures ○ Students will examine a number of common features of algorithms, including sequencing, selection, and repetition. ○ Students will examine how well-specified behavior of objects can be constructed through sequential actions and operations. ○ Students will examine the uses of selection statements in programming. ○ Students will analyze the differences between simple selection and complex, nested selection statements. ○ Students will examine the use of the Boolean operators "AND," "OR," and "NOT" in constructing complex conditional statements. ○ Students will examine the uses of iteration statements in programming. ○ Students will consider how to make a sequence of events more efficient with iteration statements. ○ Students will combine sequencing, selection, and repetition structures alongside programming constructs like user input and variables to create computational artifacts. Coding Skills ○ Students will examine how pseudocode can outline algorithmic processes. ○ Students will read, execute, and construct algorithms in AP-style pseudocode. Procedural Abstraction ○ Students will compare the methods and relative efficiencies of different algorithms. Decidability and Efficiency ○ Students will examine the factors that affect the decidability of a problem. ○ Students will identify which problems can and cannot always be solved by an algorithm. ○ Students will examine methods of comparing equivalent algorithms for relative efficiency. ○ Students will evaluate the relative efficiency of equivalent algorithms. ○ Students will identify factors that allow solutions to scale efficiently. Big Picture ○ Students will examine the implications of Moore's Law on the research and development of new and existing technologies. Hardware Abstraction ○ Students will explore the logical processes implemented in hardware design documentation.
In this unit, students explore the different ways digital information can be represented, stored, and manipulated on a computer. They look at the various levels of abstraction that are used in the digital representation of discrete data and information. Initially, students will focus on the lowest levels of digital representation and storage by examining different base representations of numbers (including decimal and binary) and their application to ASCII and Unicode character encoding. Next, they will examine the distinctions between analog and digital forms of representation. Finally, students will learn about lists, a common abstract data type that can be utilized in programs. They will explore the characteristics of lists and how they can be used to search and sort data. There is one major project in this unit: the Unintend’o Project.
Topic Lesson Binary Encoding of Information Binary Base Conversions ASCII vs. Unicode Coding Skills Programming Binary Digital Approximations Digitization Analog vs. Digital Data Big Picture Reselling Digital Music Lists Making a List Processing a List Sorting a List Lists in Pseudocode Unit Project Unintend’o Project
Binary Encoding of Information ○ Students will examine how numerical values are represented using different bases, including decimal and binary. ○ Students will explore methods of converting values from decimal to binary and binary to decimal. ○ Students will examine the exponential relationship between the number of digits and their range of representable values. ○ Students will examine how alphanumeric characters and symbols may be represented using ASCII and Unicode character mappings. ○ Students will analyze the differences in state space between ASCII and Unicode standards. ○ Students will explore how the interpretation of binary data is dependent upon its intended format and use, including base- 64 , bitmaps (.BMP), plaintext (.TXT), audio (*.MP 3 ), etc. Coding Skills ○ Students will construct a Scratch program that simulates candles on a birthday cake being lit so as to show the user's age in binary. Digital Approximations ○ Students will examine the implications of variable-width encodings (e.g., Morse code) versus fixed-width encodings (e.g., Baudot code). ○ Students will explore ways in which natural phenomena may be represented digitally. ○ Students will analyze the extent to which digital approximations accurately reflect the reality that they represent. ○ Students will analyze the differences between discrete (digital) and continuous (analog) representations of natural phenomena. ○ Students will examine the social implications of the ease with which perfect digital copies can be made. Big Picture ○ Students will examine and discuss the legality of reselling "used" digital music. Lists ○ Students will examine the use of lists as ordered data structures that may contain multiple values. ○ Students will investigate the use of index values to represent the position of an item in a list. ○ Students will analyze the implications of accessing an index position beyond the bounds of a list. ○ Students will investigate common operations for processing elements of a list, including searching for an element, removing an element, swapping the positions of two elements, or sorting an entire list into ascending or descending order. ○ Students will examine the implications of case-sensitivity on ordered lists of strings. ○ Students will consider how lists can appear in pseudocode.
In Unit 4 , students will use Python to programmatically manipulate digital images and audio. The unit starts by guiding students through the transition of programming in Python, which is a high-level, procedural, text-based language. In Python, students will explore the characteristics of the RGB color model and its use in encoding digital images. They will also investigate the methods of representing and modifying digital audio, including Auto-Tune and audio compression. The unit concludes with a summary of the compression methods related to digital media processing. There is one major project in this unit: the Image Filter Project.
Topic Lesson Introduction to Python Scratch vs. Python Python Basics Control Structures Selection Structures Iteration Structures Abstractions Data Abstraction Procedural Abstraction Image Manipulation RGB Color Image Manipulation Encoding Schemes Digital Manipulation Big Picture Ethics of Digital Manipulation Big Picture Intellectual Property Audio Manipulation Audio Manipulation Audio Processing Audio Compression Unit Project Image Filter Project
Introduction to Python ○ Students will explore the capabilities of a text-based programming language (Python). ○ Students will compare and contrast the programming capabilities of a visual programming language (Scratch) with those of a text-based programming language (Python). ○ Students will understand the importance of using proper punctuation and syntax when coding in a text-based programming language. Control Structures ○ Students will write code using common programming constructs like conditional if() for selection and while() loops for iteration. ○ Students will use boolean, relational and conditional expressions. Abstraction ○ Students will write code using data abstraction (lists). ○ Students will create and use procedural abstractions in order to make their programs more readable and versatile. Image Manipulation ○ Students will examine the structure of raster images as compositions of individual pixels. ○ Students will explore various methods of representing color, including RGB, CMYK, and HSV. ○ Students will explore the various colors that can be produced by the combination of different ratios of red, green, and blue light. ○ Students will perform base conversions for decimal, binary, and hexadecimal number systems. ○ Students will modify the color channels of pixels in an image to produce a variety of effects. ○ Students will design algorithms for modifying the pixels in an image in prescribed ways to create custom image filters. ○ Students will explore the difference between lossy and lossless encoding schemes of several common image file formats. Big Picture ○ Students will explore the positive and negative consequences of digitally altering images. ○ Students will discuss the ethics of digitally manipulating images, especially in the context of journalism. ○ Students will discuss the issues related to intellectual property. ○ Students will explore the limitations and rights associated with a number of common licenses, including Creative Commons. Audio Manipulation ○ Students will analyze the differences between analog and digital sound. ○ Students will explore the roles that sampling rate and bit depth play in determining the quality of digitized sound. ○ Students will explore methods of programmatically generating digital audio. ○ Students will explore methods of programmatically altering and modifying digital audio by adjusting volume, pitch, and sampling rate. ○ Students will explore the methods and effects of compression algorithms in reducing the amount of data needed to represent an audio sample.