TEL Library
Educational Content and Custom Curriculum
Oklahoma City, Ok, 73170

How Computer Software Works

Learn About This Lesson

Learning Objectives

After completing this lesson, you will be able to:

  • Explain the history of computer software development.
  • Describe the role of computer software in the operation of the computer.
  • Differentiate between the two forms of software.
  • Summarize how computer software is created.

Inquire: Software: What is it and Where Does it Come From?


There are two major components of an information system: hardware and software. Software – a computer program, computer application, or just an app – is the set of instructions that tell the hardware what to do. Software is created through the process of programming. Without software, the hardware will not function.

Software can be broadly divided into two categories: operating systems and application software. Operating systems manage the hardware and create the interface between the hardware and the user. Application software is the category of programs that do something useful for the user.  This lesson will focus on these different types of software, and how software is created.

Big Question

What is the importance of computer software?

Watch: Computer Software and Applications
Read: Type of Computer Software


Software can be broadly divided into two categories: operating systems and application software. Operating systems  manage the hardware and create the interface between the hardware and the user. Application software is the category of programs that do something useful for the user.

Operating Systems (OS)

four vertical layers, each with arrows going both ways between the layers. Bottom layer is hardware, then Operating Systems, the Applications, with Users at the top layer.

Diagram showing interaction between computer hardware, software and the user.

The operating system provides several essential functions, including:

  • managing the hardware resources of the computer
  • providing the user-interface components
  • providing a platform for software developers to write applications

All computing devices run an operating system. For personal computers, the most popular operating systems are Microsoft’s Windows, Apple’s OS X, and different versions of Linux. Smartphones and tablets run operating systems as well, such as Apple’s iOS or Google’s Android.

Early personal-computer operating systems were simple by today’s standards; they did not provide multitasking and required the user to type commands to initiate an action. The amount of memory that early operating systems could handle was limited as well, making large programs impractical to run. The most popular of the early operating systems was IBM’s Disk Operating System, or DOS, which was developed for them by Microsoft.

In 1984, Apple introduced the Macintosh computer, featuring an operating system with a graphical user interface. Though not the first graphical operating system, it was the first one to find commercial success. In 1985, Microsoft released the first version of Windows. This version of Windows was not an operating system, but instead, was an application that ran on top of the DOS operating system, providing a graphical environment. It was quite limited and had little commercial success. It was not until the 1990 release of Windows 3.0 that Microsoft found success with a graphical user interface.  Since 1990, both Apple and Microsoft have released many new versions of their operating systems, with each release adding the ability to process more data at once and access more memory. Features such as multitasking, virtual memory, and voice input have become standard features of both operating systems.

A third personal-computer operating system family that is gaining in popularity is Linux, which is a version of the Unix operating system that runs on the personal computer. Unix is an operating system used primarily by scientists and engineers on larger minicomputers and servers. These are very expensive computers, and software developer Linus Torvalds wanted to find a way to make Unix run on less expensive personal computers. Linux was the result. Linux has many variations and now powers a large percentage of web servers in the world. It is also an example of open-source software.

Application Software

The second major category of software is application software. Application software is, essentially, software that allows the user to accomplish some goal or purpose. For example, if you need to write a paper, you might use the application-software program Microsoft Word. If you want to listen to music, you might use iTunes. To surf the web, you might use Chrome or Firefox. Even a computer game is application software.  Application software is written for a specific OS, so your OS can limit the applications that you can use on a specific computer.


Apple Macintosh SE with OS 6

The use of personal computers was minimal at first; mostly hobbyists worked together to write applications and make computers run.  Most of those familiar with computers were familiar with that had a huge footprint.  It filled a whole room and it seemed unlikely it would ever be used by individuals. It took a “killer” application – an application that becomes so essential that large numbers of people will buy a device just to run that application – to launch computers into the desktop computer market.

For the personal computer, the first killer application was the spreadsheet. In 1979, VisiCalc, the first personal-computer spreadsheet package, was introduced. It was an immediate hit and drove sales of the Apple II. It also solidified the value of the personal computer beyond the relatively small circle of technology geeks. When the IBM PC was released, another spreadsheet program, Lotus 1-2-3, became the killer app for business users.

Utility Software and Programming Software

Utility software and programming software are two important subcategories of application software.

Utility software includes software that allows you to modify your computer in some way: antivirus software, screensavers, backup software. These types of software packages supplement the functionality of an OS or make interacting with the OS simpler. As developers release updates to operating systems, many utility program functions become integrated directly into the OS.

Programming software, or software development tools, allow the programmer to make more software; this category includes compilers, assemblers, and debugging software.  Most of these programs provide programmers with an environment in which they can write the code, test it, and convert it into a format that can then be run on a computer.

Reflect: What is More Important: Hardware or Software?



When you are purchasing a new computer, what do you usually consider the most important?

Thank you for voting
You have already voted on this poll!
Please select an option!

Expand: How Software is Created

When a programmer creates computer code, s/he is translating an idea, or detailed specification of what someone needs the computer to do into a form that a computer can understand, thus, coding a program for the computer to run that meets the needs of the users.

Modern software applications are written using a programming language. A programming language is an artificial language that provides a way for a programmer to create structured code to communicate logic in a format that can be executed by the computer hardware.

DecorativeProgramming languages consist of sets of commands and syntax that can be organized logically to execute specific functions. This language generally consists of readable words combined with symbols. Using this language, a programmer writes a program (called the source code) that can then be compiled into machine-readable form: the ones and zeroes necessary to be executed by the CPU. Examples of well-known programming languages today include Java, PHP, Python, and various types of C (Visual C, C++, C#). Languages such as HTML and Javascript are used to develop web pages.

Software programming was originally an individual process, with each programmer working on an entire program, or several programmers each working on a portion of a larger program. However, newer methods of software development include a more collaborative, or agile approach, with teams of programmers working on code together.

To write a program, a programmer needs little more than a text editor and the specifications for what functionality is needed. However, to be productive, he or she must be able to check the syntax of the code, and, in some cases, compile the code. To be more efficient at programming, additional tools, such as integrated development environment (IDE) tools, can be used.

An IDE provides a variety of tools for the programmer, and usually includes an editor, compiler, debugging tool, and support tools. Visual Studio is an example of an IDE. It is the IDE for all of Microsoft’s programming languages, including Visual Basic, Visual C++, and Visual C#.


Click to download a PDF version of this lesson. 

How Stuff Works Computer Software Section

An interactive article on how computer software works

Video: What is Programming (2:00)

An introduction to programming basics
Khan Academy

Computer Programming

Article covers the history of programming and basic programming languages.

Computer Software

Article covers types of computer software.

Video: Computer Software in Plain English from Common Craft (subtitulos en español) (3:34)

Computer applications
Common Craft


AJAX progress indicator
  • algorithm
    in computer programming, a sequence of actions or set of instructions used to perform a calculation, or automated reasoning tasks in a problem-solving operation.
  • application software
    a category of computer programs that do something useful for the user, and interact with the operating system.  It is the  software that allows the user to accomplish some goal or purpose.
  • compilers
    Computer software that programmers use to convert computer programming language or source code into another language, usually machine-readable code 
  • debugger
    Also Debugging tool, is software that tests and repairs computer programs 
  • Graphical user interface (GUI) –
    a computer user interface that is structured with menus, icons, and folders that allows users to interact with the computer programs  through point and click visual cues instead of command line.  It is pronounced “gooey”. 
  • operating system
    a computer program that manages computer hardware and creates the interface between the hardware and the users and his or her additional application software 
  • programming language
    an artificial language that provides a way for a programmer to create structured code to communicate logic in a format that can be executed by the computer hardware. 
  • source code
    the computer programming code, written by a programmer that is converted or compiled into machine-readable code 

License and Citations

Content License:

Lesson Content:

Authored and curated by Stacy Zemke M.S.K.M.  for The TEL Library.  CC BY NC SA

Adapted Content :

Media Sources:

DecorativeMixer Audio Entertainment Music Mp3 Dj DeviceWerbeFabrikPixabayCC 0
four vertical layers, each with arrows going both ways between the layers. Bottom layer is hardware, then Operating Systems, the Applications, with Users at the top hardware and software layersDavid T. BourgeoisDavid T. BourgeoisCC BY 2.0
DecorativeApple Mac SENostalgia NerdFlickrCC BY 2.0
DecorativeComputer Keyboard Electronics Modern TechnologyStockSnapPixabayCC 0