Abstraction
A technique for managing the complexity of computer systems by breaking down complex problems into more manageable pieces. It allows programmers to focus on high-level operations rather than intricate details.
Agile
A methodology for software development that emphasizes incremental delivery, team collaboration, continual planning, and continual learning. Key practices include daily stand-ups, sprints, and retrospectives.
Algorithm
A step-by-step procedure or formula for solving a problem.
Array
A data structure that can hold a fixed number of values of the same type.
Big Data
Large and complex data sets that traditional data-processing software can't handle efficiently. Techniques and technologies such as Hadoop and Spark are used to process big data.
Binary
A base-2 numeral system that represents numeric values using two symbols: 0 and 1.
Boolean
A data type that has one of two possible values (usually denoted true and false). It is used in logical statements and control flow.
Bug
An error or flaw in software that causes it to produce an incorrect or unexpected result.
Class
A blueprint for creating objects, providing initial values for state (member variables or fields), and implementations of behavior (member functions or methods).
Compiler
A program that converts code written in a high-level programming language into machine code that a computer's processor can execute.
Concurrency
The ability of a system to execute multiple parts of a program simultaneously.
Data Structure
A particular way of organizing and storing data in a computer so that it can be accessed and modified efficiently. Common data structures include arrays, linked lists, stacks, queues, hash tables, and trees.
Database
An organized collection of data, generally stored and accessed electronically from a computer system.
Encapsulation
The bundling of data with the methods that operate on that data, restricting direct access to some of the object's components.
Event-Driven Programming
A programming paradigm in which the flow of the program is determined by events such as user actions (mouse clicks, key presses), sensor outputs, or messages from other programs. Commonly used in graphical user interfaces and real-time systems.
Framework
A platform for developing software applications. It provides a foundation on which software developers can build programs for a specific platform. Examples include Django for Python, Angular for JavaScript, and Spring for Java.
Function
A block of organized, reusable code that performs a single action.
Garbage Collection
The process of automatically freeing memory on the heap by deleting objects that are no longer reachable in the program. Languages like Java and C# have built-in garbage collectors.
Hash Table
A data structure that implements an associative array, a structure that can map keys to values.
IDE (Integrated Development Environment)
A software application that provides comprehensive facilities to computer programmers for software development.
Inheritance
A mechanism in object-oriented programming that allows one class to inherit the properties and methods of another class.
JIT (Just-In-Time) Compilation
A way of executing computer code that involves compilation during execution of a program rather than before execution.
Library
A collection of non-volatile resources used by computer programs, often for software development.
Loop
A sequence of instructions that is continually repeated until a certain condition is reached.
Machine Learning
A subset of artificial intelligence (AI) that enables computers to learn from and make decisions based on data.
Middleware
Software that acts as a bridge between an operating system or database and applications, especially on a network.
Namespace
A container that provides context for the identifiers (names of types, functions, variables, etc.) in a program to avoid naming conflicts.
Normalization
The process of organizing data in a database to reduce redundancy and improve data integrity.
Object
An instance of a class containing both data and methods that manipulate that data.
ORM (Object-Relational Mapping)
A programming technique for converting data between incompatible type systems in object-oriented programming languages.
Polymorphism
The ability of different objects to respond to the same function call in different ways.
Recursion
When a function calls itself in order to solve a problem. Recursion is useful for tasks that can be defined in terms of similar subtasks, such as traversing a directory structure or solving the Fibonacci sequence.
Refactoring
The process of restructuring existing computer code without changing its external behavior to improve its readability and maintainability.
Repository
A central location in which data is stored and managed. In version control systems, a repository is where code and its history are stored.
Responsive Design
An approach to web design that makes web pages render well on a variety of devices and window or screen sizes.
Script
A program or sequence of instructions that is interpreted or carried out by another program rather than by the computer processor.
Scrum
An agile process framework for managing complex knowledge work, with an initial emphasis on software development.
Singleton Pattern
A standardized programming language used to manage relational databases and perform various operations on the data in them. SQL commands include SELECT, INSERT, UPDATE, and DELETE.
Syntax
The set of rules that defines the combinations of symbols that are considered to be correctly structured programs in a programming language.
Thread
The smallest sequence of programmed instructions that can be managed independently by a scheduler.
UML (Unified Modeling Language)
A standardized modeling language consisting of an integrated set of diagrams, developed to help system and software developers specify, visualize, construct, and document the artifacts of software systems.
Unit Testing
A level of software testing where individual units/components of a software are tested.
User Interface (UI)
The space where interactions between humans and machines occur. Includes components such as buttons, menus, and text fields, allowing users to interact with software applications.
Validation
The process of ensuring that a program operates on clean, correct, and useful data. Checks can be performed on user input, data from external sources, and internal computations.
Variable
A storage location identified by a memory address and associated symbolic name (an identifier), which contains some known or unknown quantity of information referred to as a value.
Version Control
A system that records changes to a file or set of files over time so that specific versions can be recalled later. Examples include Git, SVN, and Mercurial.
Virtual Machine (VM)
A software emulation of a physical computer. Run an operating system and applications just like a physical computer. They provide an environment to execute programs in a platform-independent manner.
Waterfall Model
A sequential (non-iterative) process in software development, where progress is seen as flowing steadily downwards (like a waterfall) through phases such as conception, initiation, analysis, design, construction, testing, and maintenance.
Web Service
A standardized way of integrating web-based applications using the XML, SOAP, WSDL, and UDDI open standards over an Internet protocol backbone.
XML (eXtensible Markup Language)
A markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. Commonly used for the representation of arbitrary data structures, such as those used in web services.