[PRELIMS] CS200 Principles of Programming Language

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/440

flashcard set

Earn XP

Description and Tags

Module 1 & 2 - CS200 (Prelims)

Last updated 6:11 AM on 8/10/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

441 Terms

1
New cards

Programming Paradigm

A set of basic principles, concepts, and methods for how a computation or algorithm is expressed.

2
New cards

Imperative Programming Paradigm

A paradigm that expresses computation through fully specified and controlled manipulation of named data in a stepwise fashion.

3
New cards

Procedural Programming Paradigm

Another name for the imperative programming paradigm.

4
New cards

Object-Oriented Programming Paradigm

A paradigm where related variables and operations are organized into classes of objects.

5
New cards

Functional Programming Paradigm

A paradigm that expresses computation in terms of mathematical functions.

6
New cards

Applicative Programming Paradigm

Another name for the functional programming paradigm.

7
New cards

Logic Programming Paradigm

A paradigm that expresses computation in terms of logic predicates.

8
New cards

Declarative Programming Paradigm

Another name for the logic programming paradigm.

9
New cards

Logic Program

A set of facts, rules, and questions.

10
New cards

Predicate

A logical expression used in logic programming to express relationships or conditions.

11
New cards

Imperative Language Foundation

The stored program concept-based computer hardware organization and architecture, particularly the von Neumann machine.

12
New cards

Stored Program Concept

The concept in which programs and data are stored in memory.

13
New cards

Von Neumann Machine

A computer architecture that forms the foundation of imperative programming languages.

14
New cards

ALU

Arithmetic Logic Unit; the component where values are manipulated through arithmetic and logical operations.

15
New cards

I/O Devices

Input/Output devices through which program data or results can be received or sent.

16
New cards

Object

A main building block of object-oriented programs that combines related data and operations.

17
New cards

Class

A structure that organizes related variables and operations in object-oriented programming.

18
New cards

Inheritance

An object-oriented feature that allows classes to obtain or extend characteristics from other classes.

19
New cards

Class Hierarchy

The organization of classes in levels based on inheritance relationships.

20
New cards

Polymorphism

An object-oriented feature that allows different objects or classes to be treated through common interfaces or operations.

21
New cards

Method

An operation or procedure associated with an object.

22
New cards

Parameter

A value supplied as input to a function.

23
New cards

Return Value

The output produced by a function.

24
New cards

Lambda Calculus

The mathematical foundation on which many functional programming languages are based.

25
New cards

Fact

A statement or piece of knowledge in a logic program.

26
New cards

Rule

A logical relationship used to derive or define information in a logic program.

27
New cards

Question

A query in a logic program expressing a problem to solve.

28
New cards

Multi-Paradigm Language

A programming language that supports features from more than one programming paradigm.

29
New cards

Programming Language Features

Characteristics of a programming language that influence how programs are written and performed.

30
New cards

Orthogonality

A programming language feature concerning simplicity and the independent combination of language constructs.

31
New cards

Simplicity

The degree to which a programming language is straightforward and easy to understand.

32
New cards

Control Structures

Language mechanisms that determine the flow and organization of program execution.

33
New cards

Data Types

Categories that determine the kind of data a program can store and manipulate.

34
New cards

Data Structures

Ways of organizing and storing data in a program.

35
New cards

Syntax Design

The design of the form and structure of programming language constructs.

36
New cards

Abstraction

A mechanism for hiding unnecessary implementation details while exposing important characteristics.

37
New cards

Expressiveness

The ability of a language to allow programmers to express solutions conveniently and clearly.

38
New cards

Type Equivalence

The rules used to determine when two types are considered equivalent.

39
New cards

Strong Type Checking

Type checking that restricts operations involving incompatible types and generally improves reliability.

40
New cards

Weak Type Checking

Less restrictive type checking that provides greater programming flexibility.

41
New cards

Exception Handling

A mechanism for dealing with unexpected circumstances and semantic errors so that programs do not crash.

42
New cards

Restricted Aliasing

Restricting situations where multiple names or references can access the same data.

43
New cards

Program Performance

The overall quality of program execution, including reliability, readability, writability, reusability, and efficiency.

44
New cards

Reliability

The degree to which a program performs correctly and consistently.

45
New cards

Readability

How easily a program can be understood by humans.

46
New cards

Writability

How easily a programmer can write programs in a language.

47
New cards

Reusability

The ability to reuse program components or code.

48
New cards

Efficiency

How effectively a program uses computational resources.

49
New cards

Machine Language

The native language of a computer consisting of instructions represented as binary numbers.

50
New cards

Native Language

The language directly understood and executed by a computer's hardware.

51
New cards

Binary Instruction

An instruction represented using binary numbers.

52
New cards

Mnemonic

A symbolic representation used to represent frequently used machine instruction bit patterns.

53
New cards

Assembly Language

A language that uses mnemonics to represent machine instructions.

54
New cards

Assembler

A program that translates assembly language into machine language or binary/object code.

55
New cards

Addressing Mode

A method used in assembly language to specify how an operand or memory location is accessed.

56
New cards

Macro

A construct representing a number of instructions.

57
New cards

Object Code

The translated code produced from assembly or compilation for execution or further processing.

58
New cards

High-Level Programming Language

A programming language that provides a more human-readable and higher-level environment than assembly language.

59
New cards

Plankalkül

Konrad Zuse's programming system developed in Germany in 1946 and associated with early high-level programming language development.

60
New cards

Short Code

A high-level programming language developed in 1949 that had to be hand-compiled because it had no compiler.

61
New cards

A0

The first widely known compiler designed by Grace Hopper in 1951.

62
New cards

Autocoder

An early primitive compiler written by Alick E. Glennie in 1952.

63
New cards

FORTRAN

Short for FORmula TRANslating; the first widely used high-level programming language.

64
New cards

BNF

Backus-Naur Form; a formal notation used to define programming language syntax.

65
New cards

Structured Programming

A technique for organizing programs in a hierarchy of modules.

66
New cards

Module

A program component in structured programming with a defined structure and typically a single entry and exit point.

67
New cards

Spaghetti Programming

Programming characterized by poorly structured control flow.

68
New cards

Monolithic Programming

Programming in which the program is organized as a large, less modular unit.

69
New cards

Sequential Control Structure

A control structure where statements execute in sequence.

70
New cards

Conditional Branch

A control structure where execution depends on a condition.

71
New cards

Iteration

Repeated execution of a block or sequence of statements.

72
New cards

Unconditional Branch

A control transfer that does not depend on a condition, such as a goto statement.

73
New cards

Block-Structured Language

A language that organizes code into blocks with defined scope and structure.

74
New cards

Goto Statement

An unconditional branch statement that transfers execution to another location.

75
New cards

Type Extension

Extending a type with additional characteristics or functionality.

76
New cards

Type-Bound Procedure

A procedure associated with a particular type, similar to a method in object-oriented programming.

77
New cards

Typeless Language

A language described in the module as lacking conventional type checking, such as BCPL.

78
New cards

Late Binding

An object-oriented concept introduced by Simula in which certain bindings are determined later rather than entirely at compile time.

79
New cards

Konrad Zuse

Developer of the Plankalkül programming system.

80
New cards

Grace Hopper

Designer of the widely known A0 compiler.

81
New cards

Alick E. Glennie

Writer of the primitive Autocoder compiler.

82
New cards

John Backus

Leader of the development of Fortran and contributor to Algol and BNF.

83
New cards

Edsger Dijkstra

Credited in the module with the design of the first Algol 60 compiler and associated with structured programming.

84
New cards

Niklaus Wirth

Developer of Pascal, Modula, Modula-2, and Oberon.

85
New cards

Dennis Ritchie

Designer and first implementer of C.

86
New cards

Martin Richards

Developer of BCPL.

87
New cards

Ken Thompson

Developer of B.

88
New cards

Ole-Johan Dahl

Co-designer of Simula.

89
New cards

Kristen Nygaard

Co-designer of Simula.

90
New cards

Alan Kay

Leader associated with Smalltalk development at Xerox PARC.

91
New cards

Bjarne Stroustrup

Developer of C++.

92
New cards

James Gosling

One of the developers of Java.

93
New cards

John McCarthy

Developer of Lisp.

94
New cards

G. L. Steele

Co-developer of Scheme.

95
New cards

G. J. Sussman

Co-developer of Scheme.

96
New cards

David Turner

Developer of Miranda and designer of SASL and KRC.

97
New cards

Alain Colmerauer

Co-inventor of Prolog.

98
New cards

Philippe Roussel

Co-inventor of Prolog.

99
New cards

Fortran

The first widely used programming language, developed by John Backus's team at IBM between 1954–1957.

100
New cards

Algol

A programming language family that influenced structured programming and later languages.