Instructions for this lesson 
Programming languages are the method used to instruct a computer on how to accomplish a task.
A programming language is a collection of operators and instructions, with specific rules or syntax regarding how the instructions are placed together. Various operations can be combined in an almost infinite number of ways to achieve the tasks we want the computer to perform.
Some programming languages are bound to a particular set of hardware, commonly called "low level" languages. An example of a low level language is Assembly, where the target is for a particular CPU instruction set. Other languages are more abstract from the hardware, and are known as "high level" languages. An example of a high level language is Java.
Early generations of computer languages were mostly procedural in nature. Theory taught that code should be logically divided, but left that division up to the programmer. More recently, Object Oriented languages have become more prominent. These languages encourage a more logical division of code.
One thing that should be noted is that programming languages are tools, and every tool has its strengths and weaknesses. While a high level language isolates a programmer from hardware, the programmer loses the ability to directly control that hardware. Choosing the right tool for a problem is very important.
Questions for self-test 
See also: programming languages 
Category:Programming languages - An overview of many different languages