Send a link to your students to track their progress
26 Terms
1
New cards
Algorithm
a finite set of instructions that accomplish a task
2
New cards
Argument
the value passed to the parameter
3
New cards
API
Application Program Interface - specifications for how functions in a library behave and can be used
4
New cards
Binary Search
a search algorithm that starts at the middle of a sorted set of numbers and removes half of the data; this process repeats until the desired value is found or all elements have been eliminated
5
New cards
Decision Problem
a problem with a yes/no answer (e.g., is there a path from A to B?)
6
New cards
Distributed Computing
a model in which programs are run by multiple devices
7
New cards
Efficiency
a measure of how many steps are needed to complete an algorithm
8
New cards
Heuristic
provides a "good enough" solution to a problem when an actual solution is impractical or impossible
9
New cards
Iteration
doing some steps over and over
10
New cards
Library
a group of functions (procedures) that may be used in creating new programs
11
New cards
Linear Search
a search algorithm which checks each element of a list, in order, until the desired value is found or all elements in the list have been checked
12
New cards
Modularity
the subdivision of a computer program into separate subprograms
13
New cards
Optimization Problem
a problem with the goal of finding the "best" solution among many (e.g., what is the shortest path from A to B?)
14
New cards
Parallel Computing
a model in which programs are broken into small pieces, some of which are run simultaneously
15
New cards
Parameter
a variable in a function definition. Used as a placeholder for values that will be passed through the function.
16
New cards
Problem
a general description of a task that can (or cannot) be solved with an algorithm
17
New cards
Procedural Abstraction
a process and allows a procedure to be used only knowing what it does, not how it does it. Procedural abstraction allows a solution to a large problem to be based on the solution of smaller subproblems. This is accomplished by creating procedures to solve each of the subproblems. Libraries and functions use procedural abstraction.
18
New cards
Reasonable Time
Algorithms with a polynomial efficiency or lower (constant, linear, square, cube, etc.) are said to run in a reasonable amount of time.
19
New cards
Return
used to return the flow of control to the point where the procedure (also known as a function) was called and to return the value of expression
20
New cards
Selection
deciding which steps to do next
21
New cards
Sequencing
putting steps in an order
22
New cards
Sequential Computing
a model in which programs run in order, one command at a time
23
New cards
Speedup
the time used to complete a task sequentially divided by the time to complete a task in parallel
24
New cards
Undecidable Problem
a problem for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer. They are a type of problem for which it has been proven that there simply is no algorithm that will always produce a correct result. The issue isn't simply that it takes a long time, but that it is demonstrably impossible to write such an algorithm
25
New cards
Unreasonable Time
Algorithms with exponential or factorial efficiencies are examples of algorithms that run in an unreasonable amount of time
26
New cards
Unreasonable time algorithms
can theoretically be run and will produce a correct solution. They just grow in size so quickly, even for small inputs, that it is usually unreasonable to run that algorithm