Unit 1: Computational Thinking Flashcards
A finite set of instructions that accomplish a specific task
Algorithm
A password that is easy for a user to remember but would be difficult for someone else to guess based on knowledge of that user
Strong Password
The process of reducing complexity by focusing on the main idea
Abstraction
The application of each step of an algorithm in the order in which the code statements are given
Sequencing
Determines which parts of an algorithm are executed based on a condition being true or false
Selection
A repeating portion of an algorithm
Iteration
The process of encoding data to prevent unauthorized access
Encryption
The process of decoding the data
Decryption
Used to implement algorithms executed by programs
Programming Languages
A general description of a task that can (or cannot) be solved algorithmically
Problem
A specific task that needs to be solved with specific input
Instance of a Problem
A problem with a yes/no answer
Decision Problem
A problem with the goal of finding the “best” solution among many
Optimization Problem
A decision problem for which an algorithm can be written to produce a correct output for all inputs
Decidable Problem
One in which no algorithm can be constructed that always leads to a correct yes-or-no answer
Undecidable Problem
The capacity for a system to change in size and scale to meet new demands
Scalability
An estimation of the amount of computational resources used by an algorithm
Efficiency
Search algorithms that check each element of a list, in order, until the desired value is found or all aspects in the list have been checked
Linear or Sequential Search
A search algorithm that starts at the middle of a sorted data set of numbers and eliminates half of the data; this process repeats until the desired value is found or all elements have been eliminated
Binary Search
An approach to a problem that produces a solution that is not guaranteed to be optimal but may be used when techniques that are guaranteed to always find an optimal solution are impractical
Heuristic
Bias embedded into algorithms and any level of software development
Algorithmic Bias
What type of pattern is this:
I
I
I
I ————————————————————–>
L _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Constant
What type of pattern is this:
I
I ___________________——————————–>
I /
I /
L _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Logarithmic
What type of pattern is this:
I ^
I /
I /
I /
L _ _ _ _ _ _ _ _
Linear
What type of pattern is this:
I ^
I /
I /
I __________________———————-/
L _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Quadratic
What are the steps of the development process?
- Designing
- Testing
- Investing & Reflection
What are the critical features of High-Level Programming?
Easy for us, difficult for computers, unambiguous.
What are the critical features of Low-Level Programming?
Easy for computers, difficult for us, unambiguous
What is Moore’s Law?
The observation that the number of transistors in an integrated circuit doubles about every two years.
Field of coding specializing in encryption/decryption
Cryptography
Word for code/algorithms that are unclear or inexact
Ambiguous