Portal:Computer programming
Introduction

Computer programming is the process of designing and building an executable computer program for accomplishing a specific computing task. Programming involves tasks such as: analysis, generating algorithms, profiling algorithms' accuracy and resource consumption, and the implementation of algorithms in a chosen programming language (commonly referred to as coding). The source code of a program is written in one or more languages that are intelligible to programmers, rather than machine code, which is directly executed by the central processing unit. The purpose of programming is to find a sequence of instructions that will automate the performance of a task (which can be as complex as an operating system) on a computer, often for solving a given problem. The process of programming thus often requires expertise in several different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.
Tasks accompanying and related to programming include: testing, debugging, source code maintenance, implementation of build systems, and management of derived artifacts, such as the machine code of computer programs. These might be considered part of the programming process, but often the term software development is used for this larger process with the term programming, implementation, or coding reserved for the actual writing of code. Software engineering combines engineering techniques with software development practices. Reverse engineering is the opposite process. A hacker is any skilled computer expert that uses their technical knowledge to overcome a problem, but it can also mean a security hacker in common language.
Selected article
The Antikythera mechanism (/ˌæntɪkɪˈθɪərə/ ANT-i-ki-THEER-ə or /ˌæntɪˈkɪθərə/ ANT-i-KITH-ə-rə) is an ancient mechanical computer designed to calculate astronomical positions. It was recovered in 1900–1901 from the Antikythera wreck. Its significance and complexity were not understood until decades later. Its time of construction is now estimated between 150 and 100 BC. Technological artifacts of similar complexity and workmanship did not reappear until the 14th century, when mechanical astronomical clocks were built in Europe.
Selected biography
Charles Babbage, FRS (26 December 1791 – 18 October 1871) was an English mathematician, philosopher, inventor and mechanical engineer who originated the concept of a programmable computer. Considered a "father of the computer", Babbage is credited with inventing the first mechanical computer that eventually led to more complex designs. Parts of his uncompleted mechanisms are on display in the London Science Museum. In 1991, a perfectly functioning difference engine was constructed from Babbage's original plans. Built to tolerances achievable in the 19th century, the success of the finished engine indicated that Babbage's machine would have worked. Nine years later, the Science Museum completed the printer Babbage had designed for the difference engine.
Selected image
Deep Blue was a chess-playing computer developed by IBM. On 11 May 1997, the machine won a six-game match by two wins to one with three draws against world champion Garry Kasparov.
Did you know?
- ... that custom allocators may greatly improve the performance of a computer program written in C++?
- ... that the return value optimization is one of the very few compiler optimizations that are allowed to change the observable behaviour of a C++ program?
Subcategories
Topics
- Ada
- Algorithm
- Artificial intelligence
- Assembly language
- BASIC
- C
- C Sharp
- C++
- COBOL
- Compiler
- Computer architecture
- Computer graphics
- Computer hardware
- Computer programming
- D
- Data privacy
- Delphi
- Eiffel
- Erlang
- F Sharp
- Forth
- Fortran
- Go
- Haskell
- Information technology
- Interpreter
- Java
- JavaScript
- Julia
- Kotlin
- LabVIEW
- Linker
- Lisp
- List of programming languages
- Loader
- MATLAB
- Node.js
- PHP
- Perl
- Programming language
- Prolog
- Python
- R
- Ruby
- Rust
- SNOBOL
- Scala
- Swift
- Tcl
- Unix shell
Related portals
WikiProjects
Things to do
Here are some things you can do :