Computer programming is a process that leads from an original formulation of a computing problem to executable computer programs.
Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms including their correctness and resources consumption, and implementation of algorithms in a target programming language.
The purpose of programming is to find a sequence of instructions that will automate performing a specific task or solving a given problem.
The goal of programming, is to find a sequence of instructions to automate tasks, or perform a specific task, such as processing credit card transactions, or generating daily sales reports.
Primary Steps Involved
The primary steps involved with computer programming are:
- Developing Understanding
- Generating Algorithms
- Requirements Verification
- Resource Consumption
Analysis and Developing Understanding
The analysis, and developing understanding steps are closely related. The goals of both, are to determine the crux of the problem. Once the root of the problem is known, the steps to solve the given problem can be engineered.
This process usually involves the use of flowcharts and algorithms, to help break down each individual step required to solve the given problem. To assist with this process, the required steps will need to be determined.
Generation of Algorithms
The steps needed to obtain the desired requirements need to be listed, or drawn out in some way. This can be done using Pseudocode, which can later be translated into the target programming language, by computer programmers.
At this stage, it must be determined if the output from the algorithm fully meets the requirements from the analysis, and developing understanding, stages. This can be done, initially, by running through the steps of the algorithm on paper, and then by performing unit testing of the algorithms.
The resource requirements of the given algorithm(s) need to be calculated. A few suggested areas are:
- Software requirements
- Internet Browser
- Hardware requirements
- Primary storage requirements
- Video card requirements
- Network requirements
- Is a connection to the Internet or other network required?
- Other requirements
- Is an email address required?
- Is a customer account required?
In this stage, the algorithm(s) are translated into the target programming languages. This is done by computer programmers. The target programming language will be dependent on several factors.
Algorithms designed for the Internet might be implemented using PHP, or ASP .Net. Algorithms designed for use with embedded devices, might be implemented using Java. State-of-the-art video game algorithms might be implemented using C++.