Lesson Three: Introduction to Computer Software

The term hardware refers to all of the physical components that come together to form a computer. By contrast, the software on a computer is the collection of programs that make the computer do useful work.

The most basic unit of software is simply called a program. A program is a collection of program statements that complete a task or provide a service on a computer. These programs need to work with a variety of input data and situations.

The behavior of a program is how a program functions during execution and is often described by how a user interacts with it. A program can be described broadly by what it does, or in more detail by both what the program does and how the program statements accomplish this function. In this lesson, we will describe programs by breaking them into three main types of software programs: operating systems, device drivers, and applications.

Operating Systems
The operating system is the underlying software that makes it possible to run other programs on the computer. It ties together all of the hardware components and gives the user a way to control the computer. Three common operating systems available today for desktop and laptop computers are Microsoft Windows, Apple Mac OS, and Linux.

Windows logoThe Microsoft Windows operating system is a highly popular operating system for personal computers and laptops. Windows was first launched in 1985 and has seen many revisions since then. It features a graphical operating system and a large number of hardware and software vendors creating compatible peripherals and software applications. Many businesses, schools, and home computers run Windows.

Mac OS logoThe Mac operating systems run the Apple line of computers. The Mac OS was first released in 1984 and is responsible for many of the graphical user interface concepts used today by all major operating systems. The Mac operating systems have always prided themselves on ease of use and solid reliability, and are especially popular in some home, school, and academic environments.

Linux logoThe Linux operating system is an interesting and emerging alternative to the commercial Microsoft and Apple operating systems. Linux was first released in the early 1990s as open-source software, which means it was created by many volunteer programmers and is free to use. Linux is not as tightly tied to a graphical user interface, although several such interfaces do exist. Linux can also be run on small embedded systems that do not have a large monitor, so it's common to control a Linux system through a command-line interface. Linux also serves as the basis for Android smartphones, network routers, and many other specialized pieces of hardware.

Device Drivers
Device drivers are small pieces of software that work at a low level within the operating system. The purpose of a device driver is to make a piece of hardware, such as a mouse or printer, work with the operating system. Just because you plug in some fancy new printer doesn't mean your computer can use it right away! You may first have to install a device driver that knows how to talk with the printer. Once you install the device driver, then you can use the printer from one of your applications!

Applications
Applications are software that you work with as a computer user. The applications run on top of the operating system and let you do many different things. Common applications include:

Business software like word processors, spreadsheets, and presentation programs
Educational software
Web browsers
Email programs
Video conferencing software
Image editing software
Financial and accounting programs
Databases
Video games
Integrated Development Environments (IDEs)
...and more!
Integrated Development Environments (or IDEs) are of particular interest to programmers. An IDE lets you easily design, code, and test programs in one application. Most major programming languages have at least one popular IDE, and some (like Python) have multiple IDEs that appeal to different people.

The image below shows an example IDE called Python IDLE. IDLE can be used to write programs in Python and other languages.

Eclipse Eclipse IDE Screen

You do not need to install IDLE or any Python software to complete the required portions of this course. All of your coding can be done directly in the web browser. You may choose to install IDLE if you want to use an IDE or to complete some optional chapters later in the course.
Computer Languages
All text that humans read, from poetry to fiction to grocery lists, is written in some language such as English, French, or Spanish. In the same way, all computer operating systems, device drivers, and application software must be written in a computer language. There are many types of computer languages with strange names such as "C", "C++", "C#", "Java", "HTML", "JavaScript", and "Python" to name a few. Each language was created to fill a need as computers evolved, and those that survive today have particular strengths that make them useful to programmers. You will learn more about programming languages in the next chapter.

1. What are the three main operating systems on the market today? Give some pros and cons for each operating system.
2. What is the purpose of a device driver?
3. What type of software is most often used by a user on a computer?
4. What is the purpose of an IDE and who typically uses one?

1. The three main operating systems on the market today are Microsoft Windows, Apple Mac OS, and Linux.

- Microsoft Windows: This operating system is highly popular and widely used for personal computers and laptops. It offers a graphical user interface and a large number of compatible peripherals and software applications. It is commonly used by businesses, schools, and home computers. However, it may be more susceptible to viruses and malware compared to other operating systems.

- Apple Mac OS: The Mac operating systems run on Apple computers and have a reputation for ease of use and solid reliability. They were responsible for introducing many graphical user interface concepts used by major operating systems today. Mac OS is popular in some home, school, and academic environments. However, it only runs on Apple hardware, which tends to be more expensive compared to Windows-based computers.

- Linux: Linux is an open-source operating system that was created by volunteer programmers and is free to use. It is an emerging alternative to commercial operating systems like Windows and Mac OS. Linux is known for its flexibility and can be run on various hardware platforms, including small embedded systems. It is commonly used in network routers and Android smartphones. However, Linux may require more technical knowledge to operate and lacks some of the commercial software support available for Windows and Mac OS.

2. The purpose of a device driver is to make a piece of hardware, such as a mouse or printer, work with the operating system. When a new hardware device is connected to a computer, the computer may not automatically recognize or know how to communicate with it. A device driver is required to bridge the gap between the hardware and the operating system, allowing the computer to use the hardware device efficiently.

3. The type of software most often used by a user on a computer is application software. Application software includes programs like word processors, web browsers, email programs, video games, and many more. These software programs are designed to fulfill specific tasks or provide services to users, allowing them to perform various functions on their computers.

4. The purpose of an IDE (Integrated Development Environment) is to provide a comprehensive set of tools for software development. An IDE allows programmers to design, code, and test programs within a single application, streamlining the development process. It typically includes features like code editors, debugging tools, and project management capabilities. IDEs are primarily used by programmers to write and develop software applications in programming languages like C, Java, Python, etc.

1. The three main operating systems on the market today are:

a. Microsoft Windows:

Pros:
- Widely used and supported by many hardware and software vendors.
- Offers a user-friendly graphical interface.
- Compatible with a wide range of applications.
- Supports a variety of hardware devices.
- Regular updates and security patches.

Cons:
- Can be prone to viruses and malware.
- Can be resource-intensive, requiring high system specifications.
- Some users may find the interface less intuitive compared to other operating systems.

b. Apple Mac OS:

Pros:
- Known for its user-friendly interface and ease of use.
- Provides a seamless integration with Apple hardware devices and software applications.
- Offers high security and is less susceptible to viruses.
- Provides stable and reliable performance.

Cons:
- Limited compatibility with non-Apple hardware and software.
- Limited availability of certain applications compared to Windows.
- Higher cost compared to Windows.

c. Linux:

Pros:
- Open-source and free to use.
- Highly customizable and flexible.
- Offers high security and is less prone to viruses and malware.
- Supports a wide range of hardware platforms.
- Has a large and supportive online community.

Cons:
- Requires more technical knowledge compared to Windows or Mac OS.
- Limited availability of commercial software applications.
- Compatibility issues with certain hardware devices.
- User interface may not be as visually appealing as other operating systems.

2. The purpose of a device driver is to make a piece of hardware, such as a printer or mouse, work with the operating system. Device drivers act as a bridge between the hardware and the operating system, allowing the operating system to communicate and interact with the hardware device. When a new hardware device is connected to a computer, the device driver needs to be installed so that the operating system recognizes and understands how to utilize the device's functionality.

3. Applications are the type of software most often used by a user on a computer. Applications run on top of the operating system and provide various functionalities and services to the user. Examples of applications include word processors, web browsers, email programs, video games, and image editing software. Applications allow users to perform specific tasks or activities on their computers, such as creating documents, browsing the internet, sending emails, playing games, and editing images.

4. An IDE (Integrated Development Environment) is a software application that provides tools and features to facilitate software development. It is used by programmers and developers to create, edit, debug, and compile software programs. The purpose of an IDE is to streamline the programming process and enhance productivity by providing an integrated set of tools, including code editors, compilers, debuggers, and build automation tools. IDEs often have features like code suggestion, syntax highlighting, and project management capabilities to assist developers in writing, testing, and managing their code efficiently. Different IDEs are available for different programming languages, and programmers typically use IDEs to write and develop software applications.

1. The three main operating systems on the market today are Microsoft Windows, Apple Mac OS, and Linux. Here are some pros and cons for each operating system:

- Microsoft Windows:
- Pros: Widely used and supported, compatible with a large number of hardware and software vendors, extensive software applications available, suitable for both casual and professional use.
- Cons: Can be prone to malware and viruses, may require frequent updates and maintenance, not free (except for some versions).

- Apple Mac OS:
- Pros: User-friendly and intuitive interface, known for stability and reliability, tightly integrated with Apple hardware, excellent for multimedia and creative professionals.
- Cons: Limited hardware options as it only runs on Apple devices, usually more expensive than Windows computers, software compatibility can be an issue for certain applications.

- Linux:
- Pros: Free and open-source, highly customizable and flexible, offers excellent security and stability, suitable for both casual and technical users, supports a wide range of hardware and software.
- Cons: Can have a steeper learning curve for new users, limited commercial software support, some hardware may require manual configuration, less popular for mainstream desktop use.

2. The purpose of a device driver is to enable a piece of hardware to work with the operating system. When you connect a new hardware device, such as a printer or mouse, to your computer, the operating system needs a way to communicate with it. Device drivers act as a bridge between the hardware and the operating system, providing the necessary instructions and protocols for the hardware to function correctly. Without a device driver, the operating system would not know how to access or control the hardware device.

3. The type of software most often used by a user on a computer is applications. Applications are software programs that run on top of the operating system and provide various functionalities to the user. Examples of common applications include word processors, web browsers, email programs, video games, and image editing software. These applications allow users to perform specific tasks, such as creating documents, browsing the internet, sending emails, playing games, or editing images, based on their needs and interests.

4. An Integrated Development Environment (IDE) is a software application that provides tools and features to facilitate the development of software programs. IDEs typically include features such as code editors, compilers, debuggers, and project management tools in a single integrated package. The purpose of an IDE is to streamline the software development process, making it easier for programmers to write, test, and debug their code. IDEs are primarily used by programmers and developers to write and manage code efficiently. They provide features like code suggestion, syntax highlighting, and debugging tools, which help in writing code more quickly and accurately. IDEs are popular among programmers working with different programming languages as they offer a centralized and efficient development environment.