AP Computer Science Principles Course Syllabus and Planning Guide (2020-2021), Study notes of Computer Science

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

2021/2022

Uploaded on 08/05/2022

jacqueline_nel
jacqueline_nel 🇧🇪

4.4

(242)

3.2K documents

1 / 29

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
/
AP Computer Science Principles
Course Syllabus and Planning Guide
(2020 - 2021)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d

Partial preview of the text

Download AP Computer Science Principles Course Syllabus and Planning Guide (2020-2021) and more Study notes Computer Science in PDF only on Docsity!

AP Computer Science Principles

Course Syllabus and Planning Guide

Curricular Requirements

Curricular Requirements Page(s)

CR1 The teacher and students have access to college-level computer science

resources, in print or electronic format.

CR2 The course provides opportunities to develop student understanding of

the required content outlined in each of the Big Ideas described in the

AP Course and Exam Description.

CR3 The course provides opportunities to develop student understanding of

the Big Ideas.

CR4 The course provides opportunities for students to develop the skills

related to Computational Thinking Practice 1: Computational Solution

Design.

CR5 The course provides opportunities for students to develop the skills

related to Computational Thinking Practice 2: Algorithms and Program

Development.

CR6 The course provides opportunities for students to develop the skills

related to Computational Thinking Practice 3: Abstraction in Program

Development.

CR7 The course provides opportunities for students to develop the skills

related to Computational Thinking Practice 4: Code Analysis.

CR8 The course provides opportunities for students to develop the skills

related to Computational Thinking Practice 5: Computing Innovations.

CR9 The course provides opportunities for students to develop the skills

related to Computational Thinking Practice 6: Responsible Computing.

CR10 The course provides a minimum of three opportunities for students to

investigate different computing innovations.

CR11 Students are provided at least twelve (12) hours of dedicated class time

to complete the AP Create Performance Task.

Course Overview

Prerequisites

The College Board suggests students successfully complete a first year high school Algebra

course prior to enrolling in AP CSP. An Algebra course will provide a strong foundation in

problem solving, basic linear functions, composition of functions, and the Cartesian (x,y)

coordinate system. These skills and topics are essential for student facility in this course. For

further preparation, we recommend students complete our Introduction to Computer Science

course prior to taking this course. That course introduces students to the fundamentals of

computing, providing a foundation on which this course can build.

The College Board adheres to an open enrollment policy for this course, meaning any student

that is willing and academically prepared can participate in the course.

Pedagogical Approach

Edhesive’s AP CS Principles course follows the blended learning model. It takes a

student-centered approach powered by technology to help realize the goal of high achievement

for all students. The course promotes student engagement, independent thought and

interactive collaboration with peers. Student-centric lessons, activities and assessments are

paired with augmentative teacher-centric lesson, activity and task guides and reporting to

empower teachers to empower students. Additionally, teacher and student forums with

moderation and input from Edhesive staff and team of teaching assistants provide dynamic

community and support.

Programming Requirements

The coding languages Scratch and Python are both used in this course. Scratch is a free

block-based programming environment that is accessible enough for beginners, yet can support

the development of advanced algorithms used in more complex games and applications. Python

is a text-based language with easy to read and write syntax - perfect for beginning

programmers.

Course Goals

Edhesive’s AP CSP course fully addresses the College Board’s AP Computer Science Principles

Curriculum Framework. The framework defines two through-course curricular requirements: six

“computational thinking practices” and five “big ideas.” Additionally, the framework describes in

detail what students should be able to do, know, and retain by the end of the course with three

types of expressions: Enduring Understandings, Learning Objectives, and Essential Knowledge

Statements. A basic overview of each of these items is provided below, and we encourage

instructors to read more about them in the AP Computer Science Principles Curriculum

Framework.

Six Computational Thinking Practices

The six Computational Thinking Practices contain skills that students should develop to not just

learn about content, but to change their way of thinking.

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

Five Big Ideas

The course material focuses on Five Big Ideas. These ideas encompass concepts that are

foundational to computer science.

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

Enduring Understandings

Enduring Understandings (EUs) describe the concepts students should understand after going

through this course. The goal is for Learning Objectives and Essential Knowledge Statements to

build Enduring Understandings.

Learning Objectives

Learning Objectives (LOs) articulate what students should be able to do by the end of the

course. Each learning objective corresponds to one of the Five Big Ideas and one part of a

computational thinking practice. Both the multiple choice exam and through-course

performance task test students' mastery of these learning objectives.

Essential Knowledge Statements

Essential Knowledge Statements (EKs) provide facts or concepts students should know to prove

their understanding of the learning objectives.

Course Materials

Edhesive’s AP Computer Science Principles has an introductory unit, six instructional units, a

mini performance task module, and a final AP review unit. Each is strategically designed to

prepare students for the AP CSP Exam. The course units consist of daily lessons, instructional

videos, lesson slides, lesson activities, code-along exercises, projects, vocabulary reviews, AP

test preparation, quizzes, and tests.

Student Lessons

The student lessons are typically composed of the following components:

● Introduction: a high-level overview of the lesson.

● Objectives: a list of what students will learn and do during the lesson.

● Instructional Video(s): one or more explanatory or demo videos taught by an expert

computer science teacher, some of which include code-along activities. Most videos are

accompanied by corresponding downloadable slides for review or note taking.

● In-Lesson Activities: these activities take place during the lesson, prior to the graded

exercises, such as a class discussion, interactive, or code-along activities.

● Summary: a text version of the key concepts in the lesson.

● Vocabulary: a list of terms and definitions for the lesson.

● Lesson Exercises: one or more graded exercises that ask students to apply or extend the

concepts in the lesson. Lesson exercises include coding activities, discussions, research,

strategic games, computational practices (non-coding), and more. The variety of formats

and tasks prepare students for the diverse questions and tasks on the AP CSP Exam.

● AP-Style Practices: a practice activity where students complete a set of questions in the

format and style of the AP exam.

Other Assignments

In addition to the daily lessons and exercises, the AP CSP curriculum also offers other types of

assignments for students.

● Vocabulary Practices: Each unit has a vocabulary practice that helps students to

reinforce the unit’s keywords. These practices are game-based and allow for several

different types of practice formats like matching and flashcards. The vocabulary

practices are not a graded assignment.

● Big Picture Exercises: classroom investigations or discussions that examine the cultural

and societal impact of emerging technologies.

● Unit Projects: Five of the six units include an extended project that challenges the

students to apply various concepts from the current and past units in a new or more

complex way. These projects demand a high level of critical thinking and problem

solving.

● Unit Review Activities: Each unit has an autograded review activity where students

complete a set of ~20 multiple choice questions to prepare for the unit test.

● A Mini Performance Task: The course includes a practice performance task that helps

prepare students for the official AP CSP Create Task. This is a multi-day project that

mirrors the types of tasks and activities that students must complete to meet the

College Board requirements for the official task.

Assessments

The AP Computer Science Principles course offers two types of assessments: quizzes and tests.

● Quizzes: Each unit has two short quizzes that act as a checkpoint for understanding.

These quizzes range from 4-7 multiple choice questions with shuffled answers.

● Tests: Each unit has a summative test at its conclusion. The tests are always 20 multiple

choice questions with shuffled answers.

Grading

For Edhesive’s AP CSP course, there are several types of formative and summative assessments,

all intended to prepare students for the end-of-year 70-question multiple choice exam (70% of

the overall AP score) as well as the through-course Create performance task (30% of the overall

AP score).

The default course grading scheme maps to this 60/40 breakdown:

10% Unit Quizzes

50% Unit Exams

10% Lesson Exercises and Activities

10% Mini Performance Task

20% Unit Projects

Teacher Sidebar

The Teacher Sidebar, which is located within a teacher’s version of the student course, contains

several types of resources that will help you in facilitating the course, including:

● Lesson guides that detail the lesson objectives, lesson components, as well as indicators

of key points to emphasize and common misconceptions

● Supplemental resources, such as worksheets or unit project rubrics

● Alternative assessments, such as paper-based and alternate versions of quizzes and tests

for each unit

● Answer keys, including annotated solutions to quizzes and tests

Unit 0 : Course Introduction

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.

Unit 0 Schedule

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

Unit 0 Topics

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.

Unit 1 : Computational Thinking

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.

Unit 1 Schedule

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

Unit 2 : Programming

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.

Unit 2 Schedule

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

Unit 2 Topics

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.

Unit 3 : Data Representation

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.

Unit 3 Schedule

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

Unit 3 Topics

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.

Unit 4 : Digital Media Processing

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.

Unit 4 Schedule

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

Unit 4 Topics

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.