AP Computer Science Principals

Big Ideas

  • Creativity
  • Abstraction
  • Data and Information
  • Algorithms
  • Programming
  • The Internet
  • Global Impact

Computational Thinking Practices

  • Connecting computing
  • Creating computational artifacts
  • Abstracting
  • Analyzing problems and artifacts
  • Communicating
  • Collaborating


Computer Science: The New Literacy

Whether it’s 3-D animation, engineering, music, app development, medicine, visual design, robotics, or political analysis, computer science is the engine that powers the technology, productivity, and innovation that drive the world. Computer science experience has become an imperative for today’s students and the workforce of tomorrow.

The AP Program designed AP Computer Science Principles with the goal of creating leaders in computer science fields and attracting and engaging those who are traditionally underrepresented with essential computing tools and multidisciplinary opportunities.


Rigorously Developed

In development since 2008, AP Computer Science Principles was created with significant support from the National Science Foundation. The College Board worked with more than 50 leading high school and higher education computer science educators who piloted the course at their institutions. This rigorous process of development and testing has yielded a course that not only reflects the latest scholarship in the field, but provides students with a relevant and engaging learning experience.

Over 90 colleges and universities have stated their support for the course, with the majority anticipating they will award college credit for high exam scores.



AP Computer Science Principals


Code.org- AP Computer Science Principals Syllabus

Mr. Burrill's Course Syllabus

---Class Links---

Code Studio - App Lab - Blown to Bits - Nimbus Screencast

Unit 5 - Building Apps

This unit continues to develop students’ ability to program in the JavaScript language, using Code.org’s App Lab environment to create a series of small applications (apps) that live on the web, each highlighting a core concept of programming. In this unit students transition to creating event-driven apps. The unit assumes that students have learned the concepts and skills from Unit 3, namely: writing and using functions, using simple repeat loops, being able to read documentation, collaborating, and using the Code Studio environment with App Lab.

43- Mon Jan 9- -Unit 5: Lesson 1 & 2: Introduction to Event-Driven Programming, Multi-Screen Apps

Download PowerPoint Day 43

Today's Agenda-

  • Welcome back
  • Course Updates
  • Hand back 1st eemester finals
  • Students will be introduced to a new feature of App Lab: Design Mode
  • Students also learn how to add event handlers
  • Create a simple event-driven program by creating user-interface elements with unique IDs and attaching event handlers to them.
  • Recognize debugging and responding to error messages as an important step in developing a program.
  • Debug simple issues related to event-driven programming
  • Different types of App interaction on your phone- Computer/phone is sensing events that we generate
  • Run-Test-Debug cycle
  • Video- Introduction to Design Mode
  • In the last lesson we looked at Design Mode, an easy way to add UI elements to our apps. This lesson is all about you getting a chance to use those new skills to make a multi-screen app
  • Every programming language has some way of display simple plaintext output
  • Printing to the console is a very common technique not only for debugging but also as an aid in program construction and development.
  • You can use console.log to send messages to yourself to verify the program is doing what you think it’s doing which helps prevent errors down the line.
  • Why might a programmer actually “like” to get an error message?”
  • What's a screen, anyway?
  • At least 3 screens (Welcome, Game play, Game Over)
  • Complete Code.org Lesson 2 Unit 5
  • Complete Lesson 1 Unit 5 at code.org
  • Next Class



44- Wed Jan 11- -Unit 5: Lesson 3: Building an App: Multi-Screen App

Download PowerPoint Day 44

Today's Agenda-

  • Vocab & Video Quiz
  • Develop and design a plan for multi-screen application
  • Collaborate with a "thought partner" during the implementation of a project
  • Create a multi-screen application in App Lab using simple UI elements and event handling
  • Activity- Multi-Screen App
  • Go For It!! Lesson 3 Unit 5
  • Share Apps
  • Next Class
  • Review
  • Share Student Work
  • Next Class


  • Vocab- Coding Buddy


45- Fri Jan 13- -Unit 5: Lesson 4 & 5: Controlling Memory with Variables & Using Variables in Apps

Download PowerPoint Day 45

Today's Agenda-

  • Use variables in a program to store numeric values.
  • Store the value returned by a function (randomNumber, promptNum) in a variable for use in a program.
  • Debug problems related to variable re-assignment.
  • Write arithmetic expressions that involve variables.
  • Reason about multi-line segments of code in which variables are re-assigned multiple times.
  • Video- Intorduction to Variables - Part 1
  • Video- Variable Re-Assignment
  • Complete Lesson 4
  • Use global variables to track numeric data in an app.
  • Give a high-level explanation of what “variable scope” means.
  • Debug problems related to variable scoping issues.
  • Modify existing programs to add and update variables to track information.
  • Create a multi screen "clicker" game from scratch
  • Complete Lesson 5
  • Review


  • Vocab- Variable, Lable, Value, Initializing the Variable, Assignment Operator, Gets the Value, Variable Scope, Simple If Statement, ==, Global Variable,


46- Wed Jan 18- -Unit 5: Lesson 6 & 7: User Input and Strings / If-statements unplugged

Download PowerPoint Day 46

Today's Agenda-

  • Test- Unit 5 Assessment 1
  • Identify strings as a unique data type which contains a sequence of ASCII characters.
  • Describe characteristics of the string data type.
  • Accept string input in a program.
  • Manipulate user-generated string input to generate dynamic output.
  • Do Lesson 6
  • Reason about if-statements by tracing pseudocode programs by hand
  • Write a short program in pseudocode that uses if statements
  • Explain the purpose of if-statements in programs
  • Do Lesson 7
  • "Will it Crash" Activity
  • Review



47- Fri Jan 20- -Unit 5: Lesson 8: Boolean Expressions and "if" Statements

Download PowerPoint Day 47

Today's Agenda-


  • Boolean - A single value of either TRUE or FALSE
  • Boolean Expression - in programming, an expression that evaluates to True or False.
  • Conditionals - Statements that only run under certain conditions.
  • If-Statement - The common programming structure that implements "conditional statements".
  • Selection - A generic term for a type of programming statement (usually an if-statement) that uses a Boolean condition to determine, or select, whether or not to run a certain block of


48- Tues Jan 24- -Unit 5: Lesson 9 & 10: "if-else-if" and Conditional Logic / Building an App: Color Sleuth

Download PowerPoint Day 48

Today's Agenda-

  • Quiz
  • Snickers Bet
  • Write and test conditional expressions using Boolean operators AND (&&) OR (||) and NOT (!)
  • Given an English description write compound conditional expressions to create desired program logic
  • Use a "chain" of if-else-if statements to implement desired program logic
  • When given starting code add if-else-if statements or compound boolean expression to express desired program logic
  • Do Lesson 8
  • Write code to implement solutions to problems from pseudocode or description
  • Follow the iterative development process of a collaboratively created program
  • Develop and write code for conditional expressions to incorporate into an existing program
  • Write a large program from scratch when given directions for each step
  • Do Lesson 10
  • Review
  • Test Next Class


  • Selection - A generic term for a type of programming statement (usually an if-statement) that uses a Boolean condition to determine, or select, whether or not to run a certain block of statements.


49- Thurs Jan 26- -Unit 5: Lesson 11: While Loops

Download PowerPoint Day 49

Today's Agenda-

  • Snickers Bet
  • Test Today- Unit 5 Assessment 2
  • Explain that a while loop continues to run while a boolean condition remains true.
  • Translate a real-life activity with repeated components into a form that could be represented by a while loop.
  • Analyze a while loop to determine if the initial condition will be met, how many times the loop will run, and if the loop will ever terminate.
  • Write programs that use while loops in a variety of contexts.
  • Do Lesson 11
  • Review
  • Test Next Class


  • Iterate - To repeat in order to achieve, or get closer to, a desired goal.
  • while loop - a programming construct used to repeat a set of commands (loop) as long as (while) a boolean condition is true.


50- Tues Mon 30- -Unit 5: Lesson 12 & 13: Loops and Simulations & Introduction to Arrays

Download PowerPoint Day 50

Today's Agenda-

  • Review Unit 5 Test Assesment 2 Answers
  • Snickers Bet
  • Use a while loop in a program to repeatedly call a block of code.
  • Use variables, iteration, and conditional logic within a loop to record the results of a repeated process.
  • Identify instances where a simulation might be useful to learn more about real-world phenomena.
  • Develop a simulation of a simple real-world phenomenon.
  • Do Lesson 12
  • Identify an array as a data structure used to store lists of information in programs.
  • Create arrays and access information stored within them using an index.
  • Manipulate an array using the append, insert, and remove operations.
  • Account for the fact that JavaScript arrays are zero-indexed when using them in a program.
  • Video- Introduction to Lists Part 1
  • Video- Introduction to Lists Part 2
  • Video- Introduction to Lists Part 3
  • Video- Introduction to Lists Part 4
  • Do Lesson 13
  • Assessment 3 Next Class!


  • Models and Simulations - a program which replicates or mimics key features of a real world event in order to investigate its behavior without the cost, time, or danger of running an experiment in real life.
  • Array - A data structure in JavaScript used to represent a list.
  • List - A generic term for a programming data structure that holds multiple items


51- Wed 1- -Unit 5: Lesson 14: Building an App: Image Scroller

Download PowerPoint Day 51

Today's Agenda-

  • Snickers Bet
  • Use an array to maintain a collection of data in a program.
  • Create apps that allow user interaction through key events.
  • Refactor code in order to appropriately incorporate new functionality while maintaining readability and consistency.
  • Do Lesson 14
  • Test Today! Unit 5 Assessment 3


  • Key Event - in JavaScript an event triggered by pressing or releasing a key on the keyboard. For example: "keyup" and "keydown" are event types you can specify. Use event.key - from the "event" parameter of the onEvent callback function - to figure out which key was pressed.


52- Fri 3- -Unit 5: Lesson 15 & 16: Processing Arrays and Functions with Return Values

Download PowerPoint Day 52

Today's Agenda-

  • Last Chance- Snickers Bet
  • Review answers from Assessment 3
  • Use a for loop in a program to implement an algorithm that processes all elements of an array.
  • Write code that implements a linear search on an unsorted array of numbers.
  • Write code to find the minimum value in an unsorted list of numbers.
  • Explain how binary search is more efficient than linear search but can only be used on sorted lists.
  • Do Lesson 15
  • Use the return command to design functions.
  • Identify instances when a function with a return value can be used to contain frequently used computations within a program.
  • Design functions that return values to perform frequently needed computations within a program.
  • Do Lesson 16
  • Lesson 17 and Assessment 4 Next Tuesday!


  • for loop - A typical looping construct designed to make it easy to repeat a section of code using a counter variable. The for loop combines the creation of a variable, a boolean looping condition, and an update to the variable in one statement.
  • Return Value - A value sent back by a function to the place in the code where the function was called form - typically asking for value (e.g. getText(id)) or the result of a calculation or computation of some kind. Most programming languages have many built-in functions that return values, but you can also write your own.


53- Tues 7- -Unit 5: Lesson 17: Building an App: Canvas Painter

Download PowerPoint Day 53

Today's Agenda-

  • Programmatically control the canvas element in response to user interactions.
  • Maintain a dynamically generated array through the running of a program in order to record and reuse user input.
  • Use nested loops within a program to repeat a command on the same array index multiple times.
  • Perform variable arithmetic within an array index to access items in an array by their relative position.
  • Do Lesson 17
  • Take Unit 5 Assessment 4 at end of class


  • Canvas - a user interface element to use in HTML/JavaScript which acts as a digital canvas, allowing the programmatic drawing and manipulation of pixels, basic shapes, figures and images.
  • Key Event - in JavaScript an event triggered by pressing or releasing a key on the keyboard. For example: "keyup" and "keydown" are event types you can specify. Use event.key - from the "event" parameter of the onEvent callback function - to figure out which key was pressed.


54- Thurs 9- Unit 5 Test

Download PowerPoint Day 54

Today's Agenda-

  • Review Unit 5 Answers Assessments 1-4
  • Unit 5 Test! (21 Points)
  • Will Have 24 Hours to Complete!
  • You can seek out others for help.
  • Code.org completion (5 points)


Continue to Unit 6- Create and Explore Performance Tasks