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 Analytical Engine was a proposed mechanical general-purpose computer designed by English mathematician Charles Babbage. It was first described in 1837 as the successor to Babbage's difference engine, a design for a mechanical calculator. This Analytical Engine incorporated an arithmetical unit, control flow in the form of conditional branching and loops, and integrated memory, making it the first Turing-complete design for a general-purpose computer.
Selected biography
Augusta Ada King, Countess of Lovelace (10 December 1815 – 27 November 1852), born Augusta Ada Byron, was an English writer chiefly known for her work on Charles Babbage's early mechanical general-purpose computer, the analytical engine. Her notes on the engine include what is recognised as the first algorithm intended to be processed by a machine; as such she is sometimes considered the "World's First Computer Programmer".
She was the only legitimate child of the poet Lord Byron (with Anne Isabella Milbanke). She had no relationship with her father, who died when she was nine. As a young adult she took an interest in mathematics, and in particular Babbage's work on the analytical engine. Between 1842 and 1843 she translated an article by Italian mathematician Luigi Menabrea on the engine, which she supplemented with a set of notes of her own. These notes contain what is considered the first computer program—that is, an algorithm encoded for processing by a machine. Though Babbage's engine has never been built, Lovelace's notes are important in the early history of computers. She also foresaw the capability of computers to go beyond mere calculating or number-crunching while others, including Babbage himself, focused only on these capabilities.
Selected image
Created by IBM, the IBM Port-A-Punch was a pocket-sized device intended to quickly create punched cards.
Did you know?
- ... that Netscape was the first web browser to support Java, other than Java's own HotJava Browser?
- ... that C was designed to allow low-level access to system resources while maintaining code portability across different platforms?
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 :