Comp Sci Unit 1 Flashcards
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
a repeating portion of an algorithm
Encryption
the process of encoding data to prevent unauthorized access
Decryption
the process of decoding the 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/no answer
Optimization problem
a problem with the goal of finding the “best” solution among many
Decidable problem
a decision problem for which an algorithm can be written to produce a correct output for all inputs
Undecidable Problem (Halting Problem)
one in which no algorithm can be constructed that always leads to a correct yes-or-no answer
Scalability
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 or Sequential Search
search algorithms that check each element of a list, in order, until the desired value is found or all elements in the list have been checked
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
Low-level Programming Language
Binary/Machine Language
High-level programming Language
Easy to understand for computers and humans
Pseudocode
“fake code” Understandable by people
Vigenere Cipher
Use numbers of each letter and add–> convert back
Caesar Cipher
offset by number
Quadratic vs. Constant vs. Logarithmic vs. Linear (programs)
Quadratic= As the size of a problem grows, the amount of extra work required increases much more quickly.
Constant= Same amount of work no matter what
Logarithmic=Every doubling of the size of a problem only requires one extra unit of work.
Linear= As the size of a problem grows, the amount of work required grows at approximately the same rate.