• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/95

Click to flip

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