AP Computer Science Principles introduces students to the foundational concepts of computer science and explores the impact computing and technology have on our society.
With a unique focus on creative problem solving and real-world applications, the CodeHS AP Computer Science Principles course gives students the opportunity to explore several important topics of computing using their own ideas and creativity, use the power of computing to create artifacts of personal value, and develop an interest in computer science that will foster further endeavors in the field.
Pen or Pencil
Composition Book
Wired Earbuds (optional)
Please donate 1 box of tissues (optional)
Arrive to class on time!
Be prepared to learn
Work hard and learn from your mistakes
Be safe, respectful, and responsible
All students are expected to abide by the school's cell phone policy regarding phones, wireless earbuds, and smartwatches. Students are expected to use the lab-provided computers during class. Please do not use your personal laptop or tablet during class.
Major Grades: 60%
Minor Grades: 40%
Students are expected to submit work prior to the due dates. If a due date is missed, students are still expected to submit the work. Anything more than one week late will only be eligible for partial credit.
An absent student is allowed one make-up day for each absence day, plus one day.
There are no official prerequisites for AP Computer Science Principles. This course is meant to be a first-time introduction to computer science and does not require students to come in with any computer programming experience. However, we recommend that students complete a first-year high school algebra course prior to taking this course. Students should be comfortable with functions and function notation such as f(x) = x + 2 as well as using a Cartesian (x, y) coordinate system to represent points in a plane.
Increase and diversify participation in computer science
Students, regardless of prior experience in computing, will develop confidence using computer science as a tool to express themselves and solve problems, and this confidence will prepare them for success in future endeavors in the field of computer science
Students will understand the core principles of computing, a field which has and continues to change the world
Students will be able to develop computational artifacts to solve problems, communicate ideas, and express their own creativity
Students will be able to collaborate with others to solve problems and develop computational artifacts
Students will be able to explain the impact computing has on society, economy, and culture
Students will be able to analyze existing artifacts, identify and correct errors, and explain how the artifact functions
Students will be able to explain how data, information, or knowledge is represented for computational use
Students will be able to explain how abstractions are used in computation and modeling
Students will learn to be informed and responsible users of technology
The course utilizes a blended classroom approach. The content is a mix of web-based and physical activities. Students will write and run code in the browser, create websites and digital artifacts, and engage in in-person collaborative exercises with classmates. Each unit of the course is broken down into lessons. Lessons consist of video tutorials, short quizzes, example programs to explore, written programming exercises, free response exercises, collaborative creation projects, and research projects. Since individual lessons are designed to take around 45 minutes to complete, students can expect to be assigned two lessons for each 90 minute block.
Students write and run programs in the browser using the CodeHS editor. Students will be able to write both text-based and block-based JavaScript programs, and students will use Processing.js to create graphical programs. Students gain programming experience early on in the course that will enable them to explore the rest of the course topics through computational thinking practices.
Access to a computer and high-speed internet is required. There is also an online textbook available for many modules and topics which can be accessed through the lesson plans or at https://codehs.gitbooks.io/introcs/content/
At the end of most units, students take a summative multiple choice unit quiz in the style of the AP Exam that assesses their knowledge of the concepts covered in the unit. The course also provides an AP Test Practice unit with a cumulative AP Practice Multiple Choice Test.
This course is based directly on the College Board AP Computer Science Principles Framework. We recommend reading the curriculum framework here for context. The main course objectives are summarized below in the six computational thinking practices and five big ideas for the course.
The six computational thinking practices represent important aspects of the work that computer scientists engage in, and are denoted here by P1 through P6:
Practice 1: Computational Solution Design
Design and evaluate computational solutions for a purpose.
Practice P2: Algorithms and Program Development
Develop and implement algorithms.
Practice P3: Abstraction in Program Development
Develop programs that incorporate abstractions.
Practice P4: Code Analysis
Evaluate and test algorithms and programs.
Practice P5: Computing Innovations
Investigate computing innovations.
Practice P6: Responsible Computing
Contribute to an inclusive, safe, collaborative, and ethical computing culture.
The five big ideas of the course encompass foundational ideas in the field of computer science, and are denoted here by B1 through B5:
Big Idea 1: Creative Development (CRD)
When developing computing innovations, developers can use a formal, iterative design process or experimentation. While using either approach, developers will encounter phases of investigating and reflecting, designing, prototyping, and testing. Additionally, collaboration is an important tool to use at any phase of development because considering multiple perspectives allows for improvement of innovations.
Big Idea 2: Data (DAT)
Data is central to computing innovations because it communicates initial conditions to programs and represents new knowledge. Computers consume data, transform data, and produce new data, allowing users to create new information or knowledge to solve problems through the interpretation of this data. Computers store data digitally, which means that the data must be manipulated in order to be presented in a useful way to the user.
Big Idea 3: Algorithms and Programming (AAP)
Programmers integrate algorithms and abstraction to create programs for creative purposes and to solve problems. Using multiple program statements in a specified order, making decisions, and repeating the same process multiple times are the building blocks of programs. Incorporating elements of abstraction, by breaking problems down into interacting pieces, each with their own purpose, makes writing complex programs easier. Programmers need to think algorithmically and use abstraction to define and interpret processes that are used in a program.
Big Idea 4: Computing Systems and Networks (CSN)
Computer systems and networks are used to transfer data. One of the largest and most commonly used networks is the Internet. Through a series of protocols, the Internet can be used to send and receive information and ideas throughout the world. Transferring and processing information can be slow when done on a single computer but leveraging multiple computers to do the work at the same time can significantly shorten the time it takes to complete tasks or solve problems.
Big Idea 5: Impact of Computing (IOC)
Computers and computing have revolutionized our lives. To use computing safely and responsibly, we need to be aware of privacy, security, and ethical issues. As programmers, we need to understand how our programs will be used and be responsible for the consequences. As computer users, we need to understand how to protect ourselves and our privacy when using a computer.
The through-course assessment is a performance task designed to gather evidence of student proficiency in the learning objectives. The AP Create Performance Task (PT) is an in-class assessment, administered by the teacher, that allows students to exemplify their learning through an authentic, “real-world” creation. In the Create Performance Task, students will design and implement a program to solve a problem, enable innovation, explore personal interest, or express creativity. Their development process should include exploration, investigation, reflection, design, implementation, and testing the program.
Students will gain the experience necessary to complete the Create Performance Task in class. Each unit comes with practice PTs in which students will research topics in computing, and create their own digital artifacts. Sufficient time is set aside in the course for students to prepare for and complete the Create Performance Task.
The AP Computer Science Principles end-of-course exam has consistent question types and weighting every year, so you know what to expect on exam day.
Section I: End-of-Course Multiple-Choice Exam
70 multiple-choice questions | 120 minutes | 70% of score | 4 answer options
57 single-select multiple-choice
5 single-select with reading passage about a computing innovation
8 multiple-select multiple-choice: select 2 answers
Section II: Create Performance Task: Written Responses
30% of score
Create Performance Task program code, video, and student-authored Personalized Project Reference | 9 hours in-class
4 written response prompts | 60 minutes end-of-course exam
The second section of the AP Computer Science Principles Exam consists of a through-course Create Performance Task where students will develop a computer program of their choice and an end-of-course written response section where students demonstrate their understanding of their personal Create Performance Task by answering four prompts. Students will be provided 9 hours of in-class time to complete their program, video, and develop a Personalized Project Reference.
Students learn how to build their own web pages. Students will learn the languages HTML and CSS, and will create their own live homepages to serve as portfolios of their creations.
This course begins with a strong focus on programming in order to allow students to create computational artifacts early on in the course. Students will be able to use their knowledge of programming to explore future topics in the course.
We use Karel, a dog that only knows how to move, turn left, and place tennis balls in his world, to show students what it means to program, and allow students to focus on computational problem-solving. Students will learn about the need for programming languages, the uses of programs, how to write programs to solve computational problems, how to design algorithms, how to analyze and compare potential solutions to programming problems, and learn the value and challenges involved in collaborating with others to solve programming problems. Students will use the grid coloring functionality of Karel to create a digital painting and embed this program in their portfolio website.
Students will use the grid coloring functionality of Karel to create a digital image. They will then embed this Karel program into their personal website portfolio.
This unit introduces students to the basics of JavaScript, including variables, user input, control structures, functions with parameters and return values, and basic graphics, how to send messages to objects.
In this unit, students learn how to use Booleans and logical operators with control structures to make more advanced programs in JavaScript.
In this unit, students learn to write reusable code with functions and parameters.
In this project, students will write a JavaScript program that tells a graphical story.
Students learn about lists and arrays which are essential basic data structures that any program will use.
In this unit, students will learn about the various ways we represent information digitally. Topics covered include number systems, encoding data, programmatically creating pixel images, comparing data encodings, compressing and encrypting data. Students will work in pairs to develop their own data encryption algorithms and attempt to crack the encryptions of their peers. Their text encryption tool will be embedded in their portfolio websites.
In this project, students will be implementing a form of cryptography known as Steganography. Students can choose this practice PT or the following.
In this project, students pair up with a partner to develop a novel image filter that can be applied to any digital image of their choosing. They will describe their image filter, and their development process, and embed their image filter along with its description on their personal portfolio website. Students can choose this practice PT or the previous.
This unit explores the structure and design of the internet, and how this design affects the reliability of network communication, the security of data, and personal privacy. Students will learn about the protocols and algorithms used on the internet and the importance of cybersecurity. Students will choose an innovation that was enabled by the Internet and explore the positive and negative impacts of their innovation on society, economy, and culture. Students will develop a computational artifact that illustrates, represents, or explains the innovation’s purpose, its function, or its effect, and embed this artifact in their personal portfolio website.
In this project, students will choose an innovation that was enabled by the Internet and explore the positive and negative impacts of their innovation on society, economy, and culture. Students will develop a computational artifact that illustrates, represents, or explains the innovation’s purpose, its function, or its effect, and embed this artifact in their personal portfolio website.
In this unit, students will explore using computational tools to store massive amounts of data, manipulate and visualize data, find patterns in data, and draw conclusions from data. Students will consider how the modern wealth of data collection has impacted society in positive and negative ways. Students will work in teams to investigate a question of personal interest and use public data to present a data-driven insight to their peers. They will develop visualizations to communicate their findings, and embed their visualizations in their portfolio websites.
In this project, students will work with a partner to answer a question of personal interest using a publicly available data set. Students will need to produce data visualizations and explain how these visualizations led to their conclusions. They will develop a computational artifact that illustrates, represents, or explains their findings, communicate their findings to their classmates, and embed their artifact in their personal portfolio website.
This time is set aside for students to create their AP Create Performance Task. Students will be given the chance to review course content and understand the scoring guidelines for the Create Performance Task. The Create PT will be administered over 9 hours of class time.
This unit gives students a review of the topics covered in the course and provides practice solving AP Exam-style multiple-choice questions.