AP Computer Science Principles


week 38: Jun 3 - Jun 7


week 37: May 28 - may 31


week 36: May 20 - May 24


week 35: May 13 - May 17


WEEK 34: MAY 6 - MAY 10

week 33: Apr 29 - May 3

week 32: Apr 22 - Apr 26


week 31: Spring Break



2a - video - demonstrates an important part of the program running
- less than 1 minute
- less than 30mb in size
2a - writing

- mention the programming language
- mention the purpose of your program (game, business, studying...)
- explain exactly what the video is showing
- can include "in addition my program can...")

2b - describe the process/steps ("first", "next", "then", "after that", etc)
- describe how you continued to revise and test as the program grew
(showing iteration, or looping back to add on/enhance often during the process)
- mention 2 problems you encountered, and how you solved them (be specific)
- could also change 1 of the problems to an "opportunity"
for example: "I had extra time so I decided to add color to my text - to do this I had to look up in our book how to do this as I had not done this before"

- mention if you worked alone or with another student
- mention all three algorithms by name
for example: "The algorithm I chose is process_menu(), which includes two sub-algorithms called add_item() and remove_item()
- describe how each algorithm uses math or logic (be detailed, don't just say it uses math)
- describe how all 3 work together to provide an important purpose for your program
- include screenshots of all 3 right under the writing so the reader can see what you are talking about right away

2d - mention if you worked alone or with another student
- mention the abstraction by name
- how it is important to to your program
- if there is math/logic then explain it
- Tell how the abstraction "manages complexity" in your program by:
1. The name makes the purpose clear to anyone reading the program
2. That it is called more than once (describe where)
3. Is more efficient as lines of code do not need to be repeated



week 30: APR 8 - Apr 12

week 29: Apr 1 - apr 5


Public Key Encryption:
- uses both a private and a public key - is more secure
- is asymmetric (two different keys)
- is more secure than just private key encryption
- also uses Certificate Authorities to authenticate/verify the owners of the keys


week 28: Mar 25 - Mar 29

week 27: Mar 18 - Mar 22


week 26: Mar 11 - Mar 15

* For each pi lesson
- take pictures of the setup
- post to your blog
- add a short paragraph about the purpose of the lesson, and at least one problem you had to solve

week 25: Mar 4 - Mar 8


Week 24: Feb 25 - Mar 1

winter Break: Feb 18 - Feb 22

week 23: Feb 11 - Feb 14


week 22: Feb 4 - feb 8

Week 21: Jan 28 -Feb 1

heuristic: a specific type of algorithm, usually used when exact solutions are difficult, impossible or would be an inefficient use of time. The goal of heuristics is to develop a simple process that generates accurate results in an acceptable amount of time.
* examples: file compression, Google maps - can you think of times when would exact solutions be necessary?

week 20: Jan 22 - Jan 25

Purpose The intended goal or objective of the innovation
Function How the innovation works (consumes/produces data)

An impact, result, outcome of the innovation

- Explain and put into context
- Relate to economy, society, or culture
- Connect to a group or individual

Feature An "extra" attribute or aspect of an innovation
Culture A group of people: example - football players, students with asthma
Economy A group of people with similar economic interests, or whose jobs or industry are similar (Netflix put Blockbuster out of business)
Society Be specific - whose society? which society?
Data Think of what types of files are being used, saved, sent - what is the input and output? Not the sensors or transmission method (cameras, cables, chip readers, etc)
Storage How big are the files? how will everything be stored? What problems are there?
Security What might happen if data is accessed? Hacking can be mentioned here.
Privacy What can someone do with the data if they are able to get it?


week 19: Jan 14 - Jan 18


week 18: Jan 7 - Jan 11


week 17: Jan 2 - Jan 4

week 16: DEC 17 - DEC 21


week 15: Dec 10 - Dec 14



week 14: Dec 3 - Dec 7


week 13: Nov 26 - Nov 30

November Grade Check-in:
- mario (less)
- integer overflow & floating imprecision
- return.c, cube.c, name.c, triangle.c, bool.c
- string0.c, string1.c, ascii.c, capitalize.c, strlen.c
- cast0.c, cast1.c, argv0.c, argv1.c, argv2.c
- pokemon.c, mean.c, mario.c, fahrenheit.c
- code.org Unit 2 lessons 1-5, & assessment
- initials - less
- blog post: Blown to Bits
- blog post: IP

Vocab Week 13

  • different paths: Routers respond to traffic on the Internet in real time. The best path at one moment might be backed up a few seconds later. Routers choose the current best path to get the message through
  • distributed denial-of-service (DDoS) - a type of computer attack that uses a number of hosts to overwhelm a server, causing a website to experience a complete system crash
  • domain name syntax - hierarchal definition of what a domain should look like; for example in nbc.com the ',' character marks the location of the type of address this is - to the right is .com so nbc is located on the name server that contains all the 'com' addresses
  • domain name system (DNS): maps internet domain names to the internet protocol network addresses they represent and allows websites to use names, rather than difficult-to-remember IP addresses
  • dropped messages: Poorly formed messages cannot be delivered and so are dropped, just like a letter with a bad address on it
  • ftp - file transfer protocol - the way that files can be transferred from a computer to the internet (often used in website development)
  • HTTP: hypertext transfer protocol (HTTP) is the protocol for data communication for the World Wide Web - it handles file requests for information from servers and delivers results to the client
  • Internet Protocol (IP) - the way devices communicate with each other
  • Internet Protocol (IP) addresses: a unique string of numbers separated by periods that identifies each computer/device using the Internet Protocol to communicate over a network.
    - IPV4 was a 32-bit address and allows for up to 4.3 billion addresses
    - newer IPV6 is 128-bit address and allows for up to 3.4×1038 =  (340 undecillion addresses)
  • multiple hops: A message travelling across the Internet will visit many routers as each tries to forward it along the most efficient path to its destination
  • packets - Small chunks of information that have been carefully formed from larger chunks of information.
  • router: a computer which receives messages travelling across a network and redirects them towards their intended destinations based on the addressing information included with the message.
  • routing (of packets) - way in which data is sent on a network
  • transmission control protocol (TCP) - provides reliable, ordered, and error-checked delivery of a stream of packets on the internet. TCP is tightly linked with IP and usually seen as TCP/IP in writing
  • to / from address: Like an IP address, included on every message sent over the Internet
  • URL - An easy-to-remember address for calling a web page (like www.google.com)


week 12: Nov 19 - 21

week 11: Nov 13 - Nov 16

week 10: Nov 5 - 9

Vocab Week 10

  • compile - to convert a program from souce code (human readable) to object (machine) code the computer can execute
  • function: A segment of code that performs a specific task, sometimes taking some input and sometimes returning some output.
  • lossless compression - data (number of bits) is compressed in a way that the preserves all data and allows full recovery - gif, wav and png files use this method
  • lossy compression - some data (bits) gets thrown away meaning you cannot recreate the original file later - this is used in jpg and mp3 files
  • metadata: Data that describes other data. For example, a digital image may include metadata that describe the size of the image, number of colors, and resolution, among other things
  • Moore's Law: the observation that the number of transistors in an integrated circuit doubles approximately every two years
  • object code (or machine code) - the result of compiling and assembling source code - this is the binary representation of a program that the computer can run
  • pixel - A pixel is one small part (element) of a picture. Pixels are stored in a grid and have both a x (horizontal) and y (vertical) value. A pixel has a color which can be defined by an amount of red, green, and blue with values from 0 to 255.
  • source code - a program written in a language that a human can understand - it it the original code of a program before it is compiled and assembled into Object or Machine Code


week 9: Oct 29 - Nov 2

A gentle reminder: An October grade will be going in soon and it is based in part on the following:
- blog posts for Marconi, The Internet is for everyone..., and the Tech 2018 Innovations article
- Delta Math assignments Jon_Snow & Ygritte
- programs: cash, isbn 1 & 2, madlib (which should be in your labs folder)

week 8: Oct 22 - Oct 26


week 7: Oct 15 - Oct 19


week 6: Oct 9 - Oct 12

Vocab Week 6

  • bandwidth - Transmission capacity measure by bit rate - how much data can be transmitted at once (in best case scenario)
  • bit rate - (sometimes written bitrate) the number of bits that are conveyed or processed per unit of time. e.g. 8 bits/sec.
  • boolean data type- a value that can have only 2 possible conditions - expressions (<, >, <=, >=, ==, !=, &&, ||, and !).
  • bps - bits per second - the use of a lowercase b indicates bits - used to measure how many bits are transmitted
  • data type - All values in a programming language have a "type" - such as a Number, Boolean, or String - that dictates how the computer will interpret it. For example 7+5 is interpreted differently from "7"+"5"
  • IDE - integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor and a terminal window
  • latency - Time it takes for a bit to travel from its sender to its receiver - a high latency number is known as lag - latency is measured in time (milliseconds)
  • logical operators: Establishing the truth or falsehood of relationships among variables in our programs.
  • loops -lLoops allow for the repetition of code until a condition is met.
    • for loop _ to start the variables are initialized and the condition is evaluated
      If the condition is true, the code in the loop's body runs, variables are updated, and the condition is reevaluated.
      If the condition is false, the loop terminates
    • while loop - to start the condition is evaluated
      If the condition is true, the code in the loop's body runs, and the condition is reevaluated
      If the condition is false, the loop terminates
    • do-while or while true loop - to start the code in the loop's body runs once - then condition is evaluated
      If the condition is true, the code in the loop's body runs again, and the condition is reevaluated.
      If the condition is false, the loop terminates or is broken out of

Write a guessing game program that does the following:
- generates a pseudo random number between 0 and 1023
- asks the user for a guess
- repeats the process until the user guesses the right amount of skittles
- if the user does not enter a valid number then the prompt simply re-appears
- message are printed when the guess it too high, too low, or correct
- when correct the program prints a message and then exits

Style is correct (comments, indentation, naming conventions)

week 5: oct 1 - oct 5

Lab 1
Write a program that does the following:
Gets an integer from 1 to 100 from the user
If the input is out of range prints an error message and exits the program
Prints out the original number
Prints out a message telling us if the original number was odd or even
Style is correct (comments, indentation, naming conventions)


week 4: Sep 24 - Sep 28


week 3: Sep 17 - Sep 21

Vocab Week 3
  • binary - A way of representing information using only two options.
  • bit - A contraction of "Binary Digit"; the single unit of information in a computer, typically represented as a 0 or 1
  • byte - a collection of 8 bits - data storage is measured in Bytes - generally an uppercase B indicates Bytes
    • KB (kilo) = approximately 1,000 bytes (thousands)
    • MB (mega) = approximately 1,000,000 bytes (millions)
    • GB (giga) = approximately 1,000,000,000 bytes (billions)
    • TB (tera) - approximately 1,000,000,000,000 bytes (trillions)
  • data type - All values in a programming language have a "type" - such as a Number, Boolean, or String - that dictates how the computer will interpret it. For example 7+5 is interpreted differently from "7"+"5"
  • debugging: the process of finding and fixing errors in your programs.
  • integer - a data type that can be positive whole numbers, negative whole numbers, or
    zero (but not decimals)
  • strings: Ordered series of characters that often represent natural human language.

week 2: Sep 10 - Sep 14


a computer is…

a device that accepts input, stores data, and processes it in some way to produce an output


week 1: Sep 5 - 7