Computer programming

The educational technology and digital learning wiki
Jump to navigation Jump to search

Draft

Definition

Computer programming (often shortened to programming or coding), sometimes considered a branch of applied mathematics, is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. [...] There is an ongoing debate on the extent to which the writing of programs is an art, a craft or an engineering discipline. (Wikipedia, retrieved 13 August 2008).

The purpose of this page (for now) is to:

  • provide a few pointers to learning materials
  • link to some programming-related pages of this wiki.

See also: programmed instruction (the term programming can refer to other things than computer programming).

The very essence of computer programming

Copyright notice: This section uses excerpts from chapter 1 of How to Think Like a Computer Scientist: Learning with Python by Allen Downey et al. (2002) and is avaible under GNU Free Documentation License

A program is a sequence of instructions that specifies how to perform a computation. The computation might be something mathematical, such as solving a system of equations or finding the roots of a polynomial, but it can also be a symbolic computation, such as searching and replacing text in a document or (strangely enough) compiling a program.

The details look different in different languages, but a few basic instructions appear in just about every language:

input
Get data from the keyboard, a file, or some other device.
output
Display data on the screen or send data to a file or other device.
math
Perform basic mathematical operations like addition and multiplication.
conditional execution
Check for certain conditions and execute the appropriate sequence of statements.
repetition
Perform some action repeatedly, usually with some variation.

Believe it or not, that's pretty much all there is to it. Every program you've ever used, no matter how complicated, is made up of instructions that look more or less like these. Thus, we can describe programming as the process of breaking a large, complex task into smaller and smaller subtasks until the subtasks are simple enough to be performed with one of these basic instructions.

Links

Overviews

Introductory tutorials

  • Computer programming (Wikibooks). This a short conceptual overview. It also summarized all computer programming books in a table.

Introductory free online textbooks

Using Java
Using Javascript
Using Python
  • Allen B. Downey (2008). Think Python, An Introduction to Software Design. Green Tea Press. (This is a revised version of How to Think Like a Computer Scientist).
Using Scheme

Introductory programming courses

  • CS 242 - Computer languages (Standford)