Outline of computer programming. The following outline is provided as an overview of and topical guide to computer programming:

Computer programming – process that leads from an original formulation of a computing problem to executable computer programs. Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms including their correctness and resources consumption, and implementation (commonly referred to as coding) of algorithms in a target programming language. Source code is written in one or more programming languages. The purpose of programming is to find a sequence of instructions that will automate performing a specific task or solving a given problem.

History
History of computer science
History of computing hardware
History of computing hardware (1960s–present)
History of programming languages
Timeline of programming languages
Computer programming in the punched card era
Operating systems timeline

Platforms

Computer
Computer hardware
Analog computer
Analytical Engine
Digital computer
Vacuum-tube computer
List of vacuum-tube computers
Transistor computer
List of transistorized computers
Mainframe
Minicomputer
Microcomputer
Home computers
IBM PC compatible
Personal computer
Desktop computer
Laptop computer
Mobile computer
Personal digital assistant (PDA)
Smartphone
Tablet computer
Wearable computer
Server
Supercomputer
Virtual machine
Hardware virtualization
Runtime system

Paradigms

Agent-oriented
Aspect-oriented
Automata-based
Class-based
Concatenative
Concept
Concurrent
Data-driven
Declarative (as opposed to imperative programming)
Constraint
Constraint logic
Concurrent constraint logic
Dataflow
Flow-based (FBP)
Reactive
Functional
Functional logic
Purely functional
Logic
Abductive logic
Answer set
Concurrent logic
Functional logic
Inductive logic
Probabilistic logic
Event-driven
Time-driven
Expression-oriented
Feature-oriented
Function-level (as opposed to value-level programming)
Generic
Imperative (as opposed to declarative programming)
Literate
Procedural
Inductive programming
Language-oriented (LOP)
Natural language programming
Intentional
Non-structured (as opposed to Structured)
Array
Nondeterministic
Probabilistic
Process-oriented
Role-oriented
Semantic-oriented (SOP)
Structured (as opposed to non-structured programming)
Block-structured
Modular
Concurrent computing
Relativistic programming
Object-oriented (OOP)
Class-based
Concurrent OOP
Prototype-based
Subject-oriented
Tacit
Value-level (as opposed to function-level programming)
Visual

Writing programs
Pseudocode

Methodology

Array programming
End-user development
Metaprogramming
Automatic programming
Reflection
Attribute-oriented programming (AOP)
Homoiconicity
Template metaprogramming
Policy-based design
Service-oriented architecture
Service-oriented modeling
Recursion
Separation of concerns
Threaded coding

Algorithms

List of algorithms
List of algorithm general topics
Algorithm characterizations
Introduction to Algorithms
Theory of computation
Computational complexity theory
Analysis of algorithms
Empirical algorithmics
Big O notation
Algorithmic efficiency
Algorithmic information theory
Algorithmic probability
Algorithmically random sequence
Search algorithm
Sorting algorithm
Merge algorithm
String algorithms
Greedy algorithm
Reduction
Sequential algorithm
Parallel algorithm
Distributed algorithm
Deterministic algorithm
Randomized algorithm
Quantum algorithm

Programming languages
Programming language – formal constructed language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs to control the behavior of a machine or to express algorithms.
Generational list of programming languages
List of programming languages by type
Alphabetical list of programming languages
Compiled language
Interpreted language
Scripting language
Comparison of programming languages
Programming language dialect
Programming language theory
Formal semantics of programming languages
Assembly language
Macro

Attributes of programming languages
Domain-specific language
Dynamic programming language
Esoteric programming language
Extensible programming language
High-level programming language
Interpreted language
Low-level programming language
Machine programming language
Multi-paradigm programming language
Non-English-based programming language
Object-based language
Off-side rule programming language
Reflective programming language
Synchronous programming language
Very high-level programming language

Popular languages
The top 20 most popular programming languages :

Python
C
C++
Java
C#
Visual Basic .NET
JavaScript
SQL
Assembly language
PHP
R
Go
Classic Visual Basic
MATLAB
Swift
Delphi/Object Pascal
Ruby
Perl
Objective-C
Rust

Anatomy of a programming language 

 Syntax
 Lexical grammar
 Semicolons
 Values
 Types
 Operators
 Program structures
 Variables
 Expressions
 Statements
 Keywords and reserved words
 Control structures
 Subroutines (also known as functions)
 Anonymous functions
 Loops
 For loops
 While loops
 Conditionals
 If-then
 If-then-else
 Case and switch statements
 Control flow
 Data structures
 Objects
 Arrays
 Regular expressions

Comparisons of programming languages 

Programming language comparisons
 General comparison
 Basic syntax
 Basic instructions
 Exception handling
 Enumerated types
 Anonymous functions
 Conditional expressions
 Functional instructions
 Arrays
 Associative arrays
 String operations
 String functions
 List comprehension
 Object-oriented programming
 Object-oriented constructors
 While loops
 For loops
 Evaluation strategy
 List of "Hello World" programs
Languages with dependent types
Comparison of type systems

Comparisons of individual languages 
 ALGOL 58's influence on ALGOL 60
 ALGOL 60: Comparisons with other languages
 Comparison of ALGOL 68 and C++
 ALGOL 68: Comparisons with other languages
 Compatibility of C and C++
 Comparison of Pascal and Borland Delphi
 Comparison of Object Pascal and C
 Comparison of Pascal and C
 Comparison of Java and C++
 Comparison of C# and Java
 Comparison of C# and Visual Basic .NET
 Comparison of Visual Basic and Visual Basic .NET

Compilation

Programmer
Source code
Parsing
Compilation
Preprocessing
Translation
Assembly
Linking
Compiler optimization
Compilation error

Software

Computer program
Hello world (a common form of example program for learning programmers)
Application software
Software suite
Database management system
Programming software
Programming tool
Text editor
Source code editor
Integrated development environment (IDE)
Assembler
Compiler
Interpreter
Linker
Debugger
System software

Components
Instruction
Library
Application programming interface (API)

Software development
 Software development
 Software development process
Debugging
Human error
 Software development methodology
 Agile software development
 Extreme programming

Software engineering
Software engineering – 
 Implementation
 Execution
 Software architecture
 Software reliability
 Software quality
 Software testing
 Software maintenance
 Software optimization
 Software brittleness

See also 
 Outline of computers
 Outline of computing
 Outline of computer science
 Outline of artificial intelligence
 Outline of cryptography
 Outline of the Internet
 Outline of Google
 Outline of software
 Types of software
 Outline of free software
 Outline of search engines
 Outline of software development
 Outline of software engineering
 Outline of web design and web development
 Outline of computer programming
 Programming languages
 Outline of C++
 Outline of Perl

References

External links 

How to Think Like a Computer Scientist - by Jeffrey Elkner, Allen B. Downey and Chris Meyers

 
Programming topics
Computer programming
Computer programming