Computer programming: Difference between revisions

Content deleted Content added
I’ll see if they have any information on the details
Tags: Visual edit Mobile edit Mobile web edit
m Reverted edits by 2600:1004:B038:155B:E594:7757:F7A:D915 (talk) to last version by Bennv3771
Line 1:
{{software development process}}
'''Computer programming''' (often shortened to '''programming''') is a process that leads from an original formulation of a [[computing]] problem to [[executable]] [[computer program]]s. Programming involves activities such as analysis, developing understanding, generating [[algorithm|algorithm hm]]s, verification of requirements of algorithms including their correctness and resources consumption, and implementation (commonly referred to as '''coding'''<ref>{{cite web| author=Shaun Bebbington| year=2014| url=http://yearofcodes.tumblr.com/what-is-coding| title=What is coding| accessdate=2014-03-03}}</ref><ref>{{cite web| author=Shaun Bebbington| year=2014| url=http://yearofcodes.tumblr.com/what-is-programming| title=What is programming| accessdate=2014-03-03}}</ref>) 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. The process of programming thus often requires expertise in many different subjects, including knowledge of the [[application ___domain]], specialized algorithms, and formal [[logic]].
 
Related tasks include [[Software testing|testing]], [[debugging]], and maintaining the [[source code]], implementation of the build system, and management of derived artifacts such as [[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 source code. [[Software engineering]] combines [[engineering]] techniques with software development practices.
Line 10:
Programmable devices have existed at least as far back as 1206 AD, when the [[automata]] of [[Al-Jazari]] were programmable, via pegs and [[cam]]s, to play various rhythms and drum patterns;<ref>{{Cite journal|title=The Museum of Music: A History of Mechanical Instruments|first=Charles B.|last=Fowler|journal=Music Educators Journal|volume=54|issue=2|date=October 1967|pages=45–49|doi=10.2307/3391092|jstor=3391092|publisher=Music Educators Journal, Vol. 54, No. 2|postscript=<!--None-->}}</ref> and the 1801 [[Jacquard loom]] could produce entirely different weaves by changing the "program" - a series of [[Card stock|pasteboard]] cards with holes punched in them.
 
However, the first computer program is generally dated to 1843, when mathematician [[Ava Lovelace|Ada Lovelace]] published an [[algorithm]] to calculate a sequence of [[Bernoulli numbers]], intended to be carried out by [[Charles Babbage]]'s [[Analytical Engine]].<ref name="IEEE">{{Cite journal | last1 = Fuegi | first1 = J. | last2 = Francis | first2 = J. | title = Lovelace & babbage and the creation of the 1843 'notes' | journal = IEEE Annals of the History of Computing | volume = 25 | issue = 4 | pages = 16 | year = 2003 | doi = 10.1109/MAHC.2003.1253887}}</ref>
 
[[File:PunchCardDecks.agr.jpg|thumb|Data and instructions were once stored on external [[punched card]]s, which were kept in order and arranged in program decks.]]