Difference between revisions of "Glossary"

From Coder Merlin
(→‎D: add DRY principle)
m (added editorial note: please provide a link)
 
(43 intermediate revisions by 5 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|Algorithm|Algorithm|a set of instructions to perform a computation, there are usually better and worse algorithms to solve the same problem; when developing a computer program, choosing the optimal algorithm help with program efficiency and security}}
{{GlossaryItem|Ahead of Time Compilation|Ahead of Time Compilation| The process of compiling a programming language into executable machine code prior any code being run.}}
{{GlossaryItem|API|API|an Application Programming Interface (API) 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|American Standard Code for Information Interchange; ASCII codes represent characters and text in computers and other electronic communication devices}}
 
== 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|aka Number Base is the number of unique digits, including zero, used to represent numbers in a positional number system}}
{{GlossaryItem|Bash|Bash|}}aka 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|is 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|aka "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|is 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 the use of a compiler to translate source code into Bytecode that can then be understood with the use of 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 whitespace 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|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|Command-line Interface|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 involves the use of 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|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|describes a piece of software or technology that is no longer recommended for use due to its obsolescence, or imminent obsolescence}}
{{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 the repetition of code such as having three functions whose entire first half are comprised 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 run-time 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 the use of a generic type to allow re-use 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 one}}
{{GlossaryItem|Git Commit|Git Commit|in {{GlossaryReference|Git|Git}}, allows coders to combine multiple {{GlossaryReference|Git Branch|branches}} of work in a repository into a single branch}}
{{GlossaryItem|Git Merge|Git Merge|in {{GlossaryReference|Git|Git}}, allows coders to combine independent work {{GlossaryReference|Git Branch|branches}} into a single 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}}
 
== 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 single website on the internet uses HTML in one form or another.}}
 
== 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, which 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|Just In Time Compilation|Just In Time Compilation|a method of compilation where bytecode is compiled into machine. code during runtime just before it is needed, also referred to as JIT}}
 
== 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 reffered to as binary, machine code is a series of 1's and 0's, called bits, that tell a machine how to operate, 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|Process|Process|a program that is being executed by the operating system}}
{{GlossaryItem|Portablility|Portablity| Refers to a programming language's ability to be shipped to separate platforms and systems. An application that can only work on a limited number of systems is considered unportable while an application 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|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 access a 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 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 usage of variables, objects or other programming constructs}}
{{GlossaryItem|Superset|Superset|in computer science, a programming language that contains all of the features of a given programming language, and extends or enhances it as well}}
{{GlossaryItem|Syntactic_Sugar|Syntactic Sugar|syntax within a language which isn't strictly required but, in some manner, generally through increased clarity or readability, makes the syntax easier to understand for humans}}
{{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, but not to be confused with {{GlossaryReference|LaTeX|LaTeX}}}}
{{GlossaryItem|Truth Table|Truth Table|a means to specify the required output(s) for the specified input(s), given particular 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 may assign a type to a variable based off how it's being used}}
{{GlossaryItem|Type Safety|Type Safety| Refers to the safety involved with the usage of types, a programming language that prevents erroneous usages of typed data is considered type safe}}
{{GlossaryItem|Typing|Typing| A practice of assigning values of data into categories based off how it's being used or its 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| is a lightweight, human-readable data-representation language. In fact, YAML is a {{GlossaryReference|Superset|superset}} of JSON, capable fo parsing 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.