Topics
Computer Programming

Computer Programming

Computers (referred to as the Hardware) are usually general-purpose devices designed to store and process digital data to perform a wide range of tasks. They need to be provided instructions for what they are expected to do and they will execute the instructions precisely. Writing the instructions that are required to get something done by a computer is referred to as computer programming and the set of instructions is referred to as the program (or as the Software).

There are several terms that are used interchangeably. The set of instructions is referred to as a program, and executing instructions in the program is known as running the program. Providing these instructions to a computer is known as programming and people who write programs are known as programmers or software developers.

There are two broad categories of software:

  • 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.