Looks like no one added any tags here yet for you.
algorithm
sequence of steps that are usually performed by a computer
procedure
named sequence of instructions that may take inputs and may report a value
expression
either:
a constant value, or
a call to a reporter block w/ input slots filled in
evaluated to produce a single value
value
can be anything (ex. number, string, sprite, costume, script, list)
abstraction
gives a name to something in a program
procedural abstraction
use of a procedure (block) to name an idea
process of developing a program by breaking up a large problem into smaller sub-problems
abstraction by generalization
writing a single block for similar cases of code, by using an input to distinguish them
data abstraction
giving names to numbers, text, lists, etc
function composition
using the result from one reporter as the input to another reporter
list
ordered set of items
concatenate strings
make a bigger string by connecting 2+ smaller ones
index
the position number of an item in a list
element
an item in a list
traversing a list
going through each item of a list
predict the ouputs:
[French, Spanish, German, Latin, Chinese]
“Art I”
“Programming for Business”
“2”
[Jazz Band, Orchestra, Band]
[Art I, Art II, Crafts] Wood Shop [Computer Repair, Programming for Business] Metal Shop [Orchestra, Band] Choir
[Art II, Crafts]
[Band]
“7”
“5”
debugging
process of testing, finding problems, and fixing them
iteration (loop)
repeating program structure
conditionals
control the code based on a condition (ex. if-else)
selection
deciding (selecting) which part of an algorithm to run based on a condition
sequencing
process of ordering code
code segment
sequence of connected instructions that carry out a purposeful action
predicate
asks a question where the answer is true or false
relational operators
predicates that compare two values
ex. equals, greater/less than
Boolean
a result that can only be true or false
Boolean/logical functions
predicates that have both domain and range as Booleans
AND
true AND true = true
OR (exclusive)
true OR true = true
true OR false = true
NOT
NOT false = true
reports opposite of input
Personally identifiable information (PII)
info that might make it possible for someone to figure out who you are
ex. Social Security number, age, race, phone number, medical info, financial info, biometric data (thumbprint, face scan)
local variable
can be set or used only in the environment in which it is defined
ex. inputs to procedures, variables created by “for” loops or “script variables”
global variable
usable by all scripts in the program
data type
classification of data, especially as an input to a procedure
ex. number, list
abstract data type (ADT)
type of abstraction that creates custom data types by using constructors and selectors
data abstraction
the creation and use of abstract data types in a program
“keep” block
takes a list and a predicate as input, and reports a new list keeping only the items from the input list that make the condition described by the predicate true
mod
reports the remainder when the first input is divided by the second
ex. 17 mod 5 = 2
software library
a collection of procedures that can be used in programs
application program interface (API)
documents what a programmer needs to know about using a library
a description of each procedure's purpose, inputs, and outputs (but not its algorithms)
copyright law
makes it illegal for anyone to make copies of a work w/out author’s permission
copyright violation vs. plagiarism
copyright violation - illegally copying someone’s work but giving credit
plagiarism - copying work not protected by copyright and pretending it’s yours
3 legal uses of Fair Use
quote a short excerpt for purposes of reviewing the original
copy newspaper articles for teaching a class if:
the event reported in the article was not anticipated when you planned your class
you don't keep using the same article year after year
produce a parody
Creative Commons
a specific copyright license that allows others to use, share, and revise your work
3 options similar to Creative Commons
Free software - anyone can copy, use, modify, redistribute
Open source software - a program’s code is put online, but author may restrict how people use the program
Open access - scholarly research reports are available for free download, no permission needed
Creative Commons Licenses
Digital Rights Management (DRM)
allows publishers to have copyright protection during the time when a work is most popular using encryption
Digital Millennium Copyright Act (DMCA 1998)
make it illegal to:
circumvent (get around) anti-piracy procedures that protect copyrighted works
make/sell devices that crack code in order to illegally copy software
**does infringe on free speech: discussing security online
Digital Divde
the gap between people who have access to communications technology (computers, Internet, online access) and those who don't
unequal access to computers and the Internet based on poverty, race, sex, age, geography, etc
recursion
calling a procedure from inside itself
using a procedure in its own definition
clone
a copy of a sprite that shares info with its parent sprite (the original)
event-driven programming
type of program structure where a script only runs briefly when the user clicks a button (an event), to do whatever action the button requires
modularity
the process of breaking a programming project up into separate sub-problems
higher-order function
a function that takes a function as input (or reports a function as output)
Artificial Intelligence (AI)
a field of computer science loosely defined as "trying to get computers to think”
outsourcing
paying other companies to perform tasks or provide services at a lower price than it costs to hire employees to do them
Internet
a computer network that uses open protocols to standardize communication; a network of independent but connected computing devices spread out all over the world
computer network
an interconnected computing system that is capable of sending or receiving data
computing system
a group of computing devices and programs working together for a common purpose
computing device
a physical object that can run a program (ex. computers, tablets, cell phones, smart sensors)
World Wide Web (WWW)
a system of linked pages, programs, and files that uses the Internet
scalability
ability of the Internet to keep working as it grows due to its redundancy
fault-tolerance
ability of a system to work around problems due to its redundancy
redundancy
inclusion of back-up elements in case one part fails
**physical connections have multiple pathways
open protocols
abstraction that standardizes communications in order to transmit data
routing
process of finding a path from sender to receiver
router
a computer that passes information from one network to another
path
a sequence of directly connected computing devices that connect a sender to a receiver
Internet Service Provider (ISP)
companies that sell Internet access to homes/buildings
web browser
the app used to access web pages (ex. google chrome, safari)
Uniform Resource Locator (URL)
web address
HTML (HyperText Markup Language)
language used to instruct a web browser on web page formatting
HTTP (HyperText Transfer Protocol)
language used by a web browser to interpret HTML instructions
search index
a database of info used for doing a search
bandwidth
maximum amount of data that can be sent in a given period of time
**high bandwidth = data travels quickly
the cloud
“computer farms” where tens of thousands of computers work together on a problem
storing data in the cloud = storing it somewhere on the Internet, but you don't know where
protocol
a set of rules that specify the behavior of a system; communication standards that allow different types of devices to interact
IP (Internet Protocol)
specifies how a router should handle a request for different IP addresses
lets your computer pretend it has a direct connection to another computer
TCP (Transmission Control Protocol)
manages the sending and receiving of all data as packets
resends lost or damaged packages + specifies the order for reassembling data once all packets are received
lets a computer pretend it has a reliable connection to the other computer
packet
small chunk of data and metadata
packet switching
the Internet sends short bursts of info, not long, continuous strings
Internet Abstraction Hierarchy
Application Layer Protocols - manage the interpretation and display of data
ex. HTTP
Transport Layer Protocols - manage the breakdown and reconstruction of data
ex. TCP
Internet Layer Protocols - manage the pathways that packets travel across
ex. IP
Network Interface Hardware - manage the connection between an Internet device and its local network
ex. cable, radio antenna
**brief overview of how the Internet works
When you enter a URL to see a web page:
Your computer sends a request using the language of HTTP. This data is broken down by TCP (Transmission Control Protocol) into packets (small chunks). The packets each “know” two IP addresses: their sender and their receiver.
Routers (computers located at intersection points of the pathways) run IP (Internet Protocol) that directs them in transmitting packages to the receiving IP address. If one part of a network fails, IP makes a router send the package through a working path. Because the Internet is a network of networks with many paths, its redundancy allows it to be able to work around problems (fault-tolerant).
Because packets may be sent through different pathways, they may arrive out of order, and some might have become lost. The TCP of the receiving computer takes inventory of what packages have arrived or have not. If there are missing packages, TCP orders them to be resent. Only when all of the packages have arrived will TCP re-arrange them in their proper order.
The receiving computer/server sends back instructions for making the web page in HTTP. When your computer receives this HTTP, your browser can then use the HTTP to access the HTML web page. HTML directs the display of the web page (how it looks on the screen).
DNS (Domain Name System)
protocol for translating domain names to IP addresses
domain name
human-readable way of locating an Internet site
IP address
machine-readable way of locating an Internet site
DNS hierarchy
simplifies the process of finding the computer with the desired domain name
**separate servers for finding domains = every server doesn’t need to know every domain
root domain
category code
.gov, .edu, .com, .org
country code
primary domain
main address for a site; the last 2 segments of a domain name (ex. berkeley.edu)
subdomains
subsections of primary domains or of other subdomains
snap.berkeley.edu is a subdomain of berkeley.edu
store.parks.ca.gov is a subdomain of ca.gov
ICANN (Internet Corporation for Assigned Names and Numbers)
independent organization that controls the DNS hierarchy + allocation of IP addresses
**Until 2009, ICANN was completely under US control
open standards
can be used by anyone to make new hardware or software w/out permission
**protocols are open standards
IETF (Internet Engineering Task Force)
organization that develops and approves new or changing protocols
by email, anyone with the necessary expertise can join
decisions made by unanmous consensus
ISOC (Internet Society)
worldwide, free, nonprofit membership society that’s officially in charge of the IETF
encryption
the process of encoding data to prevent unauthorized access
symmetric encryption
uses the same key for both encryption and decryption
the encryption key itself is a message that must be sent safetly
substitution cipher
symmetric encryption where each letter of the alphabet is substituted with some other letter
ex. Caesar Cipher
public key (asymmetric) encryption
uses a pair of keys: public key for encryption, private key for decryption
**sharing the public key doesn't give away the private key
secure HTTP connections
https:// instead of http://
SSL (Secure Sockets Layer)
TLS (Transport Layer Security)
protocols used to transfer encrypted info on the Internet
The site you are visiting sends your browser its public key
Your browser uses it to encrypt the info
Certificate Authorities
organizations that issue digital certificates to verify who owns the encryption keys
trusted third parties that certify owners of public keys
they ask you questions for which they hope only you know the answer
malware
software that was designed to harm or take partial control over your computer
keylogging software
malware that records every key pressed by a user
virus
malware that spreads and infects other computers
anti-virus/malware software
scans your files and Internet transmissions looking for malware