1/440
Module 1 & 2 - CS200 (Prelims)
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Programming Paradigm
A set of basic principles, concepts, and methods for how a computation or algorithm is expressed.
Imperative Programming Paradigm
A paradigm that expresses computation through fully specified and controlled manipulation of named data in a stepwise fashion.
Procedural Programming Paradigm
Another name for the imperative programming paradigm.
Object-Oriented Programming Paradigm
A paradigm where related variables and operations are organized into classes of objects.
Functional Programming Paradigm
A paradigm that expresses computation in terms of mathematical functions.
Applicative Programming Paradigm
Another name for the functional programming paradigm.
Logic Programming Paradigm
A paradigm that expresses computation in terms of logic predicates.
Declarative Programming Paradigm
Another name for the logic programming paradigm.
Logic Program
A set of facts, rules, and questions.
Predicate
A logical expression used in logic programming to express relationships or conditions.
Imperative Language Foundation
The stored program concept-based computer hardware organization and architecture, particularly the von Neumann machine.
Stored Program Concept
The concept in which programs and data are stored in memory.
Von Neumann Machine
A computer architecture that forms the foundation of imperative programming languages.
ALU
Arithmetic Logic Unit; the component where values are manipulated through arithmetic and logical operations.
I/O Devices
Input/Output devices through which program data or results can be received or sent.
Object
A main building block of object-oriented programs that combines related data and operations.
Class
A structure that organizes related variables and operations in object-oriented programming.
Inheritance
An object-oriented feature that allows classes to obtain or extend characteristics from other classes.
Class Hierarchy
The organization of classes in levels based on inheritance relationships.
Polymorphism
An object-oriented feature that allows different objects or classes to be treated through common interfaces or operations.
Method
An operation or procedure associated with an object.
Parameter
A value supplied as input to a function.
Return Value
The output produced by a function.
Lambda Calculus
The mathematical foundation on which many functional programming languages are based.
Fact
A statement or piece of knowledge in a logic program.
Rule
A logical relationship used to derive or define information in a logic program.
Question
A query in a logic program expressing a problem to solve.
Multi-Paradigm Language
A programming language that supports features from more than one programming paradigm.
Programming Language Features
Characteristics of a programming language that influence how programs are written and performed.
Orthogonality
A programming language feature concerning simplicity and the independent combination of language constructs.
Simplicity
The degree to which a programming language is straightforward and easy to understand.
Control Structures
Language mechanisms that determine the flow and organization of program execution.
Data Types
Categories that determine the kind of data a program can store and manipulate.
Data Structures
Ways of organizing and storing data in a program.
Syntax Design
The design of the form and structure of programming language constructs.
Abstraction
A mechanism for hiding unnecessary implementation details while exposing important characteristics.
Expressiveness
The ability of a language to allow programmers to express solutions conveniently and clearly.
Type Equivalence
The rules used to determine when two types are considered equivalent.
Strong Type Checking
Type checking that restricts operations involving incompatible types and generally improves reliability.
Weak Type Checking
Less restrictive type checking that provides greater programming flexibility.
Exception Handling
A mechanism for dealing with unexpected circumstances and semantic errors so that programs do not crash.
Restricted Aliasing
Restricting situations where multiple names or references can access the same data.
Program Performance
The overall quality of program execution, including reliability, readability, writability, reusability, and efficiency.
Reliability
The degree to which a program performs correctly and consistently.
Readability
How easily a program can be understood by humans.
Writability
How easily a programmer can write programs in a language.
Reusability
The ability to reuse program components or code.
Efficiency
How effectively a program uses computational resources.
Machine Language
The native language of a computer consisting of instructions represented as binary numbers.
Native Language
The language directly understood and executed by a computer's hardware.
Binary Instruction
An instruction represented using binary numbers.
Mnemonic
A symbolic representation used to represent frequently used machine instruction bit patterns.
Assembly Language
A language that uses mnemonics to represent machine instructions.
Assembler
A program that translates assembly language into machine language or binary/object code.
Addressing Mode
A method used in assembly language to specify how an operand or memory location is accessed.
Macro
A construct representing a number of instructions.
Object Code
The translated code produced from assembly or compilation for execution or further processing.
High-Level Programming Language
A programming language that provides a more human-readable and higher-level environment than assembly language.
Plankalkül
Konrad Zuse's programming system developed in Germany in 1946 and associated with early high-level programming language development.
Short Code
A high-level programming language developed in 1949 that had to be hand-compiled because it had no compiler.
A0
The first widely known compiler designed by Grace Hopper in 1951.
Autocoder
An early primitive compiler written by Alick E. Glennie in 1952.
FORTRAN
Short for FORmula TRANslating; the first widely used high-level programming language.
BNF
Backus-Naur Form; a formal notation used to define programming language syntax.
Structured Programming
A technique for organizing programs in a hierarchy of modules.
Module
A program component in structured programming with a defined structure and typically a single entry and exit point.
Spaghetti Programming
Programming characterized by poorly structured control flow.
Monolithic Programming
Programming in which the program is organized as a large, less modular unit.
Sequential Control Structure
A control structure where statements execute in sequence.
Conditional Branch
A control structure where execution depends on a condition.
Iteration
Repeated execution of a block or sequence of statements.
Unconditional Branch
A control transfer that does not depend on a condition, such as a goto statement.
Block-Structured Language
A language that organizes code into blocks with defined scope and structure.
Goto Statement
An unconditional branch statement that transfers execution to another location.
Type Extension
Extending a type with additional characteristics or functionality.
Type-Bound Procedure
A procedure associated with a particular type, similar to a method in object-oriented programming.
Typeless Language
A language described in the module as lacking conventional type checking, such as BCPL.
Late Binding
An object-oriented concept introduced by Simula in which certain bindings are determined later rather than entirely at compile time.
Konrad Zuse
Developer of the Plankalkül programming system.
Grace Hopper
Designer of the widely known A0 compiler.
Alick E. Glennie
Writer of the primitive Autocoder compiler.
John Backus
Leader of the development of Fortran and contributor to Algol and BNF.
Edsger Dijkstra
Credited in the module with the design of the first Algol 60 compiler and associated with structured programming.
Niklaus Wirth
Developer of Pascal, Modula, Modula-2, and Oberon.
Dennis Ritchie
Designer and first implementer of C.
Martin Richards
Developer of BCPL.
Ken Thompson
Developer of B.
Ole-Johan Dahl
Co-designer of Simula.
Kristen Nygaard
Co-designer of Simula.
Alan Kay
Leader associated with Smalltalk development at Xerox PARC.
Bjarne Stroustrup
Developer of C++.
James Gosling
One of the developers of Java.
John McCarthy
Developer of Lisp.
G. L. Steele
Co-developer of Scheme.
G. J. Sussman
Co-developer of Scheme.
David Turner
Developer of Miranda and designer of SASL and KRC.
Alain Colmerauer
Co-inventor of Prolog.
Philippe Roussel
Co-inventor of Prolog.
Fortran
The first widely used programming language, developed by John Backus's team at IBM between 1954–1957.
Algol
A programming language family that influenced structured programming and later languages.