Overview of Computer Programming and Software Engineering

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

1/64

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

65 Terms

1
New cards

Computer Programming

Planning, writing, testing, and documenting code to perform tasks.

2
New cards

Software Engineering

Applying math, engineering, and management to reduce costs and complexity, increase reliability, and modifiability; used in large projects.

3
New cards

Computer

50 million instructions/second

4
New cards

iPhone

40,000 instructions/second

5
New cards

Human

Can write ~20 instructions/day

6
New cards

Application Programmers

Work on productivity apps (e.g., MS Office).

7
New cards

System Programmers

Develop system software (OS, drivers, security modules) for servers and mainframes.

8
New cards

Apps

Can take over a year and cost $250,000+.

9
New cards

Problem Statement

Defines elements to manipulate to achieve a goal; includes assumptions and known info.

10
New cards

Assumption

Accepted truth needed to proceed with programming.

11
New cards

Known Information

Data given to help solve a problem.

12
New cards

Predictive Methodology

Extensive upfront planning/documentation.

13
New cards

Agile Methodology

Flexible development and changing specs.

14
New cards

Program Statement

Smallest unit directing computer actions.

15
New cards

Keyword

Predefined command word, can combine with parameters.

16
New cards

Text Editor

Basic text tasks (Notepad, TextWrangler).

17
New cards

Program Editor

For writing code.

18
New cards

VDE (Visual Development Environment)

Specialized for parts of programs.

19
New cards

Runtime Error

Program can't execute a statement.

20
New cards

Logic Error

Incorrect formulas, flawed problem definition.

21
New cards

Syntax Error

Grammar rules of programming language broken.

22
New cards

Debugging

Finding and fixing errors.

23
New cards

Remarks (Comments)

Make code easier to understand.

24
New cards

Performance

Must be acceptable, verified with tests.

25
New cards

Usability

Easy to learn and operate.

26
New cards

Security

Uses formal methods, threat modeling, defensive programming.

27
New cards

Formal Methods

Mathematical, logical models for software verification.

28
New cards

Threat Modeling

Identify vulnerabilities, assets, threats, and mitigation strategies.

29
New cards

Defensive Programming

Anticipate and handle possible errors (walkthroughs, input filtering).

30
New cards

Abstraction

Simplifies by hiding lower-level hardware details.

31
New cards

Low-Level Language

Little abstraction, hardware-focused (specific CPU/microprocessor).

32
New cards

High-Level Language

Human-like syntax (e.g., BASIC, Java, C++).

33
New cards

First Generation

Machine languages (very prone to errors).

34
New cards

Second Generation

Assembly languages (one-to-one CPU commands).

35
New cards

Op code

The operation itself.

36
New cards

Operand

Data or address involved.

37
New cards

Third Generation

Easier commands (COBOL, Fortran, BASIC, C).

38
New cards

Fourth Generation

Database languages (SQL, RPG).

39
New cards

Fifth Generation

Declarative logic programming (Prolog).

40
New cards

Source Code

Human-readable.

41
New cards

Compiler

Converts entire program to object code at once (creates standalone file).

42
New cards

Interpreter

Converts and executes line-by-line (no standalone file).

43
New cards

Scripting Languages

Distributed as readable source code, slower.

44
New cards

SDK (Software Development Kit)

Language-specific tools: compiler, editor, documentation, debugger, APIs.

45
New cards

IDE (Integrated Development Environment)

Single sleek tool (Editor + Compiler + Debugger); Example: Xcode.

46
New cards

Procedural Paradigm

Solving problems through sequences of steps.

47
New cards

Algorithm

Set of ordered steps to perform a task.

48
New cards

Pseudocode

High-level, language-agnostic representation.

49
New cards

Flowchart

Diagram of program flow.

50
New cards

Object-Oriented Paradigm

Solves problems with objects and classes.

51
New cards

Class

Template for objects.

52
New cards

Inheritance

Pass attributes from superclass to subclass.

53
New cards

Class Hierarchy

Organizes classes with inheritance.

54
New cards

Method

Defines an action (uses parentheses).

55
New cards

Polymorphism

Allows methods to be redefined in subclasses.

56
New cards

Encapsulation

Hiding object internals ("black box").

57
New cards

Declarative Paradigm

Describes the what of the problem, not the how.

58
New cards

Prolog Concepts

Facts: Basic information.

59
New cards

Rules

Relationships between facts.

60
New cards

Predicate(argument)

Basic format.

61
New cards

Goal

Prolog searches for answers.

62
New cards

Instantiation

Assigning a value to a variable.

63
New cards

Prolog Rules Structure

Head, Body, and a connecting symbol.

64
New cards

Decision Table

Shows specific rules for multiple conditions and their outcomes.

65
New cards

Extra Key Facts

More than 8,000 programming languages exist, but only ~600 are established.