strong password
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
algorithm
a finite set of instructions that accomplish a specific task
abstraction
the process of reducing complexity by focusing on the main idea
sequencing
the application of each step of an algorithm in the order in which the code statements are given
selection
determines which parts of an algorithm are executed based on a condition being true or false
iteration
The process of repeating a set of instructions in an algorithm until a specific condition is met.
encryption
The process of converting plaintext into a coded format (ciphertext) to prevent unauthorized access.
decryption
the process of decoding data
programming languages
used to implement algorithms executed by programs
problem
a general description of a task that can (or cannot) be solved algorithmically
instance of a problem
a specific task that needs to be solved with specific input
decision problem
a problem with a yes or no answer
optimization problem
a problem with the goal of finding the "best" solution among many
decidable problem
A problem for which an algorithm can always find a solution in a finite amount of time
undecidable problem
A problem for which no algorithm can consistently find a solution for all possible inputs
scalibility
the capacity for a system to change in size and scale to meet new demands
efficiency
an estimation of the amount of computational resources used by an algorithm
linear/sequential search
A search method that checks each element in a list one at a time until the desired element is found or the list ends
binary 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
heuristic
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
algorithmic bias
bias embedded into algorithms and any level of software development
Caesar Cipher
A substitution cipher that shifts characters a certain number of positions in the alphabet
Viginere Cipher
A method of encrypting alphabetic text by using a series of different monoalphabet ciphers selected based on the letters of a keyword
Halting Problem
There cannot be a program that will determine which computer programs will halt (or exit) and which programs will go on forever (infinite loop)