Software Design and Computer Science Glossary (Weeks 1 – 6)

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/126

flashcard set

Earn XP

Description and Tags

110 vocabulary flashcards summarizing foundational terms from Weeks 1-6, including software design, OOP, data types, debugging, control structures, data structures, algorithms, networking, hardware, security, and common applications.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

127 Terms

1
New cards

Application Programming Interface (API)

A documented set of methods and parameters that lets one software component interact with another.

2
New cards

Black Box

A system viewed only by its inputs and outputs without knowledge of internal workings.

3
New cards

Bottom-up Design

Creating a system by reusing existing libraries and APIs first, then integrating them.

4
New cards

Decision Diamond

The flow-chart symbol representing a program decision yielding true or false.

5
New cards

Flowchart

A visual diagram showing the control flow of a program with boxes, diamonds, and arrows.

6
New cards

Modular Programming

Design technique that splits functionality into independent, interchangeable modules.

7
New cards

Software Systems Life Cycle

Standard stages—requirements, design, development, testing, maintenance—of a software project.

8
New cards

Stepwise Refinement

Incrementally breaking a problem into smaller pieces until each piece is simple.

9
New cards

Top-Down Design

Designing by starting with a high-level overview and repeatedly decomposing into smaller tasks.

10
New cards

Unified Modeling Language (UML)

Standard visual language for describing and designing software systems.

11
New cards

Agile Development

Iterative methodology emphasizing short sprints, working software, and responsiveness to change.

12
New cards

Camel Case

Writing compound identifiers with each word capitalized, e.g., myVariableName.

13
New cards

Catch

The part of a try/catch block that handles exceptions thrown in the try section.

14
New cards

Comments

Non-executable lines in code that document or explain logic to humans.

15
New cards

Convention (Coding)

Agreed-upon style rules that improve readability, such as indentation and naming.

16
New cards

Robust Program

Software designed to avoid crashes under bad input or adverse conditions.

17
New cards

Unit Testing

Verifying individual program units work correctly under all relevant conditions.

18
New cards

Input Protection

Code constructs that guard against invalid or malicious user input.

19
New cards

Data Validation

Checking that data conforms to expected format and constraints before use.

20
New cards

Exception

An error object thrown when something goes wrong during program execution.

21
New cards

Exception Handling

Code that anticipates and manages exceptions to keep programs running.

22
New cards

Incremental Development

Building software in small, functional pieces that are integrated over time.

23
New cards

Postcondition

A condition that should be true after a method completes.

24
New cards

Precondition

A requirement that must be true before a method is invoked.

25
New cards

Programming Style

Practices that make source code easy to read, understand, and maintain.

26
New cards

Readability

Ease with which humans can read and comprehend source code.

27
New cards

Spiral Development

Risk-driven model combining elements of incremental and waterfall processes in cycles.

28
New cards

Waterfall Design

Sequential development model progressing through distinct phases with little iteration.

29
New cards

"Has-a" Relationship

OOP concept where one object contains another (composition).

30
New cards

"Is-a" Relationship

OOP inheritance relationship where a subclass extends a superclass.

31
New cards

Abstraction

Hiding internal details while exposing only essential features of an object.

32
New cards

Encapsulation

Bundling data and methods inside a class and restricting direct access.

33
New cards

Inheritance

Mechanism where a class derives attributes and behavior from another class.

34
New cards

Polymorphism

Ability of different classes to be treated through the same interface.

35
New cards

Overloading Methods

Defining multiple methods with the same name but different parameters.

36
New cards

Overriding Methods

Redefining an inherited method to provide specialized behavior.

37
New cards

Functional Programming

Paradigm emphasizing immutable data and computation as evaluations of functions.

38
New cards

Imperative Programming

Paradigm where code specifies exact steps the computer must execute.

39
New cards

Artificial Intelligence (AI)

Intelligence exhibited by machines performing tasks that normally require human intellect.

40
New cards

CISC

Complex Instruction Set Computing architecture with many specialized instructions.

41
New cards

RISC

Reduced Instruction Set Computing architecture featuring a small, optimized instruction set.

42
New cards

Operating System (OS)

Software that manages hardware resources and provides services for programs.

43
New cards

Assembler

Program translating assembly language into machine code.

44
New cards

Assembly Language

Low-level, mnemonic programming language closely tied to machine instructions.

45
New cards

Bytecode

Platform-independent code executed by a virtual machine, e.g., Java class files.

46
New cards

Compiler

Software that translates high-level source code into machine or object code.

47
New cards

Interpreter

Program that executes code line-by-line instead of producing an executable file.

48
New cards

Pseudocode

Informal, language-independent description of program logic.

49
New cards

Syntax

Formal rules governing the structure of valid statements in a programming language.

50
New cards

Void Method

A method declared to return no value.

51
New cards

Boolean

Data type with only two possible values: true or false.

52
New cards

Constant

Named memory location whose value cannot change during execution.

53
New cards

Double

64-bit floating-point numeric data type.

54
New cards

Float

32-bit floating-point numeric data type.

55
New cards

Integer (int)

Whole-number data type without fractional part.

56
New cards

String

Sequence of characters treated as text.

57
New cards

Variable

Named, changeable memory location in a program.

58
New cards

Bug

Error or flaw causing a program to produce incorrect results.

59
New cards

Debugging

Systematic process of finding and fixing program errors.

60
New cards

Runtime Error

Error occurring while the program is executing.

61
New cards

Syntax Error

Error resulting from code that violates language grammar rules.

62
New cards

Integrated Development Environment (IDE)

Software suite combining code editor, compiler/interpreter, and debugger.

63
New cards

AND (Logical)

Boolean operator true only when both operands are true.

64
New cards

OR (Logical)

Boolean operator true when at least one operand is true.

65
New cards

NOT

Unary Boolean operator that negates its operand.

66
New cards

Modulus Operator (%)

Returns the remainder after integer division.

67
New cards

Order of Operations

Precedence rules that determine evaluation order in expressions.

68
New cards

Actual Parameter

Value or variable passed to a method when it is called.

69
New cards

Formal Parameter

Variable in method declaration that receives a passed argument.

70
New cards

Pass by Value

Parameter passing where method gets a copy; original is unchanged.

71
New cards

Pass by Reference

Parameter passing where method gets the variable’s address; originals can change.

72
New cards

Conditional Statement

Program statement that executes code based on a Boolean condition.

73
New cards

If Statement

One-way conditional executing code only when condition is true.

74
New cards

If/Else Statement

Two-way conditional with separate branches for true and false outcomes.

75
New cards

Switch Statement

Multi-branch conditional selecting code blocks based on matching cases.

76
New cards

Loop

Control structure that repetitively executes code while a condition holds.

77
New cards

For Loop

Count-controlled pre-test loop specifying initialization, condition, and increment.

78
New cards

While Loop

Pre-test loop that repeats while a Boolean expression is true.

79
New cards

Do While Loop

Post-test loop that executes body then tests condition to repeat.

80
New cards

Recursion

Method calling itself to solve smaller instances of a problem.

81
New cards

Base Case

Non-recursive condition that ends a recursive process.

82
New cards

Array (1D)

Contiguous collection of elements of the same type, indexed by position.

83
New cards

Two-Dimensional Array

Array organized as rows and columns (array of arrays).

84
New cards

Stack

LIFO data structure supporting push, pop, and peek operations.

85
New cards

Queue

FIFO data structure where elements are enqueued at back and dequeued from front.

86
New cards

Linked List

Linear collection of nodes where each node points to the next; non-contiguous memory.

87
New cards

Node

Element of a linked data structure containing data and references.

88
New cards

Binary Tree

Hierarchical structure where each node has at most two children.

89
New cards

Binary Search Tree (BST)

Binary tree where left child ≤ parent and right child > parent.

90
New cards

Heap (Min)

Tree where every parent is less than its children; root is smallest.

91
New cards

Tree Traversal

Systematic visiting of all nodes in a tree (pre-order, in-order, post-order).

92
New cards

Graph

Set of vertices connected by edges, representing relationships or paths.

93
New cards

Complete Graph

Undirected graph where every pair of vertices shares an edge.

94
New cards

Breadth First Search (BFS)

Traversal exploring neighbor nodes level by level.

95
New cards

Depth First Search (DFS)

Traversal exploring as far as possible along each branch before backtracking.

96
New cards

Big O Notation

Mathematical notation describing algorithm growth rate relative to input size.

97
New cards

Constant Time O(1)

Algorithm whose execution time does not depend on input size.

98
New cards

Linear Time O(N)

Algorithm whose time grows proportionally with input size.

99
New cards

Logarithmic Time O(log N)

Algorithm time growing proportionally to logarithm of input size.

100
New cards

Quadratic Time O(N²)

Algorithm whose time grows with the square of input size.