Open main menu


Introduction

Example of an internet chess program, Lichess, showing artificial intelligence programming– if the white bishop at b3 moves to a2, capturing the black knight, then the black pawn at b1 is programmed to capture the bishop back. Black has just moved a pawn to c2.

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

System 3 punch card.jpg

A punched card, punch card, IBM card, or Hollerith card is a piece of stiff paper that contains digital information represented by the presence or absence of holes in predefined positions. Now an obsolete recording medium, punched cards were widely used throughout the 19th century for controlling textile looms and in the late 19th and early 20th century for operating fairground organs and related instruments. They were used through the 20th century in unit record machines for input, processing, and data storage. Early digital computers used punched cards, often prepared using keypunch machines, as the primary medium for input of both computer programs and data. Some voting machines use punched cards.

Selected biography

Ronald Paul "Ron" Fedkiw (/ˈfɛdk/; born February 27, 1968) is an associate professor in the Stanford University department of computer science and a leading researcher in the field of computer graphics, focusing on topics relating to physically based simulation of natural phenomena and level sets. His techniques have been employed in over twenty motion pictures. He has earned recognition at the 80th Academy Awards as well as from the National Academy for Science.

Selected image

A yellowing rectangular paper with circular holes and numbers on it
Credit: Journey234

Created by IBM, the IBM Port-A-Punch was a pocket-sized device intended to quickly create punched cards.

Did you know?

Updated DYK query.svg

Subcategories

Associated Wikimedia

The following Wikimedia Foundation sister projects provide more on this subject:

Wikibooks
Books

Commons
Media

Wikinews 
News

Wikiquote 
Quotations

Wikisource 
Texts

Wikiversity
Learning resources

Wiktionary 
Definitions

Wikidata 
Database

Purge server cache