Identity theft, stealing money, stealing private information, controlling private computers.
An observation that the processing speed of computers is doubling every year. This is *exponential* growth. Computers are getting smaller and faster at an exponential rate.
The study of computational thinking, the thinking humans need to in order to describe a step by step process to a computer.
Documentation for all Karel Commands and Syntax.
Calling a function actually gives the command, so the computer will run the code for that function.
A function is like a command that you get to invent and name. It allows us to break our program into smaller parts, making the program easier to understand.
Defining a function means to teach the computer a new command and explain what it should do when receiving that command.
In Python functions, the function body is the indented block of code that comes after the `def my_function():` line. The function body is what will be executed when the function is called.
`snake case` refers to the style of writing in which each space is replaced by an underscore `_` character and the first letter of each word is lowercase.
Top down design is a method for breaking our program down into smaller parts.
Assumptions we make about what must be true before the function is called.
A message in your code that explains what is going on.
Managing complexity by "abstracting away" information and detail, in order to focus on the relevant concepts.
The ability to use methods and programs that we do not fully understand, or are unable to write.
SuperKarel is like Karel but already knows how to turnRight() and turnAround()
APIs and libraries simplify complex programming tasks by providing sets of clearly defined methods of communication among various computing components.
Written instructions detailing the functions, methods, and variables available and how to use them.
A for loop lets us repeat code a **fixed number of times.**
Executes code only if condition is true
Control structure that lets us run either one section of code or another depending on a test.
Lets us repeat code as long as something is true.
A control structure lets us change the flow of the code.
An algorithm is a set of steps or rules to follow to solve a particular problem.
Sequencing, or sequential execution, is step by step execution of instructions in the order they are given.
Repetition of instructions a specified number of times, or until a condition is met.
Using a condition to determine which part of an algorithm is executed.
Pieces of information you can give to functions when you define them. When the function is called the arguments are the data you pass into the function's parameters. Parameter is the variable in the declaration of the function. Argument is the actual value of this variable that gets passed to the function.
Ultra Karel is the same as Super Karel, except Ultra Karel has the ability to paint the grid world!
Indentation is the visual structure of how your code is laid out. It uses tabs to organize code into a hierarchy.
Pair programming is a collaborative programming practice where two programmers work together at one computer on the same piece of code.
The driver’s role is to control the mouse and keyboard and type out the code. They should concentrate on solving the current task while keeping the navigator’s plan-of-action in mind.
The navigator’s role is to read the problem and narrate the plan-of-action. The navigator should be checking for typos or other errors as the driver produces code to catch them as soon as they arise and before they cause further errors. They should also be actively thinking of alternative, more efficient ways to solve the problem.
A programming language is any set of rules that converts strings, or graphical program elements in the case of visual programming languages, to various kinds of machine code output.
Traditionally the very first program you write when learning a programming language, a program that prints "Hello world" to the user.
Displaying text on the screen
Declaring a variable is defining it for the first time.
Initializing a variable is giving it an initial value.
Adding two strings together using the "+" operator.
A variable with text as the value
A variable with a whole number as the value
A variable with a decimal number as the value
A function that prints a prompt and retrieves text from the user.
The process of converting the value of one data type (integer, string, float, etc.) to another data type is called type conversion.
Also called floats, floating point numbers represent real numbers and are written with a decimal point dividing the integer and fractional parts.
Arithmetic operators include + addition, - subtraction, * multiplication, / division, and % modulus. These operators are used to perform basic mathematical tasks.
A coordinate system uses numbers as coordinates to place objects in a geometric space.
The variables that are attached to the object.
An event is an action (such as clicking the mouse or pressing a key on the keyboard) that a program detects and uses as input.
A function passed as a parameter to another function in order to be called later.
A person or device that makes calculations, stores data, and executes instructions according to a program.
A function is like a command that you get to invent and name. It allows us to break our program into smaller parts, making the program easier to understand.
Print Displaying text on the screen.
A general term in programming that refers to the flow of information into and out of a program
A True or False value
Used to make logical associations between boolean values.
Used to make comparisons between values.
An if statement lets you ask a question to the program and only run code if the answer is true.
Executes code only if all conditions are false
sequential programming refers to programs that are executed sequentially – once through, from start to finish, without other processing executing.
Non-sequential Programming refers to a programming paradigm where programs can have multiple tasks being completed at once or out of sequential order.
A for loop lets us repeat code a **fixed number of times.**
Not actually random, but appears to be random
Exits the current loop and resumes execution at the next statement.
Rejects all the remaining statements in the current iteration of the loop and moves the control back to the top of the loop to continue to the next iteration. Can be used in both while and for loops.
Exits a function, optionally passing back an expression to the caller. A `return` statement with no arguments is the same as `return None`.
a namespace is the collection of variable names that exist at a certain point in your code.
The Standard Library is the baseline, plain version of the programming language. It has the built-in functions that you use.
A variable that is restricted to use in a certain scope of a program
Runtime errors in a program. by default, they stop the program.
Programming constructs that can be used to gracefully handle exceptions so that a program can continue in spite of them.
Digital information generally comprises data that is created by, or prepared for, electronic systems and devices such as computers, screens, calculators, communication devices and so on, and can be stored on those devices or in the Cloud
A number system defines how we represent numbers. It defines which digits we can use, and what value each position (place value) in a number has.
The number base of a number system defines how many digits are in the number system, and the base of the exponent for each place value in a number.
The number system we use in out everyday lives. It has 10 digits, 0-9.
Number system that has 2 digits, 0 and 1. This is how computers represent numbers at the base level.
Bit means "binary digit". A bit is a single digit in a binary number. A bit can either be 0 or 1.
ASCII is the standard protocol for encoding text information as bits. The ASCII table assigns a unique binary number to every text character.
An image can be represented as a grid of values. Each value encodes the color at that position in the image.
Images are made up of pixels, which are essentially a grid of values. Each value, or pixel, encodes the color at that position in the image.
The hexadecimal number system is the Base 16 number system. It is a number system that only uses 16 digits (0 1 2 3 4 5 6 7 8 9 A B C D E F)
Number system that has 16 digits 1 - 9 and A - F.
The RGB encoding scheme allows us to encode colors as numeric data. It defines the amount of Red, Green, and Blue light in a pixel. Each color channel can have a value between 0 and 255.
A procedure that applies a particular function to an image's pixels to change its appearance
The process of encoding information, using fewer bits than the original representation. We can use algorithms to compress the data to use less bits for storage and then decompress it when we want to view it again.
Lossless Compression involves no loss of information. If data have been "losslessly" compressed, the original data can be recovered exactly from the compressed data after a compress/expand cycle.
Throwing away some of the data to save space. We can throw away a lot of data without any noticeable difference from the original.
Scrambling digital information into an unreadable form. Only those with verified authority (password, key, etc) can unscramble it to read it.
An encryption method in which each letter of the message is shifted by a certain amount, called the key
The same key is used to encrypt and decrypt (e.g., Caesar, Vigenere)
One key encrypts, a different key decrypts.
Public key encryption is a type of asymmetric key encryption. There’s one key that encrypts the information and there is a different key that decrypts the information.
A shared secret that allows the recipient to convert ciphertext into plaintext.
The conversion of encrypted data into its original form.
The art and science of concealing secret messages in such a way that no one apart from the intended recipient knows about the existence of the message. In digital information, Steganography is the practice of concealing a file, message, image, or video within another file, message, image, or video.
A philosophy of making information and knowledge open and accessible to all people. A network of networks built on open, agreed upon protocols.
A widely agreed upon set of rules that standardize communication between machines.
A group of two or more computer systems linked together.
The amount of data (in bits) that can be sent in a fixed amount of time.
The capacity of data transfer in a system. Measured by bitrate.
The latency of a system is the time it takes for a bit to travel from sender to receiver. Fiber optic cables have low latency.
An electronic device which is required for communication between devices.
A computing device is a physical artifact that can run a program.
Input devices are computing devices that are used to take in information from a user or another device.
Output devices are computing devices that are used to send computer data to the user.
Storage devices are computing devices that remember information.
A computing system is a group of computing devices and programs working together for a common purpose.
A computer network is a group of interconnected computing devices capable of sending or receiving data.
A protocol that defines the structure of an Internet address and assigns a unique address to every device on the Internet.
A new 128 bit version of the Internet Protocol.
Stands for Uniform Resource Locator. You are locating a resource that exists somewhere on the internet.
An HTTP request is made by a client, to a named host, which is located on a server. The aim of the request is to access a resource on the server.
An HTTP response is made by a server to a client. The aim of the response is to provide the client with the resource it requested.
Used to translate domain names into IP addresses.
The protocol that defines the payout of an an Internet address.
The process of sending data between two computers on the internet. The data is sent through routers that determine the route.
When multiple paths exist between two points. This improves reliability and makes the internet fault tolerable. Makes the routing system scalable.
Packets are the units of data that are sent over the network.
HyperText Transfer Protocol is a protocol that standardizes the language for talking to web servers to send and receive web pages, or HyperText information (HTML pages).
Allows for sending MULTIPLE packets between two computers. TCP checks that all packets arrived and can be put back in the proper order. The metadata must include a destination IP address, a from IP address, the message size and the packet order number.
Completes multiple tasks at a time, simultaneously.
Pretending to be a DNS name resolver. Feed your computer the wrong IP address for a given website, and your browser now goes to a false website.
Distributed Denial of Service attack. Spam a web server with so many requests so close together that it crashes. Sometimes spitting out valuable information as it crashes.
Protocols for encrypting/decrypting information. Most cybersecurity breaches happen due to human error, not software bugs.
Confirms the identity and authenticity of a website.
Anonymity describes situations where the acting person's identity is unknown.
Censorship is the suppression of words, images, or ideas that are "offensive."
The digital divide is a gap between those who have access to digital technology and those who don't.
A law that grants the creator of an original work exclusive rights to its use, distribution, and sale
The usage of deceptive emails and websites to maliciously gather personal information
The protocol that defines the payout of an an Internet address.
Information (numbers, words, measurements, observations, etc) that is in a computer-readable form.
Using charts, graphs, or images to visualize complex data.
Visualizations can be misleading by skewing the axes or labels, or leaving out relevant data.
Visualizations can be misleading by skewing the axes or labels, or leaving out relevant data.
Design Thinking is an iterative process in which you seek to understand your users, challenge, assumptions, redefine problems and create innovative solutions which you can prototype and test.
A model designed to demonstrate the most basic functionality or basic design of a product, sometimes used as a proof of concept
A chance to get feedback on your solutions, refine them, and make them better.
A animated model that represents a real-life thing, process, or situation.
A set of rules for how things interact within a simulation.
Unable to change. Strings in Java are immutable, meaning you can't change it once you make it. If you take a substring of a String, or concatenate something to a String, the result is a *brand new* String, rather than a modification of the original.
A particular way of organizing data in our programs.
A heterogenous, immutable data type that stores an ordered sequence of things.
The items stored can be of any type: numeric, string, boolean, etc.
A heterogenous, **mutable** data type that stores an ordered sequence of things.
When something is changeable or has the ability to change.
The `join()` method takes all items in a collection and joins them into one string
A for loop lets us repeat code a **fixed number of times.**
Accessing certain elements in a list
A method that counts occurrences of specific items in a list.
Add a particular item to the end of a list.
Takes a list as an argument and extends the current list with the list given as an argument.
sorts the list in ascending order by default.
reverses the sorting order of the elements.
removes the first occurrence of the element with the specified value.