Dev terms Flashcards

1
Q

Big O Notation

A
Defines the performance of an algorithm/system
O 	Complexity 	Rate of growth
O(1) 	constant 	fast
O(log n) 	logarithmic 	
O(n) 	linear time 	
O(n * log n) 	log linear 	
O(n^2) 	quadratic 	
O(n^3) 	cubic 	
O(2^n) 	exponential 	
O(n!) 	factorial 	slow
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Recursion

A

Increments n from previous result

Step 1
    If you are at home, stop moving.
Step 2
    Take one step toward home.
Step 3
    "find your way home".
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Big Data

A

Big data describes data sets so large and complex that is impossible to manage with conventional data processing tools.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Data Structures

A

Array =
data structure consisting of a collection of elements (values or variables), each identified by at least one array index or key.

Tree =
a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes.

Stack=
collection of elements, with two principal operations:
push, which adds an element to the collection,
AND
pop, which removes the most recently added element that was not yet removed.

Queue=
a collection of entities that are maintained in a sequence and can be modified by the addition of entities at one end of the sequence and removal from the other end of the sequence

Graph
Hash Table=
a structure that can map keys to values.

Linked List =
each node contains: data, and a reference (in other words, a link) to the next node in the sequence.

Heap=
for any given node C, if P is a parent node of C, then the key (the value) of P is greater than or equal to the key of C. In a min heap, the key of P is less than or equal to the key of C.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Greedy Algorithm

A

Picks a selection based on one parameter at the beginning and never reconsiders.
A greedy algorithm picks the best immediate choice and never reconsiders its choices.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hill Climbing

A

The hill climbing algorithm attempts to find a better solution by generating a neighboring solution. Each neighboring solution is generated based on the best solution so far, with a single element modified.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Dynamic Programming

A

Memoization (yes emoization not memorization), a top-down approach in dynamic programming, which store the results of previous computations for future use.
it refers to simplifying a complicated problem by breaking it down into simpler sub-problems in a recursive manner

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

P vs NP Problem

A

Finding the original factors of a number is hard. So P is a (polynomial) problem because it is easy to solve. Computer can easily multiply 2 super large numbers without spending significantly more computer time than small numbers.

Q2 is a NP (nondeterministic polynomial) problem because it is easy to verify, but hard to solve.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How do computers work?

A

Abstraction

  • Low level = Assembly language, hardware manipulation. Machine language is binary
  • Mid level = performance critical software. C, C++
  • High level = Ease of use. Python, java, C#
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Parallelism

A

Parallelism allows 2 or more tasks to run at the same time,.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Race Condition

A

Output can’t be consistently predicted because dependent on a sequence or timing.
This is what will happen if you allow concurrent transactions in a banking system and race condition isn’t handled.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Mutual Exclusion (Mutex)

A

Now, whenever there’s an ongoing transaction, the system will lock the account(s) involved in the transaction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Semaphore

A

Binary Semaphore =
2 different states.

Counting Semaphore =
More than 2 states

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Deadlock

A

2 oposite transactions crate a deadlock because each transaction blocks its source account.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Computer Hacking

A

Brute-force Attack = A brute-force attack tries every possible passwords, and usually starts by guessing commonly used passwords like “123456”, “abcdef”, etc.
Social Engineering = Social engineering is tricking users into revealing their private information.
Security Exploit
Trojan Horse = A trojan horse is malware program that pretends to be useful or helpful and runs malicious code in the background.
Rootkit = A rootkit gains administrator or root access of a computer through various ways then disguise as necessary files that is hard to detect by antivirus software.
Distributed Denial-of-service Attack (DDoS) = DDoS attempts to bring a site or service down by flooding it with visitors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cryptography

A

Symmetric cryptography =
2 identical key to open and send

Asymmetric cryptography =
1 private key - to open
1 public key - to send

17
Q

Waterfall Development

A
You figure out everything you need to do and document them (requirements).Like a waterfall, there’s no way to go back up unless you start over again. You move on to next phase only when current phase is completed.
Requirement
-Design
--Implementation
---Verication
----Maintenance
18
Q

Agile Development

A

You figure out some of the things you need to do at the beginning. Then, continuously improve, evolve, collaborate and adapt as the development goes on.

  • Scrum = goals that can be completed within timeboxed iterations, called sprints, no longer than one month and most commonly two weeks, then track progress and re-plan in 15-minute time-boxed daily meetings, called daily scrums.
  • Extreme programming = intended to improve software quality and responsiveness to changing customer requirements
  • Kanban = The kanban methodology relies upon full transparency of work and real-time communication of capacity, therefore the kanban board should be seen as the single source of truth for the team’s work.
19
Q

Simulated Annealing

A

Probabilistic technique for approximating the global optimum of a given function.
For problems where finding an approximate global optimum is more important than finding a precise local optimum in a fixed amount of time

20
Q

Sorting algorithm

A

In computer science, a sorting algorithm is an algorithm that puts elements of a list in a certain order.
The input data is often stored in an array, which allows random access, rather than a list, which only allows sequential access;