From Coder Merlin
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder


Abstract Data Type
or ADT, represents a model for a data structure; the model specifies behavior for the data type, supported operations, and how those operations are evaluated

Ahead of Time Compilation
or AOT, the process of compiling a programming language into executable machine code before any code can be run

a set of instructions to perform a computation; there are usually better and worse algorithms to solve the same problem, so when developing a computer program, choosing the optimal algorithm helps with program efficiency and security

or Application Programming Interface, connects computers or software to each other; a common example is logging in to a third-party site via Google

refers to a value or expression passed as input to a function upon invocation

a collection of items, more commonly referred to as elements, that can be identified and accessed by an index

or American Standard Code for Information Interchange, these codes represent characters and text in computers and other electronic communication devices

a feature in the Swift programming language that asserts that a certain condition to be true, meant to perform a sanity check where it is assumed that the Boolean statement will evaluate to true


Back-End Development
or server-side development focuses on the parts of an app or website that the user does not directly see or interact with; this usually consists of maintaining and updating a server, an application, and database; see Front-End Development

or Number Base is the number of unique digits, including zero, used to represent numbers in a positional number system

or Bourne-Again SHell, designed by Brian Fox for the GNU operating system, is the default shell for Linux and Mac operating systems

Binary System
a number system that uses two digits (0 and 1) to represent a number; this is the system that computers use to store data

or "binary digit," the most basic unit of information or data in computing

a data type that stores binary variables (true or false; 1 or 0; on or off)

Boolean Algebra
the branch of algebra in which the values of the variables are true or false, usually represented as 0 or 1. It formalizes logical relations.

Boolean Function
a function that performs a logical operation on one or more binary inputs and produces one or more binary outputs

an error or flaw in a computer program

a set of instructions using numeric codes and constants; a sort of midpoint between human-readable source code and machine code

Bytecode Language
a language that involves using a compiler to translate source code into bytecode that can then be understood by using a Virtual Machine


a low-level, general-purpose programming language, initially developed by Dennis Ritchie in 1972, many newer languages are based on C

Camel Case
a common naming convention in computer science in which words are not separated by white space or punctuation, but are indicated by a single uppercase letter (i.e., PayPal, CamelCase, someCompany), the set of words can begin with either upper or lowercase.

Command-line Interface
or CLI allows the user to type commands for the computer to execute; a common command-line interface is bash

Compiled Language
a language that uses a compiler to translate source code into native machine code

or conditional statement is a line or lines of code that tell the program to execute actions based on whether a condition is met; common conditional statements include if, else, and else if

is a physical terminal [1]

or Central Processing Unit is the "brain" of the computer, and executes instructions from computer programs, the operating system, and other computer parts

Cascading Style Sheets is a programming language that is commonly used with HTML and provides styling for a web page


a piece of software or technology that is no longer recommended for use because it is obsolete or soon will be

an iterable data structure that stores information in key-value pairs. The keys and values can be any data type, but all keys must be the same data type, and all values must be the same data type. Keys are unique and can be used to identify the values.

a logical grouping of related files (and potentially other directories)

a data type that represents a 64-bit floating point number, or decimal

DRY Principle
a principle of development (don't repeat yourself) that advises against repeating code, such as having three functions whose entire first half are composed of the same code

Dynamic Semantics
a way in which a programming language understands the syntax that involves operations, such as type checking being done at runtime as opposed to compile time


a powerful text editor and environment available on various operating systems, including Linux, Windows, and macOS

a person who uses a product or software

Error Handling
the process of finding and fixing errors or bugs in code


either a destination or source for a stream of data, most often persisted on a storage device

a type of logic flow statement that specifies iteration and allows code to be repeated; in Swift, also called a for-in loop

a data type that represents 32-bit floating point numbers or decimals

Front-End Development
or client-side development, focuses on HTML, CSS, and Javascript to maintain, update, and improve the parts of a website that users directly see and interact with; see Back-End Development

Full-Stack Development
refers to both front-end development and back-end development


a feature of static languages that involves using a generic type to allow reuse of code in methods and classes

a popular distributed version control system used to track changes in files, usually used in software development teams, first developed by Linus Torvalds in 2005

Git Branch
in Git, allows coders to modify, fix, and add to a copy of the existing code base, independently, without interfering with other collaborators' code or work; this allows easier merging later on

Git Commit
in Git, allows you to combine multiple branches of work in a repository into one branch

Git Merge
in Git, allows you to combine independent work branches into one branch; sometimes results in merge conflicts that need to be resolved before the changes can be saved

Git Repository
or Git repo is the .git/ folder in a project that tracks all the changes made to the project files

a popular service used for source control and collaboration

aka "GNU is not Unix" or GNU Project is a Unix-like operating system, or collection of software programs, launched by Richard Stallman in the 1980s

GNU General Public License
or GNU GPL or GPL is a series of licenses that allow users to freely copy, modify, study, and share software, originally written by Richard Stallman

Graphical User Interface
or GUI, allows a user to execute commands by interacting with graphical items on the display using a mouse; examples are Microsoft Windows or Apple's MacOS


Hexadecimal System
is a number system that uses 16 digits to represent a number. The digits are 0-10 and then A-F, where A = 11, B = 12, … , F = 15.

HyperText Markup Language, is one of the essential building blocks for web pages. It defines the general structure of a web page, as well as its content. Every website on the Internet uses HTML in one form or another.

a word or image in an electronic document that, when clicked, navigates to another web page, another place on a page, or triggers an action. Short form of hypertext link.


Interpreted Language
a programming language whose execution comes from a line-by-line translation by an interpreter, considered highly portable

a program meant for understanding its respective interpreted language and telling the native machine how to execute its source code line by line


a high-level programming language that can be used to fetch data via an API, modify HTML and CSS, and is the core of modern web pages

a high-level, statically typed, object-oriented programming language commonly used in Android development and backend operations

or Javascript Object Notation, is a text-based, language-independent, data-interchange format between a client and a server

Just In Time Compilation
or JIT, a method of compilation where bytecode is compiled into machine code during runtime just before it is needed


the core of any operating system. The kernel mediates between the hardware of the computer, and the processes or software that the computer runs. The kernel has a number of important functions, including process order and memory management. The operating system includes the kernel and other low-level applications that allow a computer to run.


a markup language for typesetting and formatting documents, typically used in STEM and technical documentation and publications; LaTeX is a superset of TeX

a platform used to prepare for technical interviews in the software industry

Logic Gate
an idealized or physical device implementing a Boolean function, typically represented using graphical symbols

refers to the Linux kernel developed by Linux Torvalds in the 1990s; also the family of open-source operating systems developed around the Linux kernel; these operating systems run most major websites, Android; common Linux distributions include Debian and Ubuntu


a markup language used to add formatting to text documents, common use-cases include README files, and GitHub's version of Markdown

Markup Language
a programming language that uses syntax to annotate a document for formatting

Machine Code
also referred to as binary, machine code is a series of 1s and 0s (ones and zeros), called bits, that tell a machine how to operate; it is practically impossible to understand for humans

a special type of character in a regular expression that represents a class of characters such as digits, letters, or punctuation marks


a discussion group around a certain topic, usually within the Usenet system


Open-Source Software
software that is made available under a license so that end users can freely edit, modify, copy, sell, and share that software

Operating System
or OS is a critical program in any computer that allocates resources, such as memory, processing time, and storage; the OS communicates between the hardware and software of a computer.


the most commonly used server-side language

a programming language's ability to be shipped to separate platforms and systems; an application that can work on only a limited number of systems is considered unportable, but one that can work on many platforms is considered highly portable

Positional Notation
a method of encoding numbers that uses the same symbol for different orders of magnitude depending on its position; the value of a position is dependent on the location within the number (ex: 123 = 1*102 + 2*101 + 3*100)

effectively the same as an Assertion where the key difference is that a precondition carries on to a production build and indicates a necessary condition where if the Boolean expression evaluates to false, the rest of the process cannot reasonably continue

refers to a named value in a function that specifies a name for arguments passed into a function. When the function is invoked, actual values (arguments) are passed to the function and referred to by the parameter names.

a program that is being executed by the operating system

a symbol that appears on a display indicating that the computer is ready to receive input

a free, high-level, open-source programming language that can be used in both front-end and back-end development


a special type of character in a regular expression that indicates how many times a character or a group of characters should appear


Regular Expression
a specially formatted pattern of characters that enable one to search for matches in another sequence of characters


or software as a service, is a cloud-based software licensing and delivery model where the user accesses the software via the Internet

the logic a language implements to execute the syntax of a programming language

a user interface that provides access to an operating system's services

Source Code
the code that a human types using the programming language's respective syntax; this code is practically impossible for a machine to read

Static Semantics
a way in which a language understands syntax by performing operations such as type checking during compile time instead of at run-time

Stack Exchange
a network of question & answer (Q&A) platforms, including Stack Overflow

Stack Overflow
a Q&A platform for programmers of all levels; a part of Stack Exchange

a string of characters, a common data type in computer programming

a language's typing policies that prevent erroneous use of variables, objects, or other programming constructs

in computer science, a programming language that contains all the features of a programming language, and extends or enhances it

Syntactic Sugar
syntax in a language that is not strictly required but, in some manner, generally through increased clarity or readability, makes the syntax easier to understand for humans

the convention of a programming language, similar to the words someone says when speaking English

a general-purpose, open-source programming language developed by Apple, a replacement for C-based languages


a program that runs a shell and allows us to enter commands; a terminal is a command-line interface, but not all CLIs are terminals[2]

Terminal Emulator
a software application that mimics a computer terminal

a typesetting system and programming language, still commonly used to format STEM documentation and publications; related to (but not to be confused with) LaTeX

Truth Table
a means to specify the required output or outputs for the specified input or inputs, given certain Boolean algebraic expressions

in mathematics, a finite ordered list of elements. In Python, a tuple is an immutable data structure that stores an ordered sequence of values.

a superset of JavaScript that adds optional type safety using strongly typed polices and static semantics

Type Inference
a feature in which a programming language can assign a type to a variable according to how it is being used

Type Safety
preventing misuse of typed data by using types; a programming language that prevents erroneous use of typed data is considered type safe

a practice of assigning values of data into categories according to how it is being used; type examples include integer and floating point


or user interface, anything that an end-user uses to interact with or experience a company's or organization's digital services and products; UI is related to, but not to be confused with, UX.

a family of operating systems developed in the 1960s and 1970s at AT&T's Bell Labs; the basis for Linux and GNU operating systems

or user experience, the experience an end-user has interacting with a company or organization, including its products and platform; UX is related to, but not to be confused with, UI.


Version Control
or Version Control Systems (VCS) are software that manage, record, and track changes on a file or a set of files over time, allowing multiple stakeholders to collaborate on the same project at the same time, as efficiently as possible; a popular VCS is Git

Virtual Machine
a program similar to an interpreter meant for understanding and executing bytecode languages, the most famous example being Java's JVM


While Loop
a logic flow statement that allows code to be repeated based on a Boolean statement

Weakly Typed
Typing policies within a programming language that emphasize flexibility within typing as opposed to type safety


or extensible markup langauge, a markup language similar to HTML and designed much like JSON to store and transport data. XML has been used for years to transfer data—seen in applications like SOAP APIs—and is capable of enforcing data structure standards and transmitting data.


a lightweight, human-readable data-representation language that is a superset of JSON. It is possible to parse JSON with a YAML parser.