Book
Collection
Click for Table of Contents
© 2025 by Rance D. Necaise
C Primer for Python Programmers
Copyright © 2025
Rance D. Necaise

1.1 Computer Systems

The American Heritage Dictionary defines a computer as

A device that computes, especially a programmable electronic machine that performs high-speed mathematical or logical operations or that assembles, stores, correlates, or otherwise processes information.

To understand computer programming and the programming process, you need to have a basic understanding of what a computer is and how a computer works. Computer systems are comprised of both hardware and software. The hardware includes the physical components used to construct the system, such as the motherboard, the central processing unit, memory chips, disk drives, graphics and network cards, and external devices needed to work with the system such as the keyboard, mouse, and monitor.

The software is the set of instructions that directs or tells the hardware components what to do. The instructions, which are stored in the computer, describe specific actions to be performed by the hardware. Software can be classified into two categories: system software and application software. System software is the main software of a computer system. It includes the operating system (OS), which manages the computer resources and provides an interface between the user and the hardware (i.e. Windows, Linux and MacOS), and support tools for working with and managing the system. Applications are specialized software that perform user-oriented tasks such as creating word documents, playing games, browsing the web, and listening to music. There are many different types of application software, all of which require the services of an operating system in order to execute on the hardware.

Figure 1.1.1. The interaction between the user, software, and hardware.

The relationship between the hardware and software and the interaction of the user is illustrated in Figure 1.1.1. On a typical desktop computer, users work with application software. The applications run on the hardware, but are controlled and managed by the operating system. The operating system interacts with, manages and controls the hardware. If an application needs access to the hardware, such as reading or writing a file, it must interact with and receive permission from the operating system.