CS Principles 2017

Vocab

Unit 1 - The Internet

Lesson 1: Personal Innovations

  • Innovation: A new or improved idea, device, product, etc, or the development thereof

Lesson 2: Sending Binary Messages

  • 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

Lesson 3: Sending Binary Messages with the Internet Simulator

  • Bandwidth: Transmission capacity measure by bit rate
  • Bit: A contraction of "Binary Digit"; the single unit of information in a computer, typically represented as a 0 or 1
  • Bit rate: (sometimes written bitrate) the number of bits that are conveyed or processed per unit of time. e.g. 8 bits/sec.
  • Latency: Time it takes for a bit to travel from its sender to its receiver.
  • Protocol: A set of rules governing the exchange or transmission of data between devices.

Lesson 6: Sending Numbers

  • Protocol: A set of rules governing the exchange or transmission of data between devices.

Lesson 7: Encoding and Sending Formatted Text

  • ASCII: American Standard Code for Information Interchange; the universally recognized raw text format that any computer can understand
  • code: (v) to write code, or to write instructions for a computer.
  • Protocol: A set of rules governing the exchange or transmission of data between devices.

Lesson 8: The Internet Is for Everyone

  • IETF: Internet Engineering Task Force - develops and promotes voluntary Internet standards and protocols, in particular the standards that comprise the Internet protocol suite (TCP/IP).
  • Internet: A group of computers and servers that are connected to each other.
  • Net Neutrality: the principle that all Internet traffic should be treated equally by Internet Service Providers.

Lesson 9: The Need for Addressing

  • IP Address: A number assigned to any item that is connected to the Internet.
  • Packets: Small chunks of information that have been carefully formed from larger chunks of information.
  • Protocol: A set of rules governing the exchange or transmission of data between devices.

Lesson 10: Routers and Redundancy

  • Network Redundancy: having multiple backups to ensure reliability during cases of high usage or failure
  • Router: A type of computer that forwards data across a network

Lesson 11: Packets and Making a Reliable Internet

  • Packets: Small chunks of information that have been carefully formed from larger chunks of information.
  • TCP: Transmission Control Protocol - 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.

Lesson 12: The Need for DNS

  • DNS: short for Domain Name System, this system translates domain names (like example.com) to IP addresses (like 93.184.216.34)

Lesson 13: HTTP and Abstraction on the Internet

  • DNS: short for Domain Name System, this system translates domain names (like example.com) to IP addresses (like 93.184.216.34)
  • HTTP: HyperText Transfer Protocol - the protocol used for transmitting web pages over the Internet
  • IP Address: A number assigned to any item that is connected to the Internet.
  • TCP: Transmission Control Protocol - 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.
  • URL: An easy-to-remember address for calling a web page (like www.code.org).

Lesson 14: Practice PT - The Internet and Society

  • DNS: short for Domain Name System, this system translates domain names (like example.com) to IP addresses (like 93.184.216.34)
  • HTTP: HyperText Transfer Protocol - the protocol used for transmitting web pages over the Internet
  • IP Address: A number assigned to any item that is connected to the Internet.
  • Net Neutrality: the principle that all Internet traffic should be treated equally by Internet Service Providers.
  • TCP: Transmission Control Protocol - 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.

Unit 2 - Digital Information

Lesson 2: Text Compression

  • Heuristic: a problem solving approach (algorithm) to find a satisfactory solution where finding an optimal or exact solution is impractical or impossible.
  • Lossless Compression: a data compression algorithm that allows the original data to be perfectly reconstructed from the compressed data.

Lesson 3: Encoding B&W Images

  • Image: A type of data used for graphics or pictures.
  • metadata: is data that describes other data. For example, a digital image may include metadata that describe the size of the image, number of colors, or resolution.
  • Pixel: short for "picture element", the fundamental unit of a digital image, typically a tiny square or dot that contains a single point of color of a larger image.

Lesson 4: Encoding Color Images

  • Hexadecimal: A base-16 number system that uses sixteen distinct symbols 0-9 and A-F to represent numbers from 0 to 15.
  • Pixel: short for "picture element", the fundamental unit of a digital image, typically a tiny square or dot that contains a single point of color of a larger image.
  • RGB: the RGB color model uses varying intensities of (R)ed, (G)reen, and (B)lue light are added together in to reproduce a broad array of colors.

Lesson 5: Lossy Compression and File Formats

  • Lossless Compression: a data compression algorithm that allows the original data to be perfectly reconstructed from the compressed data.
  • Lossy Compression: (or irreversible compression) a data compression method that uses inexact approximations, discarding some data to represent the content. Most commonly seen in image formats like .jpg.

Lesson 6: Practice PT - Encode an Experience

  • Abstraction: a simplified representation of something more complex. Abstractions allow you to hide details to help you manage complexity, focus on relevant concepts, and reason about problems at a higher level.

Lesson 14: Creating Summary Tables

  • Aggregation: a computation in which rows from a data set are grouped together and used to compute a single value of more significant meaning or measurement. Common aggregations include: Average, Count, Sum, Max, Median, etc.
  • Pivot Table: in most spreadsheet software it is the name of the tool used to create summary tables.
  • Summary Table: a table that shows the results of aggregations performed on data from a larger data set, hence a "summary" of larger data. Spreadsheet software typically calls them "pivot tables".

Unit 3 - Algorithms and Programming

Lesson 2: The Need for Algorithms

  • Algorithm: A list of steps to finish a task.
  • High Level Programming Language: A programming language with many commands and features designed to make common tasks easier to program. Any high level functionality is encapsulated as combinations of low level commands.
  • Low Level Programming Language: A programming language that captures only the most primitive operations available to a machine. Anything that a computer can do can be represented with combinations of low level commands.

Lesson 3: Creativity in Algorithms

  • Algorithm: A list of steps to finish a task.
  • Iterate: To repeat in order to achieve, or get closer to, a desired goal.
  • 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.
  • Sequencing: Putting commands in correct order so computers can read the commands.

Lesson 4: Using Simple Commands

  • Turtle Programming: a classic method for learning programming with commands to control movement and drawing of an on-screen robot called a "turtle". The turtle hearkens back to early implementations in which children programmed a physical robot whose dome-like shape was reminiscent of a turtle.

Lesson 5: Creating Functions

  • Abstraction: a simplified representation of something more complex. Abstractions allow you to hide details to help you manage complexity, focus on relevant concepts, and reason about problems at a higher level.
  • Function: A named bit of programming instructions.

Lesson 6: Functions and Top-Down Design

  • Abstraction: a simplified representation of something more complex. Abstractions allow you to hide details to help you manage complexity, focus on relevant concepts, and reason about problems at a higher level.
  • Function: A named bit of programming instructions.
  • Top Down Design: a problem solving approach (also known as stepwise design) in which you break down a system to gain insight into the sub-systems that make it up.

Lesson 7: APIs and Using Functions with Parameters

  • API: a collection of commands made available to a programmer
  • Documentation: a description of the behavior of a command, function, library, API, etc.
  • Hexadecimal: A base-16 number system that uses sixteen distinct symbols 0-9 and A-F to represent numbers from 0 to 15.
  • Library: a collection of commands / functions, typically with a shared purpose
  • Parameter: An extra piece of information passed to a function to customize it for a specific need

Lesson 8: Creating Functions with Parameters

  • Parameter: An extra piece of information passed to a function to customize it for a specific need

Lesson 9: Looping and Random Numbers

  • For Loop: Loops that have a predetermined beginning, end, and increment (step interval).
  • Loop: The action of doing something over and over again.

Lesson 10: Practice PT - Design a Digital Scene

  • Abstraction: a simplified representation of something more complex. Abstractions allow you to hide details to help you manage complexity, focus on relevant concepts, and reason about problems at a higher level.

Unit 4 - Big Data and Privacy

Lesson 1: What is Big Data?

  • Big Data: a broad term for datasets so large or complex that traditional data processing applications are inadequate.
  • Moore's Law: a predication made by Gordon Moore in 1965 that computing power will double every 1.5-2 years, it has remained more or less true ever since.

Lesson 2: Rapid Research - Data Innovations

  • One-pager: A business/corporate term for a one-page document that summarizes a large issue, topic or plan.

Lesson 5: Simple Encryption

  • Caesar Cipher : a technique for encryption that shifts the alphabet by some number of characters
  • Cipher: the generic term for a technique (or algorithm) that performs encryption
  • Cracking encryption: When you attempt to decode a secret message without knowing all the specifics of the cipher, you are trying to "crack" the encryption.
  • Decryption: a process that reverses encryption, taking a secret message and reproducing the original plain text
  • Encryption: a process of encoding messages to keep them secret, so only "authorized" parties can read it.
  • Random Substitution Cipher: an encryption technique that maps each letter of the alphabet to a randomly chosen other letters of the alphabet.

Lesson 6: Encryption with Keys and Passwords

  • Computationally Hard: a "hard' problem for a computer is one in which it cannot arrive at a solution in a reasonable amount of time.

Lesson 7: Public Key Cryptography

  • asymmetric encryption: used in public key encryption, it is scheme in which the key to encrypt data is different from the key to decrypt.
  • modulo: a mathematical operation that returns the remainder after integer division. Example: 7 MOD 4 = 3
  • Private Key: In an asymmetric encryption scheme the decryption key is kept private and never shared, so only the intended recipient has the ability to decrypt a message that has been encrypted with a public key.
  • Public Key Encryption: Used prevalently on the web, it allows for secure messages to be sent between parties without having to agree on, or share, a secret key. It uses an asymmetric encryption scheme in which the encryption key is made public, but the decryption key is kept private.

Lesson 8: Rapid Research - Cybercrime

  • Antivirus Software: usually keeps big lists of known viruses and scans your computer looking for the virus programs in order to get rid of them.
  • DDoS Attack: Distributed Denial of Service Attack. Typically a virus installed on many computers (thousands) activate at the same time and flood a target with traffic to the point the server becomes overwhelmed.
  • Firewall: software that runs on servers (often routers) that only allows traffic through according to some set of security rules.
  • Phishing Scam: a thief trying to trick you into sending them sensitive information. Typically these include emails about system updates asking you send your username and password, social security number or other things.
  • SSL/TLS: Secure Sockets layer / Transport Layer Security - An encryption layer of HTTP that uses public key cryptography to establish a secure connection.
  • Virus: a program that runs on a computer to do something the owner of the computer does not intend.

Unit 5 - Building Apps

Lesson 1: Introduction to Event-Driven Programming

  • Callback function: a function specified as part of an event listener; it is written by the programmer but called by the system as the result of an event trigger.
  • Event: An action that causes something to happen.
  • Event-driven program: a program designed to run blocks of code or functions in response to specified events (e.g. a mouse click)
  • Event handling: an overarching term for the coding tasks involved in making a program respond to events by triggering functions.
  • Event listener : a command that can be set up to trigger a function when a particular type of event occurs on a particular UI element.
  • UI Elements: on-screen objects, like buttons, images, text boxes, pull down menus, screens and so on.
  • User Interface: The visual elements of a program through which a user controls or communicates with the application. Often abbreviated UI.

Lesson 2: Multi-Screen Apps

  • Debugging: Finding and fixing problems in an algorithm or program.
  • Event-driven program: a program designed to run blocks of code or functions in response to specified events (e.g. a mouse click)
  • Event handling: an overarching term for the coding tasks involved in making a program respond to events by triggering functions.

Lesson 3: Building an App: Multi-Screen App

  • Event-driven program: a program designed to run blocks of code or functions in response to specified events (e.g. a mouse click)
  • Event handling: an overarching term for the coding tasks involved in making a program respond to events by triggering functions.

Lesson 4: Controlling Memory with Variables

  • 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"
  • Expression: Any valid unit of code that resolves to a value.
  • Variable: A label for a piece of information used in a program.

Lesson 5: Building an App: Clicker Game

  • ==: The equality operator (sometimes read: "equal equal") is used to compare two values, and returns a Boolean (true/false). Avoid confusion with the assignment operator "=",
  • Global Variable: A variable whose scope is "global" to the program, it can be used and updated by any part of the code. Its global scope is typically derived from the variable being declared (created) outside of any function, object, or method.
  • If-Statement: The common programming structure that implements "conditional statements".
  • Local Variable: A variable with local scope is one that can only be seen, used and updated by code within the same scope. Typically this means the variable was declared (created) inside a function -- includes function parameter variables.
  • Variable Scope: dictates what portions of the code can "see" or use a variable, typically derived from where the variable was first created. (See Global v. Local)

Lesson 6: User Input and Strings

  • Concatenate: to link together or join. Typically used when joining together text Strings in programming (e.g. "Hello, "+name)
  • String: Any sequence of characters between quotation marks (ex: "hello", "42", "this is a string!").

Lesson 7: If-statements unplugged

  • Conditionals: Statements that only run when certain conditions are true.
  • 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 statements.

Lesson 8: Boolean Expressions and "if" Statements

  • 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 when certain conditions are true.
  • 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 statements.

Lesson 9: "if-else-if" and Conditional Logic

  • 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 when certain conditions are true.
  • 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 statements.

Lesson 10: Building an App: Color Sleuth

  • Boolean Expression: in programming, an expression that evaluates to True or False.
  • Conditionals: Statements that only run when certain conditions are true.
  • 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 statements.

Lesson 11: While Loops

  • 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.

Lesson 12: Loops and Simulations

  • 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.

Lesson 13: Introduction to Arrays

  • Array: A data structure in JavaScript used to represent a list.
  • List: A generic term for a programming data structure that holds multiple items.

Lesson 14: Building an App: Image Scroller

  • 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.

Lesson 15: Processing Arrays

  • 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.

Lesson 16: Functions with Return Values

  • Return Value: A value sent back by a function to the place in the code where the function was called from - 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.

Lesson 17: Building an App: Canvas Painter

  • 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.