Skip to Content
This is the Beta version of our new Learning Paths approach. Please email feedback.
Micro CircuitsComputer Programming

Computer Programming

Computers (or computing devices including smart phones) are usually general-purpose devices designed to store and process digital data to perform a wide range of computing tasks. They need to be provided instructions for what they are expected to do. The art and science of Writing these instructions is referred to as computer programming and the set of instructions is referred to as the program. Executing instructions in the program is referred as running the program.

There are several terms that are used interchangeably with programs and programming. Programs are also referred to as code or software and programming is referred to as writing code or developing software.

There are two broad categories of programs:

  • Operating Systems: These include instructions to manage some core functions of the computer such as the input and output peripherals, memory and data storage, and network connections.

  • Application Programs: These include instructions for a specific task that the user wants the computer to perform. Applications can be written for a wide range of tasks, from fun games to complex business applications such as equity trading.

Since instructions to manage and control the computer systems are common across all user applications, they are readily available to be used in the operating system, which takes away a lot of the effort from user application programs. Therefore, applications always use the services of an operating system. There are many choices in operating systems, each suited for specific computers, but the most widely used are Windows, macOS, Unix, and Linux. Each operating system works differently, so applications must be developed in such a manner so that they can work with the operating system.

The objective of programming is to find a sequence of instructions that will automate the performance of a task on a computer, often for solving a given problem. Writing good programs requires expertise in different subjects, including knowledge of the application domain, specialized algorithms, and formal logic and programming languages.

Computer programming or software development generally follows what is known as a software development lifecycle (SDLC). You must first define the requirements, then design the solution for developing the software, write the code, and lastly, test it to make sure it works as expected.

In IoT projects, the microcontroller is used as the computer, and they will also need to be programmed just like any other computer. This module will cover general aspects of computer programming, while the specifics of programming for an Arduino will be covered in the course on IoT Programming.