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 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
  • 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
  • ***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
  • *Constraint
  • **Constraint logic
  • ***Concurrent constraint logic
  • *Dataflow
  • **Flow-based
  • **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
  • Generic
  • Imperative
  • *Literate
  • *Procedural
  • Inductive programming
  • Language-oriented
  • *Natural language programming
  • Non-structured
  • *Array
  • Nondeterministic
  • Probabilistic
  • Process-oriented
  • Role-oriented
  • Semantic-oriented
  • Structured
  • *Block-structured
  • *Modular
  • **Concurrent computing
  • ***Relativistic programming
  • *Object-oriented
  • **Class-based
  • **Concurrent OOP
  • **Prototype-based
  • **Subject-oriented
  • Tacit
  • Value-level
  • Visual

    Writing programs

  • Pseudocode

    Methodology

  • Array programming
  • End-user development
  • Metaprogramming
  • *Automatic programming
  • *Reflection
  • **Attribute-oriented programming
  • *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

- 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
  • List of open-source programming languages
  • 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 as of 2025:
  1. Python
  2. C
  3. C++
  4. Java
  5. C#
  6. JavaScript
  7. Visual Basic.NET
  8. SQL
  9. Perl
  10. R
  11. Delphi/Object Pascal
  12. Fortran
  13. MATLAB
  14. Ada
  15. Go
  16. PHP
  17. Rust
  18. Scratch
  19. Assembly Language
  20. Kotlin

    Anatomy of a programming language

-