Week 1 Flashcards

1
Q

Measures of data (6)?

A
bit,
byte
kilo byte (kb)
mega byte (mb)
giga byte (gb)
tera byte (tb)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

components of a computer

A

internal memory

  • RAM (random access memory) temporary data
  • ROM (read only memory) permanent storage

processor/CPU (central processing unit)

kernel - program at the core of OS

HDD (hard disk drive) / SSD (solid state drive)

operating system (OS) - Windows, Mac, Linux

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

high vs low level programming languages

A
  • high is programmer friendly, but low is machine friendly
  • high is easy to understand, but low is difficult
  • high is easy to debug/maintain, but low is not
  • high can run on any platform, but low is machine-dependent

high exs: JAVA, C, Python, etc

low exs: binary

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

Explain Java syntax - case sensitivity

A

Java is case sensitive, which means identifier Hello and hello would have different meaning in Java.

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

Steps in the Software Development Life Cycle (SDLC)

A
  1. Planning & Analysis - gather all info from client and analyze what’ll work or not
  2. Design - create design specs, how will we build this?
  3. Implement/Code - build the software using PL
  4. Testing & Integration - release application to testing environment, helps spot defects, bugs, or other
  5. Deployment - all bugs fixed and software built to goals and specs
  6. Maintenance - updating and supporting software after it’s gone public
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Explain Waterfall Methodology / Pros & Cons

A

Rigid. Receive ALL the info from the client up front and begin. No new requirements are given during the SDLC, and once you’ve moved to the next stage you cannot go backwards.

PROS - no room for confusion because you have clear barriers -> clean transfer to next steps; procedural knowledge not required

CONS - excludes the client; can’t make changes in previous stages if needed; after deployment you’re only maintaining not adding; only test once so bugs/errors aren’t noticed until ENTIRE project goes into testing

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

Explain Agile Methodology / Pros & Cons

A

Fluid. Ability to adjust to changing requirements and requests from the client during life cycle.

PROS - open communication w/ client; iterative (parts not included in 1 release can be moved to next release); multiple releases makes faster movement through testing;

CONS - flexibility can create poor practices like procrastinating or shortcuts

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

Explain Scrum Framework / Pros & Cons

A

Simplest Agile; Project backlog gets filtered to sprint backlog (priorities) to move to sprint (2-4 weeks long). Scrum Leader will lead daily 15-min standups to keep everyone on the same page. Product is released at the end of each sprint, then retrospective stage is where teams talks about good/bad with project to know how to tackle next sprint backlog.

PROS - daily standups; short sprints allows for constant releases which incorporates client throughout entire phase -> client feedback during creates a product more in line with their needs

CONS - no set deadline makes it difficult to gage costs and release date; feature creep (a continuous expansion of proposed functionalities) -> happens because no set deadline; Scrum ceremonies require engagement that some may not participate in

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

Explain Kanban Framework / Pros & Cons

A

visual representation of the progress of the project (usually with sticky notes on a grid labeled w/ project stages); should never be more tasks than developers during sprint

PROS - event-driven (no sprint deadline pressure); allows for specialists (ex 1 associate can be testing specialist) -> builds expertise; can take new client requirements; entire team sees progress

CONS - board can grow to be unnecessarily complex and difficult to understand/navigate; team needs to keep board up-to-date or associates can repeat work; no timing element, which can result in extreme feature creep and constant release delays/uncertainty

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

Explain Scrumban Framework / Pros & Cons

A

pairs the visual representation of Kanban with the ceremonies and sprints of Scrum; eliminates Kanban’s timing issue with Scrum’s sprints; adds Kanban specializations/cross-functionality to Scrum

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

Explain eXtreme Programming (XP) Framework / Pros & Cons

A

most verbose Agile; strict procedures designed to encourage XP’s values of teamwork, seeks to improve product quality by also improving team cohesion and individuals’ lives; 1-wk sprints, quarterly releases, continuous integration, incremental design, use of user stories and epics, TDD, pair programming, team includes client

PROS - constant communication w/ client minimizes sunk costs because you’re implementing features they actual want; group cohesion w/ open communication and pair programming; brief development results in quick solutions

CONS - amount of procedures can make following the framwork difficult; client on the team can create hindrance -> non-technically inclined; weekly iterations can create bad practices to meet deadlines; short sprints and client can create frequent changes

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

define test-driven development (TDD)

A

designing the tests that your code must pass BEFORE writing the actual code, allowing the developer to have a clearer understanding of what their program must accomplish BUT code should still be able to handle a variety of input

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

define Pair programming

A

teams are broken into groups of two while developing: pilot and navigator. pilot is actively writes code, while the navigator plans how the code will tie into the larger user story, epic, and project codebase. pairs can collaborate and solve issues faster and narrow their focus due to lessened responsibility

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

Agile vs Waterfall

A

Waterfall: linear, one-way, unable to make changes; best for projects with fixed, rigid requirements or highly regulated (ex gov projects)

Agile: iterative approach, customer collaboration, responding to change; best for projects in dynamic environments where adaptation required

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

user acceptance testing (UAT) (agile term)

A

LAST phase of testing stage

type of testing performed by the end user (client) to verify/accept the software before moving the application to deployment

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

minimum viable product (MVP) (agile term)

A

development technique in which a new product or website is developed with sufficient features to satisfy early adopters

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

product backlog (agile term)

A

the list of user stories for the entire project

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

sprint backlog (agile term)

A

the list of features that the team is planning to complete in the upcoming sprint

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

epic (agile term)

A

A group of related features that is broken down into multiple user stories

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

sprint (agile term)

A

A brief period of development (almost always less than four weeks, sometimes as short as one week) generally culminating in a release of related features

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

done (agile term)

A

The requirements the team agrees have to be met for a user story to be considered “done” (Example: all unit tests pass, code is reviewed and merged in feature branch, non-functional requirements met)

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

user story (agile term)

  • card
  • conversation
  • confirmation
A

An individual feature of/requirement for a project in Agile development

  • card - user stories written on cards (just enough info to communicate reqs)
  • conversation - verbal conversation involving team and clients going into story’s details
  • confirmation - everyone is on the same page! organization for the project begins
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

story point (agile term)

A

A level of difficulty assigned to a user story through the use of a sequence of numbers that increases with increasing difficulty

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

product owner (agile term)

A

sets the vision for the product, helps with generating requirements /user stories and prioritizing

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

scrum leader (agile term)

A

the cheerleader / advocate for the team; they make sure nothing is in the team’s way

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

velocity (agile term)

A

The sum of story points of all user stories completed during a sprint. Velocity allows Agile teams to more accurately predict how many user stories can be completed in future sprints

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

capacity (agile term)

A

the amount of work that can be completed within a given time frame based on the number of hours a person or team has available to complete that work. client and team will determine for upcoming sprints.

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

Scrum ceremonies include?

A

sprint planning, daily standups, review, and retrospective

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

burndown chart (agile term)

A

showing reduction in outstanding story points over the sprint

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

technologies used to keep track of progress

A

JIRA, Github projects, Trello, Asana

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

explain big bang methodology / pros and cons

A

simplest model of SDLC as it requires almost no planning. combines time, effort, and resrouces to gradually build product as reqs arrive from client. easy for small projects with few developers and a client that’s unsure.

PROS - no planning and few resources required, easy to implement, very flexible

CONS - not suitable for large projects, high risk, could get expensive and timely

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

explain v-model methodology / pros and cons

A
  • also know as verification or validation model
  • for each development stage, there is a testing activity, and you only move to the next phase after completion of previous one

PROS - highly disciplined because one phase completed at a time, good for small projects, constant testing enhances probability of error-free product, easy to track progress

CONS - high risk, not good for complex or object-oriented projects, doesn’t support iteration of phases, doesn’t easily handle concurrent events

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

Functional vs non-functional requirements (agile)

A

functional - describes what the system does via user stories

non-functional - requirements that specifies criteria that can be used to judge the operation of a system (describes how the system does it)

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

Non-functional requirements:

Security

Reliability

Scalability

Performance / Latency

Maintainability

Usability

A
  • Security – ensuring unauthorized access to the system
  • Reliability – probability of system performing without failure
  • Scalability – ability of the system to scale when more resources are added
  • Performance – speed of the system e.g., response time, throughput etc
  • Usability – easy access for the customer/user while using the system
35
Q

list some of the principles declared in the Agile manifesto (up to 11)

A
  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
  2. Welcome changing requirements
  3. Preference for shorter timescale for releases
  4. Business people & developers work together
  5. Value face to face conversation for communication
  6. Working software is the primary measure of progress
  7. Sustainable development - should be able to maintain constant pace
  8. Continuous attention to technical excellence and good design enhances agility.
  9. Simplicity – the art of maximizing the amount of work not done – is essential.
  10. The best architectures, requirements, and designs emerge from self-organizing teams.
  11. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
36
Q

What is Java?

A

A high-level, class-based, object-oriented, programming language that is designed to have as few implementation dependencies as possible. intended to let developers write once, run anywhere (WORA), statically typed, compiled language

37
Q

what does WORA stand for?

A

write once, run anywhere

38
Q

JDK?
JRE?
JVM?

A

JDK (Java developer kit) - has a compiler, debugger, etc. Contains the JRE and JVM

JRE (Java runtime environment) - Contains the JVM

JVM (Java virtual machine) - runs compiled Java code

39
Q

What is a class?

A

class is a blueprint for an object

40
Q

What is an object?

A

instance of a class; entity that has state and behavior

41
Q

primitive data types (8)?

A

boolean, byte, char, double, float, int, long, short

42
Q

what is a wrapper class?

A

Wrapper class is a wrapper around a primitive data type.

It represents primitive data types in their corresponding class instances e.g. a boolean data type can be represented as a Boolean class instance.

All of the primitive wrapper classes in Java are immutable i.e. once assigned a value to a wrapper class instance cannot be changed further.

43
Q

what is autoboxing?

A

auto-boxing is the automatic conversion of primitives to their wrapper classes by the compiler. useful for adding primitives to collections.

44
Q

is Java pass-by-value or pass-by-reference?

A

Java is strictly pass by value. Even when object references are passed as arguments, it is the value of the reference that is passed

45
Q

What data types are supported in switch statements?

A

String, int, char, short, byte, enums

46
Q

what is static block?

A

Used for static initialization. Executed only once - upon creation of first object of class or access to static method of class

47
Q

what is static imports?

A

Importing a static method or variable from a class - syntax: import static

48
Q

what are 3 usages of super keyword?

A
  1. to refer to immediate parent class instance variable.
  2. super() is used to invoke immediate parent class constructor (also can pass params)
  3. to invoke immediate parent class method.
49
Q

4 pillars of object oriented programming?

A

abstraction

polymorphism

inheritance

encapsulation

50
Q

define abstraction

A

hiding lower-level details and exposing only the essential and relevant details to the users

ex - someone knows how to drive a car, but they don’t know the mechanics that make the car run

51
Q

define polymorphism

A

Subclasses of a class can define their own unique behaviors and yet share some of the same functionality of the parent class

ex - a person is a student in school, a customer at the store, a son/daughter when they’re home

52
Q

define inheritance

A

A class that is derived from another class is called a subclass (also a derived class, extended class, or child class). The class from which the subclass is derived is called a superclass (also a base class or a parent class)

ex - a child is made from their parents and has similar characteristics, but also their own personality

53
Q

define encapsulation

A

can be described as a protective barrier that prevents the variables and methods being randomly accessed by other code defined outside the class. Access to the data and code is tightly controlled by an interface.

ex - medicine - a capsule contains the different nutrients that make up a multivitamin

54
Q

define method overloading

A

there exist two or more methods in a class with the same method name, but different method signatures by changing the parameter list (number, type, or order of parameters)

type of compile-time (static) polymorphism

55
Q

define method overriding

A

when a method in a child class has the same method signature as a method in the parent class, but with a different implementation. Thus, child classes can change the default behavior given by a parent’s method.

56
Q

What is the difference between an abstract class and an interface?

A

An abstract class can have both concrete and abstract methods whereas an interface must have only abstract methods if any (unless the default keyword is used). Interface methods are implicitly public and abstract, interface variables are implicitly public, static, and final, but these do not apply in abstract classes. Neither can be instantiated

57
Q

Can you overload / override a main method? static method? a private method? a default method? a protected method?

A

Main method - overload, cannot override b/c is static method.

Static method - overload, cannot override b/c belongs to class (not inherited).

Private method - overload, cannot override b/c doesn’t get inherited.

Default method - both.

Protected method - both (override if inherited).

58
Q

Difference between extends and implements?

A

Extends is for classes, implements is for implementing interfaces

59
Q

What are enumerations (enums)?

A

A special Java type that defines a collection of constants

60
Q

What are the implicit modifiers for interface variables / methods?

A

methods - public abstract;

variables - public static final

61
Q

First line of constructor?

A

The compiler will insert super() as the first line - it cannot be used anywhere else in constructor except for the first line

62
Q

define variable?

A

a container which holds the value while the Java program is executed. A variable is assigned with a data type. A variable is also the name of memory location.

63
Q

3 types of variables in Java? Explain each.

A
  1. local - declared inside the body of the method; can only use within its method; cannot be defined w/ “static” keyword
  2. instance - declared inside the class, but outside the body of the method; value is instance-specific and not shared among instances; not declared as static
  3. static - declared as static; cannot be local; you can create a single copy and share among all the instances of the class
64
Q

what is a package manager?

A

type of software that you can use to manage installations and updates for other software on your machine

typically they allow you to use as a command line interface (CLI, ex Git Bash) to install/update

65
Q

3 types of file permissions in Unix?

A

owner, group, and other (world)

permissions include nothing (0), execute (1), write (2), and/or read (4). adding their numberical values sets the permissions (ex - to execute, write, and read you’d enter 7 in CLI)

66
Q

Explain the “Diamond Problem” with respect to inheritance

A

in some OOP languages, classes can extend from other classes at multiple levels, which is known as multi-level inhertance. The superclass/parent class extends child/subclass A and child/subclass B. subclasses A and B then extend to class C.

67
Q

what are Java identifiers?

A
  • names used for classes, variables, and methods
  • all identifiers should begin with a letter (caps or not), currency char ($), or an underscore (_)
  • after first char, identifiers can have a combo of chars
  • keyword CANNOT be used as an identifier
  • case sensitive!
68
Q

explain Java Syntax - class names

A

For all class names the first letter should be in Upper Case. If several words are used to form a name of the class, each inner word’s first letter should be in Upper Case.

69
Q

explain Java Syntax - method names

A

All method names should start with a Lower Case letter. If several words are used to form the name of the method, then each inner word’s first letter should be in Upper Case.

70
Q

explain Java syntax - program file name

A
  • Name of the program file should exactly match the class name and end w/ .java (program will not compile if not matching)
  • please note that in case you do not have a public class present in the file, then file name can be different than class name (public class not mandatory)
71
Q

explain Java syntax - public static void main(String args[])

A

Java program processing starts from the main() method which is a mandatory part of every Java program.

public is accessible from any package, static declares method, void has no return

72
Q

define method

A

a block of code that can invoke/call; function that belongs to a class

method signature - part of the method declaration

  • return type
  • method name
  • parameters
73
Q

define package in Java

A
  • used to group related classes (like a folder in a file directory)
  • used to avoid name conflicts, and to write a better maintainable code
74
Q

define Java compilation/interpretation

A

refers to the process of turning your source code into executable instructions (often called binaries)

75
Q

define machine code

A

a series of CPU instructions (created from bytecode that Java program generated)

binary - 0s and 1s

76
Q

define bytecode

A

instruction set for Java Virtual Machine (JVM)

generated as soon as a Java program is compiled, non-runnable code so it requires JVM

77
Q

define assembly code

A

interface between high level programming languages and machine code (binary)

78
Q

define function

A
  • type of method that has a return value

- reusaable code

79
Q

explain control flow if/else statement

A

if statement tests the condition and executes as long as the boolean is true, otherwise else will execute if boolean is false

80
Q

explain control flow for loops

A
  • bounded by beginning and end conditions
  • once conditions are met the looping will cease and execution continues after the block

EX: for ( i = 0; i <10; i++ ) { }

i is set to 0, looping continues as long as i is less than 10, with each iteration i is increased by one

81
Q

explain control flow while loops

A

executes a block of code over and over as long as some predicate holds true. must include some way for the loop to end, or else it will continue infinitely (or until the program terminates)

EX: while(x < 5) {
x++
}

looping continues until x = 5 because then statement becomes false

82
Q

explain control flow do-while loops

A
  • has it’s predicate check at the end of the block of code; will always execute at least once, as the first execution happens before any check is done; once it’s false looping stops

EX: do {

x++ ;

} while (x < 5)

83
Q

continue, break statements

A

continue - causes the current execution inside a loop to cease, however instead of breaking out of the loop, it continues with the next iteration

break - causes execution inside the block to stop and execution to continue after the block ends

84
Q

What is the difference between method overloading and overriding?

A

Method overriding - In a subclass when one declares an identical method from the superclass, this method overrides the one in the superclass.

Method overloading - Within the same class when one declares more than method with the same name but different signature (parameters).