Difference between revisions of "Glossary"

From Coder Merlin
m (→‎P: add precondition)
m (added editorial note: please provide a link)
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== A ==
{{MovedToMoodle|See CS-001 Computer Science Reference: Glossary}}
{{GlossaryItem|Abstract Data Type|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}}
{{MerlinNoteFromEditor|Please provide a link. I can't find the CS-001 reference or Glossary.}}
{{GlossaryItem|Ahead of Time Compilation|Ahead of Time Compilation| or AOT, the process of compiling a programming language into executable machine code before any code can be run}}
{{GlossaryItem|Algorithm|Algorithm|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}}
{{GlossaryItem|API|API|or Application Programming Interface, connects computers or software to each other; a common example is logging in to a third-party site via Google}}
{{GlossaryItem|Array|Array|a collection of items, more commonly referred to as elements, that can be identified and accessed by an index}}
{{GlossaryItem|ASCII|ASCII|or American Standard Code for Information Interchange, these codes represent characters and text in computers and other electronic communication devices}}
{{GlossaryItem|Assertion|Assertion| 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}}
 
== B ==
{{GlossaryItem|Back-End Development|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 {{GlossaryReference|Front-End Development|Front-End Development}}}}
{{GlossaryItem|Base|Base|or Number Base is the number of unique digits, including zero, used to represent numbers in a positional number system}}
{{GlossaryItem|Bash|Bash| or Bourne-Again SHell, designed by Brian Fox for the GNU operating system, is the default shell for {{GlossaryReference|Linux|Linux}} and Mac operating systems}}
{{GlossaryItem|Binary System|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}}
{{GlossaryItem|Bit|Bit|or "binary digit," the most basic unit of information or data in computing}}
{{GlossaryItem|Boolean|Boolean|a data type that stores binary variables (true or false; 1 or 0; on or off)}}
{{GlossaryItem|Boolean Algebra|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.}}
{{GlossaryItem|Boolean Function|Boolean Function|a function that performs a logical operation on one or more binary inputs and produces one or more binary outputs}}
{{GlossaryItem|Bug|Bug|an error or flaw in a computer program}}
{{GlossaryItem|Bytecode|Bytecode| a set of instructions using numeric codes and constants; a sort of midpoint between human-readable source code and machine code}}
{{GlossaryItem|Bytecode Language|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}}
 
== C ==
{{GlossaryItem|C|C|a low-level, general-purpose programming language, initially developed by Dennis Ritchie in 1972, many newer languages are based on C}}
{{GlossaryItem|Camel Case|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.}}
{{GlossaryItem|CLI|Command-line Interface|or CLI allows the user to type commands for the computer to execute; a common command-line interface is {{GlossaryReference|Bash|bash}}}}
{{GlossaryItem|Compiled Language|Compiled Language| a language that uses a compiler to translate source code into native machine code}}
{{GlossaryItem|Conditional|Conditional|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 <syntaxhighlight inline lang="bash>if</syntaxhighlight>, <syntaxhighlight inline lang="bash>else</syntaxhighlight>, and <syntaxhighlight inline lang="bash>else if</syntaxhighlight>}}
{{GlossaryItem|CPU|CPU|or Central Processing Unit is the "brain" of the computer, and executes instructions from computer programs, the operating system, and other computer parts}}
{{GlossaryItem|CSS|CSS|Cascading Style Sheets is a programming language that is commonly used with HTML and provides styling for a web page}}
 
== D ==
{{GlossaryItem|Deprecated|Deprecated| a piece of software or technology that is no longer recommended for use because it is obsolete or soon will be}}
{{GlossaryItem|Dictionary|Dictionary|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.}}
{{GlossaryItem|Directory|Directory|a logical grouping of related files (and potentially other directories)}}
{{GlossaryItem|Double|Double|a data type that represents a 64-bit floating point number, or decimal}}
{{GlossaryItem|DRY Principle|DRY Principle| a principle of development that advises against repeating code, such as having three functions whose entire first half are composed of the same code}}
{{GlossaryItem|Dynamic Semantics|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}}
 
== E ==
{{GlossaryItem|emacs|emacs|a powerful text editor and environment available on various operating systems, including Linux, Windows, and macOS}}
{{GlossaryItem|End-User|End-User|a person who uses a particular product or software}}
{{GlossaryItem|Error Handling|Error Handling|the process of finding and fixing errors or bugs in code}}
 
== F ==
{{GlossaryItem|File|File|either a destination or source for a stream of data, most often persisted on a storage device}}
{{GlossaryItem|For-Loop|For-Loop|a type of logic flow statement that specifies iteration and allows code to be repeated; in Swift, also called a '''for-in loop'''}}
{{GlossaryItem|Float|Float|a data type that represents 32-bit floating point numbers or decimals}}
{{GlossaryItem|Front-End Development|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 {{GlossaryReference|Back-End Development|Back-End Development}}}}
{{GlossaryItem|Full-Stack Development|Full-Stack Development|refers to both {{GlossaryReference|Front-End Development|front-end development}} and {{GlossaryReference|Back-End Development|back-end development}}}}
 
== G ==
{{GlossaryItem|Generics|Generics| a feature of static languages that involves using a generic type to allow reuse of code in methods and classes}}
{{GlossaryItem|Git|Git|a popular distributed {{GlossaryReference|Version Control|version control system}} used to track changes in files, usually used in software development teams, first developed by Linus Torvalds in 2005}}
{{GlossaryItem|Git Branch|Git Branch|in {{GlossaryReference|Git|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 {{GlossaryReference|Git Merge|merging}} later on}}
{{GlossaryItem|Git Commit|Git Commit|in {{GlossaryReference|Git|Git}}, allows you to combine multiple {{GlossaryReference|Git Branch|branches}} of work in a repository into one branch}}
{{GlossaryItem|Git Merge|Git Merge|in {{GlossaryReference|Git|Git}}, allows you to combine independent work {{GlossaryReference|Git Branch|branches}} into one branch; sometimes results in merge conflicts that need to be resolved before the changes can be saved}}
{{GlossaryItem|Git Repository|Git Repository|or '''Git repo''' is the <syntaxhighlight inline lang="bash">.git/</syntaxhighlight> folder in a project that tracks all the changes made to the project files}}
{{GlossaryItem|GitHub|GitHub|a popular service used for source control and collaboration}}
{{GlossaryItem|GNU|GNU|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}}
{{GlossaryItem|GNU General Public License|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}}
{{GlossaryItem|GUI|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}}
 
== H ==
{{GlossaryItem|Hexadecimal System|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 {{Equal}} 11, B {{Equal}} 12, … , F {{Equal}} 15.}}
{{GlossaryItem|HTML|HTML|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.}}
{{GlossaryItem|hyperlink|hyperlink|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.}}
 
== I ==
{{GlossaryItem|Interpreted Language|Interpreted Language| a programming language whose execution comes from a line-by-line translation by an interpreter, considered highly portable}}
{{GlossaryItem|Interpreter|Interpreter| a program meant for understanding its respective interpreted language and telling the native machine how to execute its source code line by line}}
 
== J ==
{{GlossaryItem|JavaScript|JavaScript|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}}
{{GlossaryItem|Java|Java|a high-level, statically typed, object-oriented programming language commonly used in Android development and backend operations}}
{{GlossaryItem|JSON|JSON|or Javascript Object Notation, is a text-based, language-independent, data-interchange format between a client and a server}}
{{GlossaryItem|Just In Time Compilation|Just In Time Compilation|or JIT, a method of compilation where bytecode is compiled into machine code during runtime just before it is needed}}
 
== K ==
{{GlossaryItem|Kernel|Kernel|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 {{GlossaryReference|Operating System|operating system}} includes the kernel and other low-level applications that allow a computer to run.}}
 
== L ==
{{GlossaryItem|LaTeX|LaTeX|a markup language for typesetting and formatting documents, typically used in STEM and technical documentation and publications; LaTeX is a {{GlossaryReference|Superset|superset}} of {{GlossaryReference|TeX|TeX}}}}
{{GlossaryItem|LeetCode|LeetCode|a platform used to prepare for technical interviews in the software industry}}
{{GlossaryItem|Logic Gate|Logic Gate|an idealized or physical device implementing a Boolean function, typically represented using graphical symbols}}
{{GlossaryItem|Linux|Linux|refers to the Linux kernel developed by Linux Torvalds in the 1990's, and 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}}
 
== M ==
{{GlossaryItem|Markdown|Markdown|a {{GlossaryReference|Markup Language|markup language}} used to add formatting to text documents, common use-cases include README files, and {{GlossaryReference|GitHub|GitHub's}} version of Markdown}}
{{GlossaryItem|Markup Language|Markup Language|a programming language that uses syntax to annotate a document for formatting}}
{{GlossaryItem|Machine Code|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}}
 
== N ==
{{GlossaryItem|Newsgroup|Newsgroup|a discussion group around a certain topic, usually within the Usenet system.}}
 
== O ==
{{GlossaryItem|Open-source Software|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}}
{{GlossaryItem|Operating System|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.}}
 
== P ==
{{GlossaryItem|PHP|PHP|the most commonly used server-side language}}
{{GlossaryItem|Portability|Portability| refers to 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}}
{{GlossaryItem|Positional Notation|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 {{Equal}} 1*10<sup>2</sup> + 2*10<sup>1</sup> + 3*10<sup>0</sup>)}}
{{GlossaryItem|Precondition|Precondition| Effective the same as an Assertion where the key difference is that a precondition will carry on to a production build and indicates a necessary condition where if the boolean expression evaluates to false, the rest of the process can not reasonably continue }}
{{GlossaryItem|Process|Process|a program that is being executed by the operating system}}
{{GlossaryItem|Prompt|Prompt|a symbol that appears on a display indicating that the computer is ready to receive input}}
{{GlossaryItem|Python|Python|a free, high-level, open-source programming language that can be used in both front-end and back-end development}}
 
== Q ==
== R ==
== S ==
{{GlossaryItem|SaaS|SaaS|or "Software as a Service" is a cloud-based software licensing and delivery model where the user accesses the software via the Internet}}
{{GlossaryItem|Semantics|Semantics| the logic a language implements to execute the syntax of a programming language}}
{{GlossaryItem|Shell|Shell|a user interface that provides access to an operating system's services}}
{{GlossaryItem|Source Code|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}}
{{GlossaryItem|Static Semantics|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}}
{{GlossaryItem|Stack Exchange|Stack Exchange|a network of Q&A platforms, including {{GlossaryReference|Stack Overflow|Stack Overflow}}}}
{{GlossaryItem|Stack Overflow|Stack Overflow|a Q&A platform for programmers of all levels; a part of {{GlossaryReference|Stack Exchange|Stack Exchange}}}}
{{GlossaryItem|String|String|a string of characters, a common data type in computer programming}}
{{GlossaryItem|Strongly Typed|Strongly| refers to a language's typing policies that prevent erroneous use of variables, objects, or other programming constructs}}
{{GlossaryItem|Superset|Superset|in computer science, a programming language that contains all the features of a programming language, and extends or enhances it}}
{{GlossaryItem|Syntactic_Sugar|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}}
{{GlossaryItem|Syntax|Syntax|the convention of a programming language, similar to the words someone says when speaking English}}
{{GlossaryItem|Swift|Swift|a general-purpose, open-source programming language developed by Apple, a replacement for {{GlossaryReference|C|C-based}} languages}}
 
== T ==
{{GlossaryItem|Terminal|Terminal|a program that runs a shell and allows us to enter commands; a terminal is a {{GlossaryReference|Command-line Interface|command-line interface}}, but not all CLIs are terminals<ref>[https://www.geeksforgeeks.org/difference-between-terminal-console-shell-and-command-line/ "Difference between Terminal, Console, Shell, and Command-Line Interface." (Geeks for Geeks) Accessed on November 19, 2021]</ref>}}
{{GlossaryItem|Terminal Emulator|Terminal Emulator|a software application that mimics a computer terminal}}
{{GlossaryItem|TeX|TeX|a typesetting system and programming language, still commonly used to format STEM documentation and publications; related to (but not to be confused with) {{GlossaryReference|LaTeX|LaTeX}}}}
{{GlossaryItem|Truth Table|Truth Table|a means to specify the required output or outputs for the specified input or inputs, given certain boolean algebraic expressions}}
{{GlossaryItem|Tuple|Tuple|in mathematics, is a finite ordered list of elements. In Python, a tuple is an immutable data structure that stores an ordered sequence of values.}}
{{GlossaryItem|Typescript|Typescript| a superset of JavaScript that adds optional type safety using strongly typed polices and static semantics}}
{{GlossaryItem|Type Inference|Type Inference| a feature in which a programming language can assign a type to a variable according to how it is being used}}
{{GlossaryItem|Type Safety|Type Safety| preventing misuse of typed data by using types; a programming language that prevents erroneous use of typed data is considered type safe}}
{{GlossaryItem|Typing|Typing| a practice of assigning values of data into categories according to how it is being used; type examples include integer and floating point}}
 
== U ==
{{GlossaryItem|UI|UI|or '''User Interface''' refers to anything that an {{GlossaryReference|End-User|end-user}} uses to interact with or experience a company's digital services and products; UI is related to, but not to be confused with {{GlossaryReference|UX|UX}}.}}
{{GlossaryItem|Unix|Unix|a family of operating systems developed in the 1960's and 1970's at AT&T's Bell Labs, basis for Linux and GNU operating systems}}
{{GlossaryItem|UX|UX|or '''User Experience''' refers to the experience an {{GlossaryReference|End-User|end-user}} has interacting with a given company, including but not limited to its products and platform; UX is related to, but not to be confused with {{GlossaryReference|UI|UI}}.}}
 
== V ==
{{GlossaryItem|Version Control|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 {{GlossaryReference|Git|Git}}}}
{{GlossaryItem|Virtual Machine|Virtual Machine| a program similar to an interpreter meant for understanding and executing bytecode languages, the most famous example being Java's JVM}}
 
== W ==
{{GlossaryItem|While Loop|While Loop|a logic flow statement that allows code to be repeated based on a Boolean statement}}
{{GlossaryItem|Weakly Typed|Weakly Typed| Typing policies within a programming language that emphasize flexibility within typing as opposed to type safety}}
 
== X ==
{{GlossaryItem|XML|XML| or extensible Markup Langauge is a markup language much like 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.}}
 
== Y ==
{{GlossaryItem|YAML|YAML| a lightweight, human-readable data-representation language that is a {{GlossaryReference|Superset|superset}} of JSON. It is possible to parse JSON with a YAML parser.}}
 
== Z ==

Latest revision as of 08:27, 10 January 2024

Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder
HintIcon.png
Moved to Moodle logo.svg
See CS-001 Computer Science Reference: Glossary

 This article can be improved by:  Please provide a link. I can't find the CS-001 reference or Glossary.