Pseudocode is a method of writing out an algorithm or code concept in a way that makes it easy for people to read and understand. While it may structurally resemble a programming language, pseudocode isn't actually meant for a machine to read or process. Within the general structural conventions of a programming language, it may include explanations using natural language, mathematical formulas, and other notations. It is often used in various publications to illustrate the function of an algorithm, or in the planning stages for a computer program before any actual code is written.
One common use of pseudocode is in textbooks and scientific publications. By omitting many of the things that differentiate one programming language from another, it may allow a high level understanding of an algorithm by many different people, regardless of the programming languages they know. An algorithm is a set of steps or instructions designed to give a particular result, and one commonly makes up the backbone of computer programming. This may make the ability to understand algorithms, across different programming languages, very useful.
The other main use of pseudocode is to get down the general functions of a new program before writing any real code. This may allow a programmer to view things in a top-down manner, conceptualizing the entire system before getting bogged down in the actual coding. Another form that this process may take is the use of a graphical structure, such as a flow chart.
Skeleton programming is similar to pseudocode, though it differs in that it can actually be compiled without errors. Pseudocode follows the structural conventions of programming languages, while omitting many of the things code requires to be successfully parsed. The purpose of skeleton programming is merely to get a high level program up and running quickly, while utilizing dummy code for many functions that will be filled in later. This makes it similar in function to planning tools, with one resulting in an actual, working program and the other being more like a non-working mock-up.
Another use of pseudocode is in the explanation of certain mathematical algorithms. By combining mathematical notations from set and matrix theory with a generic programming structure and natural language, it may become possible to easily explain a variety of mathematical algorithms. Though it may require mathematical training for this to work, people with such training will generally be able to understand such algorithms regardless of their other backgrounds.