computing innovation
executes a program as a fundamental part of its function
can be physical, non-physical software, or non-physical concepts
computing system
group of computing devices & programs working together for a common purpose
algorithm
step-by-step procedure that solves a problem/executes a form of computation
each step must be precise, unambiguous & doable
can be expressed using only sequence, selection, and repetition
program
code statements/sequence of instructions that controls a computer
CPU executes it one instruction at a time
allows users to gain insight & knowledge about data
application programming interface (API)
Defines how other programs/web services can use it and communicate with it
Specifies how procedures in a library behave and can be used
Useful for real-time data that changes frequently
control structure
programming language statements that control the flow of a computer program
sequence control structure (sequencing)
application of each step of an algorithm in the order the steps are given
selection control structure
uses a Boolean condition to determine which 2 parts of an algorithm are used
repetition control structure
repeating of an algorithm for a specified number of times until a condition is met
input
-data sent to a computer for processing by a program
can be tactile, audible, visual, or text
output
-data sent back by a program to a device
can be tactile, audible, visual, or text
user interface (UI)
computer application in which a user interacts with a program
function
-behavior of a program when it is executed
what the code carries out when running
purpose
-the problem a program is intending to solve
the interest the program is pursuing
the reason why the program is being written
event-driven programming
-program activated by events like button clicks
events supply input data to a program, triggering blocks of code in a program that influence its behavior
integrated development environment (IDE)
-software that provides tools for programming (i.e. UI design, code editing)
provides a way to interpret and run the program
hardware
-electronic and mechanical components that execute the instructions of a computer program
works together with software
software
-computer programs or code that control the hardware
serves as interface between an individual and their computer
works together with hardware
computer
machine that processes information under control of a program
general purpose computer
-runs on many different platforms (i.e programs, apps)
includes smartphones and tablets
special purpose computer
-contains a fixed program, only allowing it to run a single set program
Includes calculators, watches, a car’s anti-lock braking system
central processing unit
-hardware that processes the program’s instructions, executing arithmetic and logic operations
carries out the instructions of a computer program
random access memory
temporarily stores the computer’s programs and data while the power is on
computer chip (integrated circuit/IC)
-contains millions of electronic circuits
integrates billions of transistors and logic gates
storage devices
permanently stores data even while the computer is off (i.e. disk drives, flash drives, CDs)
memory
physical device used to store information for use in a computer or other digital electronic device (i.e. disk drive, flash drive)
disk drive
randomly addressable & rewritable storage device
compiler
software that translates human readable code (source code) into binary code
motherboard
houses all of the computer’s main electronic components
input devices
transfers information into the computer’s memory (i.e. touchscreen, mic)
output devices
transfers information out of the memory (i.e. touchscreen, speaker)
network
group of two or more computers linked together
low-level language (machine language)
-programming language that is machine readable (1’s and 0’s)
-closer to the machine hardware
high-level language (pseudocode)
-programming language that is readable by humans, providing the programmer with easy to understand abstractions
blend of english and code
Moore’s law
number of transistors per sq. in. on ICs will roughly double every 2 years since its invention
data
distinct information formatted uniquely (i.e. text on paper, bytes stored in electronic memory)
Provides opportunities for identifying trends, making connections, & addressing problems
metadata
-Data about data
-Used for finding, organizing, and managing information
-Increases the effective use of data or data sets by providing additional information
-Allows data to be structured and organized
analog data
values that change smoothly, rather than in discrete intervals, over time (i.e. pitch and volume of music, colors of a painting, position of a runner)
big data
Data sets that are too large to fit on a normal computer/be processed by a standard spreadsheet/database program
May require parallel systems
Size of a data set affects the amount of information that can be extracted from it
bit
-binary digit
-smallest unit of data
1 or 0
parity bit
-bit that acts on a set of binary values
added to the leftmost bit of a string of bits to ensure the number of bits are even or odd
byte
group of 8 bits
run-length encoding
-compression algorithm that represents an image by the length of runs of identical pixels
lossless compression technique
used in bitmap (BMP) images
image compression
-Data compression that reduces the number of bits of transmitted or stored data
-Size reduction depends on the number of bits/pixels, number of diff. colors in the image, amount of redundancy in the original data representation, and the application of the compression algorithm
lossless compression
-Data compression technique in which no data is lost i.e. RLE
Used in BMP images
Used when the quality/ability to reconstruct the image is important
lossy compression
-Data compression technique in which some data is lost i.e. JPEG
Greater size reduction than lossless compression
Used when minimization of data size/transmission time is important
compilation
-process of translating an entire source into a single binary file
more efficient
interpretation
-process of translating source code into machine language one instruction at a time
immediately executes each instruction
easier to debug
abstraction
-general and simplified representation of something
formed by the inclusion of details necessary to make the abstraction useful
reduces complexity, making computer systems easier to use and understand
data abstraction
-Separates the abstract properties of a data type and the concrete details of its representation
Manages complexity by giving a collection of data a name without referencing its specific details
procedural abstraction
-Organizing and encapsulating algorithms in named procedures that can be called by name
Makes program smaller, easier to read, and allows for code reuse
Form of refactoring
Allows programmers to change the internals of the procedure without needing to notify users of the change
refactoring
-process of restructuring program code without changing its behavior
simplifies design, making it easier to read & maintain
tag/value pairs
-stores data
tag has to be a string
-value can be a number, string, or list that is stored & retrieved by their tag
variable
-names a memory location to hold many values in a program
data abstraction (has associated data storage)
stores data in the computer's main memory (RAM)
data is volatile
bug
-error in computer hardware or software
simulation
-Mimics real-world events with the purpose of drawing inferences
-Involves removing specific details/simplifying functionality.
-Facilitates the formulation & refinement of hypotheses related to the objects/phenomena under consideration.
-Computer simulations usually make some simplifying assumptions about the real-world object being modeled.
Internet
network of networks in which host computers are connected by routers
governed by the Internet Protocol Suite
based on open standards, enabling it to grow exponentially
protocol
system of rules that govern the behavior of a system
TCP/IP
routes messages between the clients & servers finding a path from the sender to the receiver
HTTP
system of rules that govern the WWW application
ensures secure, trusted, encrypted communication over the Internet
World Wide Web (WWW)
-Internet application that stores a collection of documents, images, and resources based on HyperText Transfer Protocol (HTTP)
Accessed through a browser
browser
-program that displays web pages
used to navigate the WWW
cookies
-Small files or bits of data that are stored on your computer.
-Placed when you access a site
data privacy
assures that personal/corporate confidential information is collected, used, protected & destroyed legally & fairly
personally identifiable information
-information about an individual that identifies, links, relates, is unique to, or describes them.
-i.e. social security number, age, race, phone number(s)
digital divide
gap between those who have access to the Internet & computers with those who do not
usually affected by socioeconomic, geographic, or demographic characteristics
bandwidth
rate at which data is downloaded/uploaded in a network
measured in bits per second, kilobits per second, or megabits per second
latency
measure of the amount of time it takes for a piece of data to reach its destination
measured in milliseconds
router
transmits data between 2 different networks
cable modem (DSL modem)
connects a home to an Internet Service Provider (ISP)
ethernet
uses wires to connect computers
port
memory location in a server’s RAM that is connected to software that listens for incoming requests
LAN
connects computers within a small area i.e. home/school
wifi (wifi network)
uses radiowaves to connect devices
internetwork
collection of disparate networks that are connected together via routers
redundancy
The inclusion of extra components that can be used to mitigate the failure of a system if other components fail
Network redundancy can be accomplished by having more than 1 path between any 2 connected devices
client
computer/software application that requests services from a server located on the internet i.e. web browser
server
host that provides a service i.e. Google’s Gmail service
host
computer that is connected to the Internet i.e. servers
packet
collection of data used by TCP/IP protocol to transmit data across the Internet
contains routing data & content of the message
Application Layer
Composes a message & passes it to the Transport Layer
Receives other messages passed on from the Transport Layer
Transport Layer
Splits a message into packets, adds TCP headers to number the packets, & sends it to the Internet Layer
Receives packets from the Internet Layer, places them in order, & passes it to the Application Layer when all is received
Internet Layer
Adds the destination IP address to each packet & passes it to the Link Layer
Receives packets from the Link Layer & checks to see if it is their IP address
If it is, it passes it to the Transport Layer
If not, it sends it back to the Link Layer to pass on to another IP address
Link Layer
Sends the individual packets to the Link Layers of other IP addresses
Receives packets from other addresses & passes them to the Internet Layer
IP address
String of numbers separated by periods that identifies each computer using Internet Protocol to communicate over a network
domain name
hierarchical name that identifies a domain & institution on the Internet i.e. .com, .edu, .gov
hostname
domain name that is associated with an IP address
domain name system (DNS)
Internet service that translates domain names into IP addresses
cryptography
“secret writing”
art & science of writing secret message
public key cryptography
uses two keys: a public key known to everyone & a private/secret key known only to the recipient of the message.
encryption
process of using a secret key to convert plaintext into ciphertext
symmetric encryption
the same key is used for encryption and decryption
asymmetric encryption
separate but related keys are used for encryption & decryption.
decryption
process of using a secret key to convert ciphertext into plaintext
cipher
system for creating a new alphabet/secret messages
substitution cipher
letters from a ciphertext alphabet are substituted for letters in a plaintext message systematically
Caesar cipher
shifts the alphabet by 3 letters to create cipher alphabet, substituting plain letters with shifted letters
open standard
-Standards openly available to the public
Allows devices, services, and applications to work together across a widespread network of networks
Created and managed through public processes by open international communities
Key for the exponential growth of the Internet
blacklist
list of email addresses or IP addresses for organizations that are known to be spammers.
whitelist
list of email addresses or IP addresses for organizations that are known to be spam free