Table of Contents

AP Computer Science Principles Study Guide

From Simple Studies, https://simplestudies.edublogs.org & @simplestudiesinc on Instagram

Disclaimer: All Quick Questions come from APCSP Quizlets

Unit 1- The Internet

Chapter 1

Lesson 1: Personal Innovations

Vocab:

Notes:

Lesson 2: Sending Binary Messages

Vocab:

Notes:

Lesson 3: Sending Binary Messages with the Internet Simulator Vocab:

Notes:

Internet: a tangible, physical system made to move information

Wires, Cables, and Wifi

How we send bits

  1. the operators use 0 and 1 to communicate to turn on the light and turn off the light.
  1. A timer can be used so that the sender and the receiver could communicate better when they are turning on/off the lights.
  1. Suppose you want to send one bit per second, you would turn it to 0 at one point and turn it to 1 at another point.
  1. However, this is way too slow. To increase the number of bits sent per second, we will need to increase the bandwidth (maximum transition capacity of a device).
  1. Bandwidth is measured by bit rate (Number of bits that we can send over a given period of time, usually measured in seconds).
  1. Latency is another form of measurement, Time it takes for a bit to go from sender to receiver
  1. A fiber optic cable is used to send bits through light
  1. No signal loss
  1. Expensive
    1. Hard to work with
  1. Send wirelessly
  1. Uses radio signal to send bits from one place to another
  1. Machines have to translate binary messages to radio waves
  1. Wireless router to physical router

Lesson 4: Number Systems

Notes:

Lesson 5: Binary Numbers

Notes:

Lesson 6: Sending Numbers

Vocab:

Quick Question:

You have a coordinate grid that is 75 x 75. Assuming that you encode the x and y coordinate as

separate numbers, what is the minimum number of bits that you will need to encode a coordinate

in that space?

a)16

b)14

c)13

d)10

Answer: c

Lesson 7: Sending Text

Vocab:

Quick Question:

What is the minimum number of bits you need to encode the 26 letters of the alphabet plus a space?

  1. 2 bits
  1. 3 bits
  1. 4 bits
  1. 5 bits
  1. 6 bits

Answer: d

Quick Question:

The standard QWERTY keyboard has 47 keys that can place characters on the screen. Each of these keys can also display a second character by holding the “Shift” key at the same time. How many bits would you need to encode everything that could be typed on this keyboard?

  1. 3 bits
  1. 4 bits
  1. 5 bits
  1. 6 bits
  1. 7 bits
  1. 12 bits

Answer: e

Quick Question:

ASCII has an encoding for every character of the alphabet as well as encodings for numbers – that is, encodings for the symbols of the digits 0-9. So here is a trick question: How many bits are required to store the text of the number “150” in ASCII?'

  1. 3 bits
  1. 8 bits
  1. 16 bits
  1. 24 bits
  1. 32 bits

Answer: d

Unit 1- The Internet

Chapter 2

Lesson 8: The Internet

Vocab:

Notes:

What it the Internet?

Vint Cerf states that “The Internet is for Everyone…”

Lesson 9: The Need for Addressing

Vocab:

Notes:

IP Addresses & DNS

associated, therefore there are multiple groups of DNS servers such as .com,.org, .net, etc.

Quick Question:

How many unique IP addresses could be made in a fixed length IP address system using 6 bits?

  1. 6 users
  1. 12 users
  1. 32 users
  1. 64 users

Answer: D

Lesson 10: Routers and Redundancy

Vocab:

Notes:

along that packet towards its destination Lesson 11: Packets and Making a Reliable Internet Vocab:

Notes:

The Internet: Packets, Routing, and Reliability

Lesson 12: The Need for DNS

Vocab:

Lesson 13: HTTP and Abstraction

Vocab:

Notes:

Unit 2- Digital Information

Lesson 1: Bytes and File Sizes

Quick Question:

The salesperson in a cell phone store is telling me that the phone I'm considering has 8GB of memory, which means I can save 10,000 photos taken with the phone's camera!

Is the salesperson telling me the truth? Why or why not?

Answer: No, the salesperson is lying because there are about 2-5 megabytes per photo so that means there is at least 20,000 megabytes in total. These megabytes convert into 20 gigabytes which is much more than we have.

Lesson 2: Text Compression

Vocab:

Lesson 3: Encoding B&W Images

Vocab:

Lesson 4: Encoding Color Images

Vocab:

Lesson 5: Lossy vs Lossless Compression

Vocab:

Notes:

Unit 3- Intro to Programming

Lesson 1: The Need for Programming Languages

IMPORTANT!! (will be a part of the AP exam task (Create Task))

Abstraction: abstraction reduces information and detail to facilitate focus on relevant concepts. It is a process, a strategy, and the result of reducing detail to focus on concepts relevant to understanding and solving problems

Algorithm: an algorithm is a precise sequence of instructions for a process that can be executed by a computer. They are expressed using languages, and can solve many, but not all problems.

Lesson 2: The Need for Algorithms

Vocab:

Lesson 3: Creativity in Algorithms

Vocab:

Lesson 4: Using Simple Commands

Vocab:

Lesson 5: Creating Functions (Important Lesson)

Vocab:

Notes:

Introduction to Functions
  1. Defined the function (give a single name to represent the set of actions)
    1. Call it (type the name of the function followed by a parentheses)
}

Quick Question:

Choose the statements that are true about functions (multiple right answers)

  1. meaningful function names that help people better understand programs
  1. meaningful function names that help computers better understand programs
  1. functions in programming are useful mathematical tools for doing complex computations
  1. functions in programming are named groupings of programming instructions

Answer: a&d

Quick Question:

Which of the following is NOT true about functions?

  1. functions are reusable programming abstractions
  1. functions can help simplify the writing and maintaining of programs
  1. functions help break a problem into logical chunks
  1. once defined, a function can be called many times from different parts of a program
  1. functions can’t make calls to other functions written by the same programmer

Answer: e

Lesson 6: Functions and Top-Down Design

Vocab:

Quick Question:

Which of the following statements about writing functions and Top-Down Design is NOT true?

a) Writing functions helps manage complexity in a program
  1. Top-Down Design leads to programs which feature of multiple layers of abstraction
  1. To programmers solving the same problem using Top-Down Design should arrive at identical programs
  1. Top-Down Design relies upon identifying subproblems of a larger problem
  1. Top-Down Design assist in identifying the layers of functions that will be used to solve a programming problem

Answer: c

Lesson 7: APIs and Function Parameters

Vocab:

-

Lesson 8: APIs and Function Parameters

Vocab:

Notes:

Functions with Parameters

Comments

Lesson 9: Looping and Random Numbers

Vocab:

Notes:

  1. FOR-LOOP
  1. WHILE-LOOP
  1. DO-WHILE-LOOP
  1. FOR-EACH LOOP
    1. REPEAT LOOP

Unit 4- Big Data and Privacy

Lesson 1: What is Big Data?

Vocab:

Quick Question:

Historically it has been observed that computer processing speeds tend to double every two years. This is known as

  1. Boolean’s Conjecture
  1. Moore’s Law
  1. The “Big Data Effect”
  1. Powers of 2 Principle

Answer: b

Quick Question:

When a computer scientist uses the term “Big Data” what do they typically mean?

  1. That a dataset is larger than 5TB which is a common “Big Data” threshold
  1. That there is so much data it’s virtually impossible to process
  1. There’s enough data that traditional data processing applications are inadequate
  1. It implies that the findings from the data are potentially hugely important for society

Answer: c

Lesson 2: Finding Trends with Visualization

(simple, straightforward)

Lesson 3: Check your assumptions

(simple, straightforward)

Lesson 4: Rapid Research- Data Innovations

Vocab:

Notes:

Data & Medicine

Lesson 5: Identifying People with Data

Vocab:

  1. 3D Printing
  1. Social Media (Snap, Instagram)
  1. Public Data
  1. Search Trends
  1. Global Positioning Systems (GPS)
  1. Sensors and Sensor Networks
  1. Smart Things (Grid, Houses, Transportation)
  1. The Internet of Things

Lesson 6: The Cost of Free

Quick Question:

Which of the following statements is the LEAST TRUE about personal data that technology companies potentially collect about their users?

  1. Companies frequently offer services free of charge in exchange for access to data about their users
  1. Personal data about users may be saved by a company permanently, never to be deleted
  1. Companies can sell the personal information of users to advertisers or other businesses
  1. Companies are required by law to give users options to personalize what data they collect about them

Answer: d

Lesson 7: Simple Encryption

Vocab:

Notes:

Lesson 8: Encryption with Keys and Passwords Vocab:

Notes:

Encryption and public keys

Therefore, computers use asymmetric encryption
o Public key: shared with everybody so anybody can encrypt a message o Private key: can only be decrypted by a computer with access
  1. SSL (Secure Sockets Layer)
    1. TLS (Transport Layer Security)

Quick Question:

What is the difference between “cracking” a code and “decrypting” a message?

Answer: Cracking the code is done by trying various possibilities and finally getting to the right one. Decrypting a message is when the key is available and is used with strategy to unlock the message

Lesson 9: Public Key Crypto

Vocab:

Lesson 10: Rapid Research- Cybercrime

Vocab:

Notes:

Internet: Cyber Security and Crime

o Stolen credit card numbers o Social Security numbers healthcare records compromised o Hacking o Drones being hijacked
  1. Fake install
    1. Security back door
    • When a virus enters a computer, it can…
      1. Steal and delete
  1. Control programs
    1. Remote operation
    • Only 10% of the time, hacking happens because of a security bug. Other 90% of the time it’s because of a simple mistake a person has made (YOU)
    • Steps we all must take to avoid getting hacked
      1. Use strong password
  1. Check for authentic web addresses
  1. Install system security updates often. Don’t install software you don’t trust

Unit 5- Building Apps

Chapter 1: Event-Driven Programming

Lesson 1: Buttons and Events

Vocab:

Notes: Introduction to Design Mode

New Code:

Lesson 2: Multi-Screen apps

Vocab:

New Code:

Lesson 3: Building an App: Multi-Screen App Vocab:

Lesson 4: Controlling Memory with Variables Vocab:

New Code:

Lesson 5: Build an App: Clicker Game

Vocab:

New Code:

Lesson 6: User Input and Strings

Vocab:

New Code:

Lesson 7: “If” Statements Unplugged

Vocab:

Lesson 8: Boolean Expressions and “If” Statements Vocab:

New Code:

Lesson 9: “if-else-if” and Conditional Logic

Vocab:

New Code:

Lesson 10: Building an App: Color Sleuth

Vocab: Boolean Expression - in programming, an expression that evaluates to True or False.

of statements. New Code:
event. setProperty() lets your app change any property listed in Design mode for a given UI element.

Chapter 2: Programming with Data Structures

Lesson 11: While Loops

Vocab:

New Code:

Lesson 12: Loops and Simulations

Vocab:

Lesson 13: Introduction to Arrays

Vocab:

New Code:

Lesson 14: Building an App: Image Scroller

Vocab:

which key was pressed.

New Code:

elements button, textInput, textLabel, dropdown, checkbox, radioButton, image, and event handlers for those UI elements and each type of user interaction needed. The UI element, with unique id, must exist before the onEvent function can be used.

Lesson 15: Processing Arrays

Vocab:

New Code:

Lesson 16: Functions with Return Values

Vocab:

calculation or computation of some kind. Most programming languages have many built-in functions that return values, but you can also write your own.

New Code:

Lesson 17: Building an App: Canvas Painter

Vocab:

New Code

About the Exam

o Single-select with reading passage about a computing innovation 5 questions o Multi-select 8 questions
o Be creative!! o Apply your knowledge o Helpful Resources
(A step-by-step 5 part series that is extremely helpful if you have no idea how to start)

Technology and Tools Needed for Create Performance Task

Background

You need to setup your AP Digital Portfolio to officially submit your performance tasks and to sign up for the exam. There are also several tools you should be familiar with in order to create the necessary PDF documents and Video screen captures that you need to submit.

Resources and Quick Links

o AP Central web page about the digital portfolio

More Details – Table of contents

AP Digital Portfolio Setup

Goal: Students should be aware of the Digital Portfolio and how to access it. They should know what's there and be familiar with the basic mechanics of uploading and submitting their projects.

If your students have not done this yet, they will need to register themselves with AP digital portfolio in order to upload their projects.

Follow College Board Instructions to Setup Portfolio

The digital portfolio and guide contains a few helpful other things students should know about such as:

Making PDFs for Written Responses

You are required to make a PDF of your written responses to prompts. It's recommended that you use the College Board templates for filling out your responses. At some point you will have your written responses in a word processing document such as Microsoft Word, Google Docs, or Pages.

What follows is copied from the AP Student Guide for the digital portfolio

How to make a PDF

Microsoft Office (Word, PowerPoint)

o Open your Word or Powerpoint document. o From the top menu select “File,” and select “Save As.” o In the dialog window, go to the drop-down menu for “Save as type,” and select “PDF.” o Click “Save.”

Google Docs

o From the top menu select “File,” and select “Download as,” and select “PDF Document (.pdf)”

Pages

o Open your Pages document. o From the top menu select “File,” and select “Export to,” and select “PDF.” o In the dialogue window select “Best,” image quality. o Choose a destination for the export and click “Export.”

Making PDF of Program Code (for the Create PT)

You need to make a PDF of your code and you also draw an oval and rectangle onto the PDF to highlight certain parts. There are a few options for this.

Details: how to make a pdf of your code

Step 1 - copy your code in App Lab

Step 2 - paste the code into a page or doc for printing

o This tool lets you draw rectangles and ovals over a pretty-ified version of the code (diagram at right) o If you can print a PDF from the browser, this should be all you need.

* Option: Github Gist – GitHub Gist is a tool designed to let you quickly share code. We can use it to quickly print as well.

o Go to GitHub Gist o Paste your code into the code area (the large open area with line numbers) o Optional: In the filename box type .js – this forces the box to recognize the code as javascript o Click “Create Secret Gist” - this will save the code to a new page anonymously o From your Browser choose “File → Print” and use your computer's option to print to PDF.
o This option is fine but you won't get line numbers next to your code which can be convenient. o If you choose this option you should add your annotations (rectangle and circle) here in the word processor.

How to add Ovals and Rectangles to a PDF

If not using CodePrint you'll need to add ovals and rectangles to the PDF of your code. Windows

Mac

Making a Video Screen Capture

Students are required to make at least one video that is a “Screen capture” of themselves using the program they wrote for the Create PT.

How To Make a Screencast

If you have not made any screencapture videos in class to this point students may ask how to do it. You will need to use 3rd party screen capture software. We recommend investigating options that will work for your school's software requirements. Here are two options:

Credits:

https://code.org

https://ceac.state.gov/genniv/ (IPv4 Picture)

https://aphighered.collegeboard.org/sites/default/files/ap-computer-science-principles-course-

overview.pdf

https://www.csforallteachers.org/computer-science-principles

https://computing-concepts.cs.uri.edu/wiki/Computing_Innovations

https://studio.code.org/s/csp-create-2019/stage/1/puzzle/2