Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
95 Cards in this Set
- Front
- Back
is an environment that is used to write computer programs, to compile them, to run them and to debug them. |
Integrated Development Environment (IDE) |
|
is a piece of software that contains all of the things you need to develop, compile, link, and debug your programs. |
Integrated Development Environment (IDE) |
|
This skeleton includes the basic bones upon which most programs are written. |
C Skeleton |
|
are used to indicate something to the person reading the code, or often used to explain sections of code. are treated like a blank by the compiler and do not change anything in the code's actual meaning. |
Comments |
|
There are two most commonly used syntaxes used for comments in C |
the original /* */ the slightly newer // |
|
is a set of alphabets, letters and some special characters that are valid in C language. |
Character Set |
|
represent the core of the language. are predefined, reserved words used in programming that have special meanings to the compiler.
are part of the syntax and they cannot be used as an identifier. |
Keywords |
|
refers to name given to entities such as variables, functions, structures etc. must be unique. They are created to give a unique name to an entity to identify it during the execution of the program. |
Identifiers |
|
In programming, input and data are stored in ______, is a container (storage area) to hold data. |
Variables |
|
are data used for representing fixed values. They can be used directly in the code. |
Literals |
|
is a numeric literal(associated with numbers) without any fractional or exponential part. |
Integers |
|
is a numeric literal that has either a fractional form or an exponent form. |
Floating-point Literals |
|
literal is created by enclosing a single character inside single quotation marks. |
Characters |
|
Sometimes, it is necessary to use characters that cannot be typed or has special meaning in C programming. |
Escape Sequence |
|
is a sequence of characters enclosed in double-quote marks. |
String Literals |
|
If you want to define a variable whose value cannot be changed, you can use the const keyword. |
Constants |
|
are declarations for variables. This determines the type and size of data associated with variables. |
Data Types |
|
Integers are whole numbers that can have both zero, positive and negative values but no decimal values. |
int |
|
are used to hold real numbers. |
float and double |
|
is an incomplete type.
It means "nothing" or "no type".
You can think of ______ as absent. |
void |
|
If you need to use a large number, you can use a type specifier ______ |
long |
|
If you are sure, only a small integer ([−32,767, +32,767] range) will be used, you can use ______ |
short |
|
You can alter the data storage of a data type by using them. |
signed and unsigned |
|
Data types that are derived from fundamental data types are |
Derived Types or Derived Data Types |
|
are values or set of values. |
Data |
|
refers to single unit of values. |
Data Item |
|
Data items that are divided into sub items are called as |
Group Item |
|
Data items that cannot be divided are called as |
Elementary Item |
|
An entity is that which contains certain attributes or properties, which may be assigned values. |
Attribute and Entity |
|
Entities of similar attributes form an |
Entity Set |
|
is a single elementary unit of information representing an attribute of an entity. |
Field |
|
is a collection of field values of a given entity. |
Record |
|
is a collection of records of the entities in a given entity set. |
File |
|
are the programmatic way of storing data so that data can be used efficiently. is about rendering data elements in terms of some relationship, for better organization and storage. |
Data Structure |
|
Algorithm + Data Structure = |
Program |
|
Data Structure = ______ + ______ |
Organized data + Operations |
|
These are the basic data structures and are directly operated upon by the machine instructions, which is in a primitive level. They are integers, floating point numbers, characters, string constants, pointers etc. |
Primitive Data Structures |
|
It is a more sophisticated data structure emphasizing on structuring of a group of homogeneous (same type) or heterogeneous (different type) data items. Array, list, files, linked list, trees and graphs fall in this category |
Non-primitive Data Structures |
|
Algorithm to search an item in a data structure. |
Search |
|
Algorithm to sort items in a certain order. |
Sort |
|
Algorithm to insert item in a data structure. |
Insert |
|
Algorithm to update an existing item in a data structure. |
Update |
|
Algorithm to delete an existing item from a data structure. |
Delete |
|
Each data structure has an ______. ______ represents the set of operations that a data structure supports. |
Interface |
|
provides the internal representation of a data structure. also provides the definition of the algorithms used in the operations of the data structure. |
Implementation |
|
Data structure implementation should implement its interface correctly. |
Correctness |
|
Running time or the execution time of operations of data structure must be as small as possible. |
Time Complexity |
|
Memory usage of a data structure operation should be as little as possible. |
Space Complexity |
|
is a step-by-step finite sequence of instruction, to solve a well-defined computational problem. |
Algorithm |
|
The development phase consists of two phases: |
Coding Phase and Design Phase |
|
the architecture, logic, and implementation details of the algorithm are envisioned and documented. |
Design Phase |
|
the designed algorithm is converted into a computer program. |
Coding Phase |
|
The simplest way to specify the logic for an algorithm is to write the higher-level description of an algorithm in a semi-structured way, called |
Pseudocode |
|
are used instead of pseudocode wherever possible as they save one additional step. |
Snippets |
|
are designed to deal with a large amount of data. |
Data-intensive Algorithm |
|
have considerable processing requirements but do not involve large amounts of data. |
Compute-intensive algorithms |
|
is the expected size of the data that the algorithm will process. |
Volume |
|
is the expected rate of new data generation when the algorithm is used. It can be zero. |
Velocity |
|
quantifies how many different types of data the designed algorithm is expected to deal with. |
Variety |
|
is about the processing and computing needs of the problem at hand. |
Compute Dimension |
|
All the data transformation and preparation is implemented in three mappers. For that, we divide the video into three different partitions, called |
Splits |
|
After the mappers are executed, the resulting processed video is inputted to the two aggregators, called |
Reducers |
|
______ is heavily procedural. The focus is entirely on writing code (functions).
Data is passive in ______. |
Modular Programming |
|
dictates that a program should be divided into a main module and its related modules.
is a technique for organizing and coding programs in which a hierarchy of modules is used, and breaking the specification down into simpler and simpler pieces, each having a single entry and a single exit point, and in which control is passed downward through the structure without unconditional branches to higher levels of the structure. |
Top-Down Algorithm Design |
|
is the opposite of top-down design. It refers to a style of programming where an application is constructed starting with existing primitives of the programming language, and constructing gradually more and more complicated features, until the all of the application has been written. |
Bottom-Up Algorithm Design |
|
is the study of how complicated algorithms are. |
Complexity theory |
|
An algorithm won't do you much good if it doesn't give you the right answers. |
It should be correct. |
|
The best algorithm in the world won't do you any good if it's too complicated for you to implement on a computer. |
A good algorithm should be understandable. |
|
Even if an algorithm produces a correct result, it won't help you much if it takes a thousand years or if it requires 1 billion terabytes of memory. |
A good algorithm should be efficient. |
|
Estimates the runtime memory requirements needed to execute the algorithm. |
Space complexity analysis |
|
Estimates the time the algorithm will take to run. |
Time complexity analysis: |
|
need to have efficient resource allocation mechanisms that are aware of the memory requirements at different execution phases of the algorithm. |
Resilient Distributed Datasets (RDDs) |
|
Space needed to store the executable version of the program and it is fixed. |
Instruction Space |
|
Space needed to store all constants, variable values and has further two components |
Data Space |
|
This space is needed to store the information to resume the suspended (partially completed) functions. |
Environment Stack Space |
|
The amount of space needed by recursive function is called the |
Recursion Stack Space |
|
In this approach, different candidate algorithms are implemented and their performance is compared. |
Post-implementation Profiling Approach |
|
In this approach, the performance of each algorithm is approximated mathematically before running an algorithm. |
Pre-implementation Theoretical Approach |
|
the data given as input is organized in a way that the algorithm will give its best performance. |
Best Case |
|
This starts by dividing the various possible inputs into various groups. |
Average Case |
|
The second way to estimate the performance of an algorithm is to try to find the maximum possible time it will take to get the job done under a given set of conditions. |
Worst Case |
|
In many situations, data structures are subjected to a sequence of instructions rather than one set of instruction. |
Amstrong Complexity |
|
can be used to show that the average cost of an operation is small, if one averages over a sequence of operations, even though a simple operation might be expensive. guarantees the average performance of each operation in the worst case. |
Amortized analysis |
|
There may be more than one approach (or algorithm) to solve a problem. |
Time-Space Trade Off |
|
______ is a characteristic scheme that measures properties of algorithm complexity performance and/or memory requirements. |
Big OH |
|
If an algorithm takes the same amount of time to run, independent of the size of the input data, it is said to run in ______ |
Constant Time |
|
An algorithm is said to have a complexity of ______, represented by O(n), if the execution time is directly proportional to the size of the input. |
Linear Time |
|
An algorithm is said to run in ______ if the execution time of an algorithm is proportional to the square of the input size. |
Quadratic Time |
|
An algorithm is said to run in ______ if the execution time of the algorithm is proportional to the logarithm of the input size. |
Logarithmic Time |
|
confirms that it is actually providing a mathematical solution to the problem we are trying to solve. |
Validation an Algorithm |
|
Algorithms can also be divided into the following two types based on assumptions or approximation used to simplify the logic to make them run faster: |
Exact Algorithm and Approximate Algorithm |
|
are expected to produce a precise solution without introducing any assumptions or approximations. |
Exact Algorithm |
|
When the problem complexity is too much to handle for the given resources, we simplify our problem by making some assumptions. The algorithms based on these simplifications or assumptions are called approximate algorithms, which doesn't quite give us the precise solution. |
Approximate Algorithm |
|
The ability to exactly identify the features that are used directly or indirectly to come up with a particular decision is called the ______ of an algorithm. |
Explainability |
|
There are three steps in refinement process, which is illustrated |
|