Coding Bootcamp: Basic concepts and terms
Basic Concepts
- Software
- Computer program
- Algorithm
- System software vs. Application software
- Compiler and Interpeter
- Software architecture
- Full-stack application development
Software
- Computer software, or simply software, is that part of a computer system that consists of encoded information or computer instructions
- Computer hardware and software require each other and neither can be realistically used on its own
- A collection of computer programs, libraries and related data are referred to as software
Computer program
- A computer program is a collection of instructions that performs a specific task when executed by a computer
- A computer executes the program's instructions in a central processing unit
- A computer program is usually written by a computer programmer in a programming language
- From the program in its human-readable form of source code, a compiler can derive machine code
- Alternatively, a computer program may be executed with the aid of an interpreter
Algorithm
- A part of a computer program that performs a well-defined task is known as an algorithm
- An algorithm is a self-contained step-by-step set of operations to be performed
- Algorithms perform calculation, data processing, and/or automated reasoning tasks
Software, system software and hardware

Application software
- App or application for short
- A computer program designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user
- Examples: a word processor, a spreadsheet, an accounting application, a web browser etc.
- The collective noun "application software" refers to all applications collectively (contrasts with system software)
- Apps built for mobile platforms are called mobile apps
Software architecture
- Software architecture refers to the fundamental structures of a software system
- Each structure comprises software elements, relations among them, and properties of both elements and relations
- The architecture of a software system is a metaphor, analogous to the architecture of a building
Full-stack application development
- Refers to software development covering all the layers of a 3-tier architecture:

References

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.