103 Final
3
The Software Revolution
Learning Objectives
After reading this chapter, you should be able to complete the following:
• Define a programming language and summarize the five generations of computer languages.
• Describe how to write a simple program in several different computer languages.
• Define and describe different operating systems.
• Explain utility, driver, and an application.
• Evaluate the importance of open source.
Wael Hamdan/age fotostock/SuperStock
bow80854_03_c03.indd 53 7/26/13 12:46 PM
CHAPTER 3Pre-Test
Introduction
In the last chapter, we explored the history and current state of computer hardware. This included the physical devices that make a computer work. But a computer is much more than the technology. Another equally essential component is the software. This includes the instructions, code, or programs that direct a computer to perform use- ful tasks at your command. In this chapter, we will explore various software applica- tions, including operating systems, types of software, and other specific examples. We will also examine the language of software, which includes programming languages such as BASIC and C++. By the end of the chapter, you will have a good understanding of the importance of software, how a programmer communicates with the computer, what a computer program actually looks like, and the way the computer carries out the instruc- tions. This knowledge will better familiarize you with the software revolution and how it has transformed and continues to transform the computer industry.
Pre-Test
1. HTML is a language protocol that enables Web browsers to share and display Web pages. It is an acronym for
a. Hypertext Mark-up Language. b. Hyper-thread Machine Language. c. Hypertext Mach Language. d. Hyper-thread Microsoft® Language.
2. If you were a programmer, which of the following logical tools would you NOT need?
a. if-then b. loop c. branch d. bugging
3. Who created Linux®? a. Torvalds b. Gates c. Jobs d. Wozniak
4. Which of the following is NOT a utility program? a. Wallpaper b. Calculator c. Notepad d. Paint
5. PIPA is an acronym for what? a. Preserve IP Act b. Protect IP Act c. Promote IP Act d. Privatize IP Act
bow80854_03_c03.indd 54 7/26/13 12:46 PM
CHAPTER 3Section 3.1 What Is a Programming Language?
Answers 1. a. Hypertext Mark-up Language. The answer can be found in Section 3.1. 2. d. bugging. The answer can be found in Section 3.2. 3. a. Torvalds. The answer can be found in Section 3.3. 4. a. Wallpaper. The answer can be found in Section 3.4. 5. b. Protect IP Act. The answer can be found in Section 3.5.
3.1 What Is a Programming Language?
While computer hardware has continued to evolve and improve over the last several decades, an equally important story is the development of software. Consider the following statistic. In 1981, the software industry had $140 mil- lion in sales. Three years later, sales had increased to $1.6 billion (Campbell-Kelly & Aspray, 1996, p. 260). Today, the sales of video game software and hardware alone were nearly $25 billion in 2011 (Entertainment Software Association, 2012). Computing languages—or ways that humans can tell a computer what to do—make this all possible. Since the middle of the 20th century, there have been five key generations of program- ming languages, as shown in Figure 3.1. Exploring these developments will enable you to better understand the present state of the software industry.
Figure 3.1: Progression of programming language
1951–1959: First Generation
Present1951
1959–1965: Second Generation
1971–1989: Fourth Generation
1965–1971: Third Generation
1990–Present: Fifth Generation
Machine Language
The Era of the Operating System
Object-Oriented Languages (Java)
The First High- Level Languages (Fortran, COBOL)
Structured Programming (Pascal, BASIC, C, C++)
The five generations of programming languages have spanned from 1951 to the present.
The First Generation—Machine Language First Generation software was developed between 1951 and 1959, and was written in a code known as machine language (Dale & Lewis, 2006, pp. 18–23). We have already described the binary data structure of a computer. This is also called base-2 (zeros and ones) as compared with our own counting system of base-10 (numbers 0 through 9). Machine language is a sequence of zeros and ones that symbolize both instructions and data. For example, the code for an addition function might be 100101 (different processors used different coding schemes). To tell a computer to add the numbers 1 and 3, a program- mer would enter 100101 000001 000011. Imagine how complex a complicated machine coded program would look. Programmers quickly realized they needed a better way to
bow80854_03_c03.indd 55 7/26/13 12:46 PM
CHAPTER 3Section 3.1 What Is a Programming Language?
write programs that would tell the computer what to do. The first advance was the devel- opment of assembly language, which used mnemonic codes (three letters that had some relation to the operation). For example, ADD was an addition function, while SUB was a subtraction function) to replace all the zeros and ones (Dale, Weems, & Dale, 1998, p. 7).
The Second Generation—The First High-Level Languages Between 1959 and 1965 came the Second Generation. Assembly language was considered a low-level language in that it did not resemble the normal way we speak or write. Two of the first high-level computer languages to be developed were Fortran and COBOL. For- tran was a programming language designed for scientists, and its strength was in numeri- cal calculation. COBOL (an acronym for Common Business Oriented Language) was used for business applications. We will learn more about a fundamental flaw in COBOL when we discuss Y2K in a later chapter. This flaw threatened to bring the world to a standstill on New Year’s Eve 1999.
The source program is the code a programmer writes in a high-level language. When finished, the programmer sends it to a compiler that transforms it into the zeros and ones of the machine language, and then it is called the object program. In other words, the process moves from source program to compiler to object program. You can think of the language hierarchy in these terms: human thought (in your mind), natural language (speech and writing), high-level language (Fortran, COBOL), low-level language (Assem- bler), and machine code (binary).
In the midst of these developments, programmers began to specialize in two different directions. Systems programmers concentrated on developing compilers and other tools to convert high-level languages into machine code. Applications programmers spent all their time developing applications for use on a computer. They did not necessarily con- cern themselves with how the compiler translated this work into the binary machine code.
The Third Generation—The Era of the Operating System Third Generation software emerged between 1965 and 1971. This became the era of the operating system. Programmers soon realized that the computer was able to execute codes and instructions much faster than they could develop new programs. There was significant idle time during which the computer just sat there doing nothing. Programmers decided to capitalize on this by developing an operating environment in which the computer could always be performing some type of useful function while it awaited the programmer’s next command. Thus, the operating system was born. One example of this is Windows®, and we will discuss the concept of operating systems in detail later in this chapter.
But for now, consider the following types of software and languages that were being written for the computer: machine language, assembly language, high-level language, systems software, operating systems, and application software. Let’s look at how all of these interacted with each other. For example, word processing software (the application) worked within the computer environment (operating system) and was written in a high- level language like COBOL (the source code) and then compiled down into assembly and machine languages (the object code). These different types of codes, and their interactions,
bow80854_03_c03.indd 56 7/26/13 12:46 PM
CHAPTER 3Section 3.1 What Is a Programming Language?
are entirely invisible to users who see only a screen on which they can type and edit their words. The software operates in the background, but an extensive team of programmers with diverse skill levels is required to make it all work as simply as possible for the user.
The Fourth Generation—Structured Programming Fourth Generation software arose between 1971 and 1989, when programmers became tired of some of the limited functionality of Fortran and COBOL. As a result, they developed a new technique called structured programming, which involved writing blocks of code, called subroutines, to handle specific tasks, while the main program simply accessed them when needed. This is also called the top-down model of programming. Examples of new languages that took advantage of structured programming were Pascal, BASIC (Beginners All-purpose Symbolic Instruction Code), C, and C++. In the early 1980s, Bell Laboratories developed C++ as an extension of the original C. If you were developing an operating sys- tem, you would typically select C or C++ as your language (Deitel & Deitel, 2008).
The Fifth Generation—Object-Oriented Languages Today, we are in the midst of the Fifth Generation of computing languages, which began in 1990 and extends to the present. These include object-oriented languages and also pro- gramming designed for the World Wide Web. Programmers use object-oriented languages to create gigantic programs like those developed by Microsoft®. Their strength is handling objects, such as graphics or an interface. An example of this is the Java computing language. One of its powerful features are small applications, called applets, that perform one specific task. While we will discuss the World Wide Web in later sections, for now, let’s simply place it within our timeline of computer languages. In 1990, Tim Berners-Lee developed HTML (Hypertext Markup Language), which is the protocol that enables Web browsers, such as Netscape Nav- igator® at the time, or Internet Explorer™, Firefox®, Chrome™, or Safari® to share and display Web pages. It does this through a language that defines Web-based structures such as titles, headings, paragraphs, hyperlinks, and images. HTML and faster connections to the Internet allowed the development of Web pages that displayed text, graphics, sound, and eventually video in such a way that it did not matter what type of computer was accessing them. The Web pages displayed equally well on a Mac® or a PC. Five years after the development of HTML, James Gos- ling at Sun Microsystems developed the Java programming language.
Programming languages such as HTML can seem like a foreign language, but programmers must be fluent in one or several programming languages. Does learning a programming language appeal to you? Why or why not?
iStockphoto/Thinkstock
bow80854_03_c03.indd 57 7/26/13 12:46 PM
CHAPTER 3Section 3.2 The Basics of Programming
Today, Java is one of the primary languages of the Internet (as well as Flash®, Silverlight, and HTML 5). If you met a Web programmer in any part of the world, you might not speak his or her native language, but if you knew one of these languages you would be able to easily discuss programming together. Java is based on C and C++ computer lan- guages, and was created many years after them.
Numerous Web programming languages are in use today, including PHP (for Web serv- ers), MySQL (an open-source database server), Perl (for text-processing applications), and ASP.net (Microsoft®’s Web programming language used mostly in corporate environ- ments). JavaScript is the name of the language programmers use to make many websites as powerful as they are. This includes many of the visual effects you see on some sites, as well as the interactivity that responds to the commands and actions of the user.
It is important to understand that programming languages are changing all the time, unlike the English language, which changes only through the addition of new words. The future promises more programming language changes in part because as the hardware evolves, so, too must the languages for communicating and manipulating it. According to a January 2012 InfoWorld article, the following are some of the future programming lan- guages that might become widespread: Dart (created by Google for Web programming), Ceylon (a so-called Java killer), and Go (an attempt by Google to create a simple and pow- erful programming language much like C or C++) (McAllister, 2012).
Now that you have an understanding of when some of the most important computing languages were developed, in the next section, we will take a closer look at what some of this code looks like.
Questions to Consider 1. Why are programming languages important? 2. What are the five generations of computer software? 3. What does a compiler do? 4. What is the difference between machine language and assembly language? 5. What are some examples of high-level computing languages? 6. What was the advantage of structured programming? 7. What are some examples of structured programming languages? 8. What are examples of Fifth Generation computing languages?
3.2 The Basics of Programming
Who are these programmers that have to master various types of arcane pro-gramming languages? These people are sometimes called computer scientists, and they go to college to study multiple programming languages as well as engineering. This training gives them an understanding of both computer hardware and software. Computer science focuses on the development, analysis, and evaluation of algo- rithms. An algorithm consists of rules for finding a solution to a problem in a defined number of steps. Think of it like a complete plan of action to achieve a specific goal. Here is an example of an algorithm you might construct to get to work:
bow80854_03_c03.indd 58 7/26/13 12:46 PM
CHAPTER 3Section 3.2 The Basics of Programming
Step 1: Get in car. Step 2: Start car. Step 3: Check to see if you have gas. If you have gas, go to Step 5. If you do not
have gas, go to Step 4. Step 4: Get gas. Step 5: Continue drive to
work.
In a real algorithm, Step 3 is con- sidered a conditional statement and appears in a triangle box to designate that a decision needs to be made. It is conditional because depending on the answer, the logic goes in a differ- ent direction.
Computer scientists are involved in many different activities that include artificial intelligence, networking, human–computer interaction, data- bases, Web and multimedia design, management information systems, computer security, software engi- neering, and computational science. It is an exciting and diverse field (Zelle, 2004, pp. 4–5).
In addition to technical abilities like programming, multimedia design, computer security, and software development, computer science careers involve a variety of other skills from management to mathematical computation.
Hemera/Thinkstock
Interviews from the Field: Senior Software Developer What are your primary responsibilities?
I design and implement backend services for our digital content delivery system.
What are the most important skills needed for your job?
Understanding the business problem and translating this knowledge into technical solutions. Designing a system that is robust and scalable, while being maintainable.
What do you like best about your job?
I enjoy interacting with the subject matter experts and seeing their visions realized. I also like see- ing my solution in use by the end users.
What got you interested in entering this field?
Solving real, day-to-day human problems with computer systems.
What is your educational background?
I majored in Computer Science, which equipped me with analytical thinking and system design skills.
Can you give an example of a project you are working on now?
I provide a common authentication/authorization subsystem for multiple different applications.
bow80854_03_c03.indd 59 7/26/13 12:46 PM
CHAPTER 3Section 3.2 The Basics of Programming
Step One in Programming How do programmers begin their work? The first step is to determine a problem they want a computer to solve. The second step is to work through the algorithm. The third step is to design the flow chart or the general logical procedure that the program will fol- low. This makes it appear as if intelligent decisions are being made. The final step is to actually write the program on the computer, try it out, and see if it works. If it does not work, then the programmer will begin looking for errors or bugs in the program.
The story of how the term bugs originated is an interesting one. It dates back to Admiral Grace Hopper, who was a programmer for the Mark II computer during the 1940s. Her computer kept failing, and she could not figure out the reason until she discovered an actual moth near a computer relay. She removed the moth, taped it on the wall, and labeled it with a note: “software bug.” The term has stuck, and a bug today in computer terminol- ogy is an error in the software program (Patton, 2002, p.6). This error could be something as simple as a typo—for example, entering the word “ptint” instead of “print.” Or it could be a more complex problem involving faulty logic, in which case a more detailed debug- ging process that removes the errors is required.
BASIC The classic way to demonstrate differences between various programming languages is what is known as the “Hello World!” program. This short and simple program merely instructs a computer to display “Hello World!” on the monitor. The first example is in the BASIC programming language. Remember, BASIC is an acronym for Beginners All- purpose Symbolic Instruction Code. Elements of this language are still used today with a derivation called Visual Basic. (The newer language called Visual Basic was first devel- oped in 1991 to help programmers develop functions and applications for graphical sys- tems) (Patrick, 2006). The numbers on the left are line numbers for each of the instructions. Only one instruction goes on each line. Each line can be labeled with any whole number, but the numbers typically increase by 10s. Here is the program:
10 Print “Hello World!” 20 End
When you run or execute the above program, the computer displays “Hello World!” on the screen. As you can see, “BASIC” really can be quite “basic.”
Looping in BASIC Now, let’s explore a more complex program written in BASIC. Follow along in this logical process, and you will begin to understand some of the power of computer programming. Let’s say you want the computer to ask someone their name, and have them tell the com- puter to count to a certain number. This requires a user input and also a looping function. The program would look like this:
10 PRINT “Hello. What is your name?” 20 INPUT A$
bow80854_03_c03.indd 60 7/26/13 12:46 PM
CHAPTER 3Section 3.2 The Basics of Programming
30 PRINT “What number would you like me to count to?” 40 INPUT B 50 FOR X=1 to B 60 PRINT X 70 NEXT X 80 END
As a note, the dollar sign character in line 20, $, means that the input will be a string, mean- ing a “string of text.” This is the person’s name.
In contrast, look at the input command in line 40. This just has the variable B, which means the computer should expect the user to enter a number, and not a string of charac- ters like a person’s name.
When you execute the above program, the computer asks for your name and waits until you type it in and press the Enter key. The computer remembers this as the variable A$ (called a string of characters). Then, the computer asks for a number to count to, and again waits until you type in a number and press Enter. The computer remembers this as an integer named B. Then, in lines 50 through 70, the computer initiates a programming loop (lines of programming code that are repeated over and over with different variables). Beginning with the number 1, it travels through the loop B times, which is the number you typed in for the computer to count to. The number X keeps track of where the loop is, and then prints that out. The loop ends when it reaches the number B and then moves on to instruction 80, which tells the computer to end the program. So, if your name happened to be Jane and you wanted the computer to count to 3, the computer would execute the program in this sequence, line by line: 10, 20, 30, 40, 50, 60, 70, 50, 60, 70, 50, 60, 70, 80. This order of instructions executed by the computer is its logic trace. The screen output would appear as follows:
Hello. What is your name? Jane What number would you like me to count to? 3 1 2 3
This is a very simplistic program, but it illustrates some important concepts such as input, output, computer loops, and the sequential nature in which the computer executes a pro- gram. In the simplest applications, a computer does one thing at a time, completing each command before moving on to the next one. Although the above example of a computer program was just eight lines long (and referred to as the computer code), more complex programs can number into the hundreds of thousands of lines, with teams of program- mers assigned to create different sections or subroutines.
Logic and Branching in BASIC Let’s move to a more advanced example—one that will illustrate the importance of com- puter logic. This gives the computer the appearance of intelligence. In this example, you
bow80854_03_c03.indd 61 7/26/13 12:46 PM
CHAPTER 3Section 3.2 The Basics of Programming
will also see a program branch, meaning that, based on the results of a decision (called an if–then statement), the computer jumps to a line number that is not sequential. Here is our task. Consider that you want the computer to ask a user what university she attends. If she says that she goes to School University, the computer will congratulate her. If she types in the name of another university, then the computer will invite her to visit the School University website. How does the computer know how to do this? Here is the program:
10 PRINT “Hello. What university do you attend?” 20 INPUT A$ 30 IF A$=”School” THEN GOTO 100 ELSE GOTO 40 40 PRINT “You should check out www.School.edu sometime.” 50 PRINT “Thank you for talking to me.” 60 END 100 PRINT “Great! School is a wonderful place to learn!” 110 GOTO 50
Here is what the screen display would look like if you attended School. (The instruction sequence is as follows: 10, 20, 30, 100, 110, 50, 60.)
Hello. What university do you attend? School Great! School is a wonderful place to learn! Thank you for talking to me.
In the above example, the if-then statement in line 30 represents the logic. If you enter “School,” then the logic statement is true, and the program branches to line 100 and runs a short subroutine. If the user does not answer School, then the line 30 logic statement is false and does not branch. It executes the ELSE statement, passes to line 40, and tells the user to check out the School website. Then, the program displays, “Thank you for talking to me,” and ends. In this case, the instruction sequence is as follows: 10, 20, 30, 40, 50, 60. Here is what the screen display would look like if you did not enter School:
Hello. What university do you attend? University of Earth You should check out www.School.edu sometime. Thank you for talking to me.
The above program gives the appearance that the computer is intelligent and listening to the user’s response. While these are simple text-based examples, they represent funda- mental programming concepts for all software applications. We will now explore exam- ples of modern day software applications and operating systems. Although we will not delve into the extremely complex computer code for these programs, by now you should have a feel for the type of work that goes into making these programs come alive.
bow80854_03_c03.indd 62 7/29/13 2:38 PM
CHAPTER 3Section 3.2 The Basics of Programming
Technology Today: Other Uses for Computer Programming Whenever you work on a computer, you’re using some type of programming language. Fortunately, the average computer user doesn’t need to speak, understand—or even be aware of—the particular programming language they’re using at any given time in order to make a computer do what they want it to do.
Professional computer programmers have created sets of instructions—the software programs that convert the commands you enter with your keyboard or mouse into language the computer under- stands. As programming languages have become more sophisticated and easier to use (at least by professional programmers), the uses for software have expanded as well.
Intelligent Programs
Programmers are now able to write “intelligent” programs that perform a multitude of tasks. For example, manufacturers increasingly rely on computer programs that employ complex mathematical formulas known as algorithms to create production and delivery schedules that allow them to fulfill customer orders in the most cost-effective manner.
Researchers at North Carolina State University have written a similar program that allows a car to maneuver through traffic without a driver. This program sorts information captured by onboard cam- eras and directs the car to a lane of traffic. The program then detects how conditions change as the car travels in order to keep it in the correct lane (North Carolina State University, 2010).
The team that wrote this program envisions it enabling the development of new automotive safety features, such as systems that take over the steering of a car when a driver falls asleep at the wheel or suffers a medical emergency, such as a heart attack that interferes with the ability to drive. This tech- nology also could be used by the military to develop unmanned vehicles that would conduct surveil- lance and reconnaissance missions or transport materials through hostile areas.
The methods used in computer programming have the potential to bring about improvements in many other areas, including medical science. For example, a team of biologists and biomedical engineers from Boston University and The Massachusetts Institute of Technology applied the principles of com- puter programming to develop a precise method of counting cells in the human body (Keim, 2009). Although their work is still in its early stages, this team hopes to create what amounts to biomedi- cal machines that can be programmed to locate disease-carrying cells. Once these infected cells are located, the team hopes to alter their genetic patterns, thus eradicating the disease, through methods that also rely on computer programming principles. One proposed method would be to inject a com- pound that can cure the disease into another cell, and then program that cell to release the curative compound at the appropriate place and time to eliminate the threat to the damaged cell. Such a solu- tion conceivably could cure a host of life-threatening diseases.
Links for More Information
Cellular Counter Brings Computer Programming to Life http://www.wired.com/wiredscience/2009/05/cellcounters/
Computer Program Allows Car to Stay in Its Lane http://www.sciencedaily.com/releases/2010/04/100406093630.htm
bow80854_03_c03.indd 63 7/26/13 12:46 PM
CHAPTER 3Section 3.3 Systems Software—The Operating System
3.3 Systems Software—The Operating System
In this section and the next, you will learn about the three main types of systems soft-ware: operating systems, utilities, and device drivers. In general, these are the software programs that define the environment in which you will spend your time using appli- cation software such as Word or PowerPoint®. We will conclude this chapter by exploring some basic examples of application software.
What Is an Operating System? One of the most important types of systems software programs is the operating system (Godbole, 2005, pp. 1–11). This is the set of programs that is sold with a computer and designed to make it easier for you to perform useful functions with it. The operating sys- tem has no specific user or function in mind. You may want to use the computer to play games, send email, Skype™, chat, do taxes, post Instagram pictures, develop spreadsheets, update your Facebook status, or write a book. No matter what you choose to do, the oper- ating system is designed to help you access and use the software application that meets your needs. Along with providing a space in which to use these applications, another job of the operating system is security, or making sure that the information developed by one user cannot be found by another. Finally, the operating system is closely tied to the com- puter’s memory. One of its most important jobs is to allocate memory usage in a way that will make the computer operate most effectively. Related to this is the essential role the operating system plays in data storage, as well as file and folder management.
Three main types of operating systems exist today. The first is a stand-alone operating sys- tem that operates on a PC, such as Windows®. The second is a network operating system that manages multiple computers and controls how they share data and communicate with each other. The final type is an embedded operating system, which is found in a variety of applications such as home appliances, factory equipment, environmental moni- toring systems, aircraft control panels, automobile dashboards, video game consoles, and so on (Pottie & Kaiser, 2005, p. 1).
How do you start up the operating system? It is as easy as turning on the computer itself. This can be done through a cold boot, which means physically pressing the power but- ton to start your computer. You could also do a warm boot, which is the selection of a
Questions to Consider 1. If you were a computer programmer, how would you choose a computer language to write in? 2. What is the definition of computer science? 3. What types of work do computer scientists perform? 4. What is an algorithm? 5. What is a computer bug? 6. Why is the “Hello World!” program significant? 7. Why is a loop in a computer program important? 8. What is the function of a branch in a computer program?
bow80854_03_c03.indd 64 7/26/13 12:46 PM
CHAPTER 3Section 3.3 Systems Software—The Operating System
restart function in the operating system itself. A warm boot is sometimes used when you have installed new programs and the computer needs a general reset. Note that if you are having problems with Windows® due to a faulty program, or a variety of other hardware reasons, you might want to boot in Windows® Safe Mode. This is a startup that bypasses all of the programs and drivers not critical to Windows® booting.
Once the computer boots, you will see several important things. The first might be a flash screen indicating the name of the computer, such as Dell™ or Apple®, and the type of oper- ating system, such as Windows® 8 or Mac® OS X®. The arrow on the screen is your pointer, which is controlled by the mouse (on a PC), touchpad (on a laptop), or finger (with a tab- let). There are also various icons that might represent other parts of the operating system or assorted applications. The task bar, or dock, is often at the bottom of your screen, which is also the place where you can quickly see which programs are active and open.
Early Operating Systems Just like the five generations of software languages, there have also been generations of operating systems. However, the first generations of computers had no operating systems at all. For example, from 1945 to 1955, when computers were huge mechanical devices, the operating system did not exist, and the machines were very difficult to use as a result.
The second generation, from 1955 to 1965, was the age of the transistor, and again there was no electronic operating system. The computers of this era were batch machines, meaning that the programmer or user created a stack of physical cards with holes in them, and the patterns of holes in these cards told the computer what to do. The so-called “operating system” at this time was simply the manual process of loading the information from these cards into the computer’s memory.
The third generation of operating systems developed between 1965 and 1980, and was defined by the integrated circuit. As we have seen before, these were still mainframe com- puters dominated by the IBM® 360. These early operating systems were written in assembly language that allowed the user to enter commands into the computer through the keyboard rather than a punched card. The operating systems of this generation also allowed time sharing, in which multiple computer terminals could be attached to the central computer, enabling several people to send commands to the mainframe at the same time.
DOS The fourth generation of operating systems is where we are today. From 1980 to the pres- ent, computers have incorporated Large Scale Integration (LSI) circuits in which thou- sands of transistors can be placed on a single chip. This development led to the birth of desktop computers. The first operating system for personal computers was the Control Program for Microcomputers, or CP/M, during the 1970s. However, a more significant development was the emergence of DOS, which stands for Disk Operating System. This acronym is important because it relates to our earlier point that operating systems play a central role in managing data and files. The “disks” in this acronym were the physical locations of data storage. “Files” are an individual computer document such as a word processing file, spreadsheet file, or image file.
bow80854_03_c03.indd 65 7/26/13 12:46 PM
CHAPTER 3Section 3.3 Systems Software—The Operating System
programs can be easily displayed at one time. If you are working in one program and want that program to fill your monitor screen, you can maximize it. This button is found in the upper right-hand corner of the window, just to the left of the red X. The red X closes the program, and the maximize button to its left makes the program window fill the entire screen. The button to the left of that (which looks like a minus sign) is the minimize func- tion, which closes the window without terminating the program. The program is still run- ning, and it can be found on the bar, known as the taskbar, on the very bottom of the screen. To resize the window, click the restore down button, which is also to the left of the X. Hover the cursor over the edges of the window, and it changes into a left–right arrow. Now, you can click and drag the edges of the window horizontally. You can do the same vertically as well.
With the release of Windows® 3.1, some of the early visions of GUI became a reality. Then, in 1995, came Windows® 95, which promoted a new feature called the start button. Advertising Windows® 95 with the Rolling Stones’ “Start Me Up” as its theme song, Windows® promised—and for the most part delivered—a higher level of performance and user productivity. To launch a program in Windows® 95, users clicked “start” and then scrolled through the various program menus. They could also create an icon for it on their monitor desktop. As one Windows® guide stated, “One of the ideas behind the design of Windows and of most Windows applications is that you should treat the screen as you would a desk.” On a real desk, people laid papers from different projects on top of each other. Finally, Windows® had provided a way to simulate this type of organization (or in some cases disorga- nization) on the computer (McBride, 1996, p. 10). This same principle guided later releases of Win- dows®, including Windows® 98, Windows® ME, Windows® 2000, Windows® XP, Windows® Vista, Windows® 7, and now Windows® 8.
In the fall of 2012, Microsoft® released their lat- est operating system, called Windows® 8. Code-
named Metro, it focuses on tablets and laptops, as well as the standard desktop PC. For the mobile devices (and even for the desktop), it has a well-integrated touch system that is not currently featured in Windows® 7.
Microsoft®’s Windows® 95 enabled users to navigate program menus from the Start Button, and allowed desktop organization via shortcuts. How would these features improve productivity?
AP Photo/Robert Sorbo
Originally developed by Seattle Computer for the Intel® 8086, DOS opened up new ways for users to interact with their computers. Bill Gates, Microsoft® founder, who was also operating in Seattle, saw the potential of DOS and acquired the company. In 1981, it became known as MS-DOS for an IBM® computer, and PC-DOS for a clone. The final ver- sion of MS-DOS was released in 1994 (Version 6.22).
As mentioned earlier, when DOS users turned on their machines, they saw the command prompt or C prompt, which was C:\ followed by a blinking cursor. (In other words, DOS did not have a Graphical User Interface (GUI) that computer users are accustomed to today.) From there, they typed in commands they wanted the computer to perform. To start a program, they would type “run,” followed by the program name. To view a list of all the files in a given folder, users would type the “dir” command. If users had several programs they liked to access, they might write their own program using a simplistic DOS batch file. These commands were often confusing for the novice to create. They did allow users to personalize their computers by, for example, having the computer display a per- sonal greeting instead of the impersonal C prompt when the machine booted up.
DOS could be frustrating to users who were trying to perform a task as simple as copying a file from one place to another. To copy a document from the computer to a floppy disk, you had to type a command, such as: COPY C:\example.doc A:\example.doc. This meant that you were copying a file from “C,” which was the name for the hard drive, to “A,” which was the name for the floppy disk. The C hard drive in this example was the source, and the A floppy drive was the destination. Even today, when copying files it is important to think about the source and destination. These letters continue to be important, as they designate the hard drive, the USB drives, or the DVD drives that are connected to the computer.
Windows® The next stage of operating systems had a Graphical User Interface (GUI). Microsoft® again took the lead here, although the company borrowed heavily from the Macintosh® and also the pioneering work done at Xerox® PARC. Beginning in the 1980s, Microsoft® called its new operating system Windows®. It has had a variety of releases that continue to this day. Versions 1.0, 2.0, and 3.0 were not as commercially successful as later versions. The idea behind them was that instead of running just one program at a time, as with DOS, the user could now have a variety of “windows” open on the screen at any given time. Each window could run a different program, and data could be shared between them. For example, if you were working on a word processing document and were also doing calculations in a spreadsheet, in DOS you would have to work on one document, save the changes, close the program, and then open the other. With Windows®, both pro- grams could remain active, allowing you to copy data from the spreadsheet and paste it into the document that was open in the word processor. This capacity for multitasking and sharing data between programs was a tremendous advance in productivity. The prob- lem, however, was that these early versions of Windows® were quite slow.
How do you control window sizes? Computer monitors are limited in size (even though they are getting larger and larger each day for the desktop), so only a certain number of
bow80854_03_c03.indd 66 7/26/13 12:46 PM
CHAPTER 3Section 3.3 Systems Software—The Operating System
programs can be easily displayed at one time. If you are working in one program and want that program to fill your monitor screen, you can maximize it. This button is found in the upper right-hand corner of the window, just to the left of the red X. The red X closes the program, and the maximize button to its left makes the program window fill the entire screen. The button to the left of that (which looks like a minus sign) is the minimize func- tion, which closes the window without terminating the program. The program is still run- ning, and it can be found on the bar, known as the taskbar, on the very bottom of the screen. To resize the window, click the restore down button, which is also to the left of the X. Hover the cursor over the edges of the window, and it changes into a left–right arrow. Now, you can click and drag the edges of the window horizontally. You can do the same vertically as well.
With the release of Windows® 3.1, some of the early visions of GUI became a reality. Then, in 1995, came Windows® 95, which promoted a new feature called the start button. Advertising Windows® 95 with the Rolling Stones’ “Start Me Up” as its theme song, Windows® promised—and for the most part delivered—a higher level of performance and user productivity. To launch a program in Windows® 95, users clicked “start” and then scrolled through the various program menus. They could also create an icon for it on their monitor desktop. As one Windows® guide stated, “One of the ideas behind the design of Windows and of most Windows applications is that you should treat the screen as you would a desk.” On a real desk, people laid papers from different projects on top of each other. Finally, Windows® had provided a way to simulate this type of organization (or in some cases disorga- nization) on the computer (McBride, 1996, p. 10). This same principle guided later releases of Win- dows®, including Windows® 98, Windows® ME, Windows® 2000, Windows® XP, Windows® Vista, Windows® 7, and now Windows® 8.
In the fall of 2012, Microsoft® released their lat- est operating system, called Windows® 8. Code-
named Metro, it focuses on tablets and laptops, as well as the standard desktop PC. For the mobile devices (and even for the desktop), it has a well-integrated touch system that is not currently featured in Windows® 7.
Microsoft®’s Windows® 95 enabled users to navigate program menus from the Start Button, and allowed desktop organization via shortcuts. How would these features improve productivity?
AP Photo/Robert Sorbo
A Look Further: Windows® 8 To learn more about Windows® 8, visit:
http://windows.microsoft.com/en-us/windows-8/meet
bow80854_03_c03.indd 67 7/26/13 12:46 PM
CHAPTER 3Section 3.3 Systems Software—The Operating System
Navigating Windows® What are the common features of a Windows® operating system? The start button is still located in the lower left-hand corner (although it typically no longer says “start”) with the four-panel red, green, blue, and yellow Windows® logo. The Windows® logo used to be four interlocking jigsaw pieces, signifying how each of its main software programs could share data and work together. When you click this button, you will see the quick launch menu of programs most recently accessed on the computer. On the right side of the start menu are links to documents, pictures, music, games, and help.
Windows® has several standard icons that appear on the monitor, including the recycle bin, where all the deleted files are sent. Once there, they are not actually deleted yet. If you want to retrieve these items from the bin, just double-click it, and the file(s) can be restored back to the desktop. If you really want to delete files, then periodically right-click on the recycle bin and empty it.
My Computer is another important icon. Double-clicking this icon will open up a preview of the various hard drives and external drives located on the computer. Usually, the main hard drive is called the C drive, a convention that goes back to the old C prompt in DOS systems. Under the drive letter is a bar that indicates how much total storage has been used. Other icons here will include any DVD drives that are connected to the computer and also perhaps a recovery drive. If you have a portable flash drive and plug it into a USB port, this is the place where you will access files on it. The operating system will assign it a letter name when you plug in the USB device.
A Look Further: Navigating Windows® 8 Navigating to these features is the same for previous Windows® operating systems. However, the loca- tion of these common features differs in Windows® 8. You can learn more about how to use Windows® 8 through the Microsoft® website:
http://windows.microsoft.com/en-US/windows-8/settings-search-shutdown-basics#1TC=t1
Mac® OS and Linux® Up to this point, we have concentrated on the PC side of the operating system, but the Macintosh® has also had significant developments. The first operating system was the “Classic” Mac® OS, which was in use from 1984 to 2001. Unlike IBM® PCs of that era, the Mac® had no command line (C prompt) at all. Instead, it had an entirely graphical interface. In 2001, a major operating system advance came with the Mac® OS X®. Today, this is known as Mac® OS X® Snow Mountain Lion, which is a 64-bit operating system designed to be easier to use and more stable than Windows®.
Linux® is a third significant operating system. Linus Torvalds developed Linux® in 1991 at the University of Helsinki. This is a version of the UNIX operation system first devel- oped by AT&T programmers at Bell Labs in 1969 and was used primarily to run large, networked computers. One of the important features of Linux® is that it is open source. This means that Torvalds put all of his code online, let people download it for free, and
bow80854_03_c03.indd 68 7/26/13 12:46 PM
CHAPTER 3Section 3.4 Utilities, Drivers, and Applications
then invited users to suggest and implement programming improvements. Though the number of users that install it is growing, Windows® and OS X® still dominate the market because Linux® is more complicated, and a variety of programs are not written for it. Pro- grams that are not open source, like Windows®, are closed to user access. Only Microsoft® can update the code. This open-source approach to software development has been dupli- cated with applications like the Firefox® Web browser.
A Look Further: Navigating Mac® OS Go to the Apple® website to learn more about using Mac® OS.
http://www.apple.com/findouthow/mac/
Questions to Consider 1. When you use a computer, when do you interact with the operating system? 2. What is the importance of an operating system? 3. What does DOS stand for? 4. What is a computer window? 5. What are some of the basic features of the Windows® operating system? 6. What is the purpose of the My Computer icon in the Windows® operating system? 7. What are some examples of Mac® operating systems?
3.4 Utilities, Drivers, and Applications
Now that we’ve explored operating systems, it’s time to look at other types of software—utilities, drivers, and applications. Most likely, you have the greatest familiarity with applications, as these are the main programs you use to actu- ally do things with a computer. This might include Word for word processing, or even the latest game for enjoyment. A second type of systems software is called drivers that are small programs that enable your software to communicate with the specific hardware you own (such as word processing and your printer). Finally, there are the utilities, which are embedded into every computer and perform vital maintenance and operative func- tions. Taken together, these applications and systems software (utilities, drivers, and the operating systems we covered in the previous section) play a central role in defining and shaping your overall computing experience.
Utilities If you think about the utilities in your house, they are the basic components that make it work, such as plumbing, heating, water, electricity, and gas. In a similar way, computer utilities are the software programs that make a computer work. The way to find many of these programs is to click the start button in a Windows® system. This is where you can find a list of important peripherals attached to the computer, and also tools to manage the sys- tem. In the “Classic View” of the Control Panel (which is the location where users can con- trol a number of internal computer utilities) are icons to add hardware, to add and remove
bow80854_03_c03.indd 69 7/26/13 12:46 PM
CHAPTER 3Section 3.4 Utilities, Drivers, and Applications
programs, security, and a firewall, and to select other performance options. Another way to access utilities is to click the start button and then double-click the Accessories folder. There, you will see another System Tools subfolder. This includes important utilities such as backup, disk cleanup, disk defragmenter, system information, and system restore.
At this point, it is also important to mention that the file structure of all personal com- puters is hierarchical. To understand what hierarchical means, think of the file structure as a family tree that has multiple levels. To begin with, a file is an individual document. It could be a word processing file, a spreadsheet file, or a presentation file, for example. When you work with computers for a while, you will start to accumulate lots of files. The computer equivalent of a real-life filing cabinet is used to maintain order. When you have several types of files associated with a particular job or activity, you will want to create a folder. For example, you might create a folder on your hard drive called Introduction to Digital Literacy. In this folder, you would place all of the various files that you created and saved for this class. As time goes by, you will find that you have created many fold- ers. These can also be organized through the creation of subfolders within folders. As you progress through your education, you might create one main folder under your school’s name, and then inside that folder would be other subfolders for each class you take. In those folders could be still more folders, or the individual files that you created. This is the hierarchical file structure. It is very important to design an intuitive file management system for yourself. This will keep you organized and efficient. All of these documents should be in one master folder called My Documents, just as all of your images should be stored in My Pictures, and music in My Music.
While you are not required to put your word processing or spreadsheet documents (or any other kind of document) in the My Documents folder, it is simply good organizational practice.
Despite our best efforts to stay organized, sometimes we all misplace a document that we have created. To assist you in such situations, a helpful searching function is built into the operating system. Select the start button again, and a dialog box will appear that says “start search.” Begin typing the keywords of the document as best as you can remember them, and various files that match these criteria will appear in the box above the dialog box.
Additional applications are bundled into the operating system. Clicking on Start, All Pro- grams, and Accessories will help you find them. These include a calculator, a notepad, a Paint program, and a variety of games, such as Solitaire. You will also find some impor- tant system utilities, such as a disk defragmenter, that you should periodically run to clean up your hard drive and help it operate more efficiently. A disk defragmenter (or defrag) is an important utility that should be run at least once a month. This is necessary because when you delete a file or folder from your computer, you are essentially letting the computer know it can reuse this space as needed, but if you do a lot of deleting, your hard drive will have many small holes and become “fragmented.” Disk fragmentation can slow down access time to your data. Running the disk defragmenter eliminates this problem by cleaning up all the holes. Access this utility by selecting Start, All Programs, Accessories, System Tools, and then Disk Defragmenter.
Although they are not technically utility programs, there are fun ways to personalize the computer within the operating system. You can change the wallpaper or the background
bow80854_03_c03.indd 70 7/26/13 12:46 PM
CHAPTER 3Section 3.4 Utilities, Drivers, and Applications
image on the screen by right-clicking on the desktop in Windows® and selecting Personal- ize. To modify the wallpaper, click on Desktop Background and then use the Browse but- ton to find the image you want to use as wallpaper. Double-click on the image to make it appear in the background behind all of your icons.
Choosing a screen saver, which appears after a certain period of user inactivity on the computer, is another way to personalize the computer. Many years ago, with the older monitors, if one image stayed on the screen for a long period of time, a shadow of the image would actu- ally become burned into the cath- ode ray tube (CRT) and remain even after the monitor was turned off. To prevent this, programmers began including a screen saver in the oper- ating system. This meant that after a certain amount of time, an animation would take over the screen, such as the famous flying toaster, the Win- dows® logo, or flying shapes and colors. These animations prevented the screen from burning. When the user wanted to get back to work, any motion of the mouse or press of the keyboard cleared the screen saver and returned the desktop to its pre- vious state. Although monitors no longer burn, today, the screen saver remains as customizable nostalgia.
One other important utility is System Restore. Sometimes, computers have software prob- lems and have been known to have critical errors (in Windows® this is often called the Blue Screen of Death because your monitor screen will turn blue). To recover from such errors, Windows® will seek to return to the latest restore point when things were work- ing well. System Restore typically creates a new restore point every day, and also updates whenever you add a new program or device. So, if you get a crash, select the restore point that you want to return to by selecting Start, All Programs, Accessories, System Tools, and then System Restore.
The final groups of important utilities are called “Hardware and Sound,” and are found in the Control Panel. The hardware side of this enables you to add peripherals to your com- puter. For example, if you purchase a new printer, you would select Start, Control Panel, Hardware and Sound, and then Add a Printer. You can also adjust your mouse settings, power options for battery usage (if you have a laptop), scanners, cameras, game control- lers, and other input devices. The second important feature here is your sound control. In this option, you can adjust your system volume, change system sounds, and manage your audio devices (such as speakers).
Screen savers, originally necessary to protect the monitor’s computer screen, quickly became a fun way to personalize a computer. Today, users can also add background images to cell phones and tablets.
iStockphoto/Thinkstock
bow80854_03_c03.indd 71 7/26/13 12:46 PM
CHAPTER 3Section 3.4 Utilities, Drivers, and Applications
Drivers Another type of systems software is called device drivers. What are these? They are a piece of software—a relatively small computer program—that lets more advanced appli- cations share data with a piece of hardware. One example is a device driver for Microsoft® Word (the advanced application) to send data to a printer (the hardware).
In the control panel, there is another folder known as the device manager. This helps you manage the various drivers in your computer. Device drivers are an important part of the systems software. Each device driver is written for specific hardware devices, and is unique to that device. For example, if you purchase a new printer, it will come with a DVD that has device drivers on it. These programs need to be installed so the printer will be able to communicate with your PC. Sometimes, hardware devices are called plug and play. This means that once you plug in the peripheral, often through a USB port, the computer will recognize it and begin communicating without the need to install a specific driver. When you no longer need a device, you will want to uninstall it. This is done by going to Control Panel, Programs, and then Uninstall a Program. When you select these options on a PC, you will get a list of all the programs on your computer. Highlight what you no longer want from the list, and then select Uninstall.
Applications Finally, we have arrived at the real reason we have computers in the first place—applica- tions! There are thousands upon thousands of computer applications, which are programs that you purchase, install, and run on your computer. It would be impossible to cover them all here, but let’s explore some general features of applications. These applications can be divided into three main categories: business suites, personal suites, and special- ized software. Microsoft® Office is an example of a business suite. In general, a software suite is a group of software programs that are bundled together. A business suite includes software programs designed to improve business productivity. When you purchase it, you will receive several sophisticated software programs such as Word (a word processor that lets you create documents, letters, brochures, flyers, and so on), PowerPoint® (presentation software that lets you create animated slide shows), Excel® (a spreadsheet program that lets you work with numbers in powerful ways), Access® (a database that lets you manage lists of information and related data), and Outlook® (for sending, receiving, and creating email).
A personal suite usually includes less sophisticated programs than the ones previously mentioned, although they perform similar functions. Microsoft® Works, a personal suite, is less expensive than the Microsoft® Office business suite, but does not provide as many options. While it includes a word processor, a spreadsheet, a database, and a calendar, these do not have the same powerful functions as, for example, Word or Excel®. But the documents they produce are compatible with the complete programs. One of the things that it lacks is presentation software like PowerPoint®.
“Specialized software” is the largest category of applications. These programs might include Internet browsers, business software, and imaging software that allow you to create and manipulate pictures. Although we will discuss the Internet in detail in a later chapter, mentioned here are several important browsing applications you can use. A Web browser enables you to search and view the Internet. These applications include Internet Explorer™ (Microsoft®), Firefox® (Mozilla®), Safari® (Apple®), and Google Chrome™.
bow80854_03_c03.indd 72 7/26/13 12:46 PM
CHAPTER 3Section 3.4 Utilities, Drivers, and Applications
You can purchase specialized business applications to help you keep track of your per- sonal finances or even manage an entire company. Quicken® and QuickBooks® are appli- cations best used for personal finance, while much larger and more expensive accounting packages like MAS 90 and MAS 200 can provide all the accounting and inventory soft- ware needed by a large organization.
One important aspect of running applications on your computer is that you will often have to update them. Software programs are rarely perfect. When users find bugs, they are reported to the software manufacturer, who issues patches or updates to make the code run better. The version number of the software you are running can indicate whether you have an old copy or the latest version. Often, the software itself will prompt you and ask if you want to update it. The Windows® operating system has automatic sys- tem updates to improve performance and security. Another important aspect of running applications is that you will often have many open at the same time. A handy little trick to navigate between them is pressing ALT-Tab on the keyboard. This will bring up a small window of all running applications and you can select which one you want to bring to the forefront of your monitor.
Collaborative applications are also an important and growing area of software develop- ment. One of the best examples of this is Google’s Home & Office programs. These include the following free online applications that are easily shared and also able to be synched to all of your devices (so if you make an appointment in Google Calendar on your smart- phone, you will also see it when you look at your desktop calendar):
• Docs: Create and share your online documents, presentations and spreadsheets. http://docs.google.com/
• Calendar: Organize your schedule and share events with friends. http://www.google.com/calendar
• Hangouts: IM and call your friends through your computer. http://www.google .com/hangouts/
• Sites: Create websites and secure group wikis. http://sites.google.com/
Other applications are vital to making sure your computer is working at an optimal level. For example, virus protection applications, which require a yearly subscription, prevent your computer from becoming infected (more on this topic later). McAfee® is one well- known company that offers virus protection software. Spyware is another type of threat from which you’ll need protection. These are malicious programs, installed without your consent, that monitor your activity on the computer. This invasion of privacy is often done for marketing purposes. An example of an antispyware program is Spy Sweeper, developed by Webroot®. You can also get all-in-one computer protection like Norton™ 360, which has virus, spyware, browser, and firewall protection, as well as intrusion preven- tion and inbound and outbound email scanning.
A Look Further: Virus Protection In April 2012, PC Magazine published its annual comparison of the best antivirus tools, including free and paid versions. You can read the results here:
http://www.pcmag.com/article2/0,2817,2372364,00.asp
bow80854_03_c03.indd 73 7/26/13 12:46 PM
CHAPTER 3Section 3.4 Utilities, Drivers, and Applications
Computers are a visual medium, and a variety of specialized applications are designed to handle these functions. CAD (Computer Aided Design) is an example of this type of application. One of the best known is AutoCAD® by Autodesk®. This program can create detailed two-dimensional drawings for architects and engineers, and it also has sophisti- cated 3-D rendering capabilities to model real space and enable virtual walkthroughs of buildings before they are built (or machine parts or even the human body). For those interested in art, there are painting programs that enable you to paint without any of the
mess. Windows® comes with a Paint program for rudimentary drawing functions, and you can purchase more sophisticated programs such as Photoshop® for painting and image enhancement.
The automobile is another place where computers will gain a greater foothold in the future. As Keith Barry observed in a 2010 article in Car and Driver, “Compared with the electronic wizardry found in our homes and offices, even the most advanced cars built today seem stuck in the Stone Age” (Barry, 2010). This is changing. Many cars now are connected to the Internet and by interfacing with the GPS, provide real-time information on traffic and other nearby attrac- tions. The most sophisticated com- puter/car interaction is being worked on at Google. In attempting to create
a self-driving car, they hope to develop personal transportation that reduces accidents, and also improves fuel efficiency (as well as letting everyone in the future have their own personal chauffer).
A Look Further: Self-Driving Car You can read about the experience of one journalist riding in a Google self-driving car here: http://money.cnn.com/2012/05/17/autos/google-driverless-car/index.htm
Again, there is virtually no limit to the types of applications that can be installed on a computer. In the next few chapters, we will focus on some of the most important applica- tions you may want to use for school and work, including Word, PowerPoint®, Excel®, and searching applications—the original killer apps. In a later chapter, we will cover Internet applications such as Second Life, email, Twitter, Facebook, Wikipedia, LinkedIn®, and gaming applications.
An architect uses a CAD application to create detailed plans for a house she is designing. CAD is widely used, from engineers building fighter jets to orthopedic surgeons modeling prosthetic limbs.
Iain Masterton/age fotostock/SuperStock
bow80854_03_c03.indd 74 7/26/13 12:46 PM
CHAPTER 3Section 3.4 Utilities, Drivers, and Applications
Apps While on larger desktop computers, users perform tasks by running massive “programs” (examples here are Word and PowerPoint® for Windows® computers), on smartphones (both Apple® and Android™ systems) these programs are called “apps.” A shortened term of the word “application,” these are downloaded by the user at an “app store.” Apple® users find apps at their App Storesm. Android™ users access apps through Google Play. These apps come in a variety of genres including utilities (such as the Flashlight or a data usage moni- tor), games (such as Angry Birds™ or Words with Friends), social (Facebook and Twitter), productivity (such as word processing and spreadsheets), and entertainment (such as Pan- dora® and Netflix).
Interviews from the Field: Interview with a Product and Application Support Administrator What are your primary responsibilities?
To ensure that customers can receive technical support for proprietary applications in a timely, professional, and educational manner.
What are the most important skills needed for your job?
Interacting with customers requires a communication skill set above all else. Additionally, the ability to listen and analyze data in a methodical and logical way are very important skills to have.
What do you like best about your job?
The feeling of leaving a customer satisfied with their technical support experience is what I like most about my job.
What got you interested in entering this field?
Support administration was a natural evolution from my previous role as a Technical Support Rep- resentative for a call center. I went from helping with all technical support inquiries to specializing in very specific applications that most valued customers interact with on a daily basis.
What is your educational background and how did it prepare you for your job?
I have a Bachelor of Science in Telecommunications, and a Master of Business Administration (MBA). My Bachelor of Science gave me the technical foundation on which all my jobs have built upon, and the MBA has given me the ability to translate facets of my career into business value.
Can you give an example of a project you are working on now?
Currently, I am working on revising our knowledge systems to make technical support data clearer, more concise, and most of all, easier to access. The end result will be a streamlined knowledge base that will aid in achieving higher customer satisfaction rates with all those that use our pro- prietary applications.
bow80854_03_c03.indd 75 7/26/13 12:46 PM
CHAPTER 3Section 3.5 Open Source
3.5 Open Source
As mentioned in a previous section, Linux ® is an open-source operating system.
This is a very significant development in the history of computing that deserves to be covered in more detail. Specifically, open source means that the code for a piece
of software is freely given out to anyone who wants it. For example, if you downloaded an open-source word processing application, you would get the program as well as the source code. If you are not a programmer, then you would have very little interest in the source code. If you had these skills, however, then the code might be very important to you because it gives you the power to change the program to meet your needs. By open- ing up source code to the entire world, organizations empower their programmers, allow users to modify and improve the software, and in the end a better product often results (Weber, 2004). We will see a variety of examples of open source in this book (Linux®, Open Office, Wikipedia), but in this section, we will explore some of the general ideas behind open source, as well as its main detractors. For more information, see the Open Source Initiative: http://www.opensource.org/.
Why Is Open Source Important? Its proponents argue that open source is important because the most innovative inspira- tions for the Internet, operating systems, and the software that runs on both have come from the open-source environment. This concept would have seemed counterintuitive to business leaders as recently as a couple of decades ago, when intellectual property was a secretive and closely guarded commodity. Although there are many who maintain this point of view, there is also a growing open-source movement that counters this assumption.
To understand open source, you need to know how it is different from the proprietary model, in which software is owned and controlled by its creator. In a traditional software environment, programming instructions are hidden from the user. If you tried to access them (and hackers can break into a program and do this), you would be guilty of a copy- right violation. It is illegal to access, copy, modify, or share a piece of proprietary software that is sold for a profit. For example, if a friend wanted a copy of your Microsoft® Word application, you would be breaking the law if you let him copy it onto his computer. This is not the case with an open-source program.
Questions to Consider 1. What is the difference between a utility, a driver, and an application? 2. Why are utilities important? 3. What can be found in the System Tools subfolder? 4. Why were screen savers developed? 5. What is a device driver? 6. What is a computer application? List some examples.
bow80854_03_c03.indd 76 7/26/13 12:46 PM
CHAPTER 3Section 3.5 Open Source
The Beginnings of Open Source Up until the 1980s, all software followed the proprietary model. Lots of people were copy- ing or pirating software, but this was against the law. However, some people believed the proprietary model itself was wrong. They said that it deterred intellectual collabora- tion. They argued that software was an idea, and that preventing people from accessing that idea stifled its natural evolution and potential for growth and improvement. In an attempt to rectify this situation, in 1985, computer scientists at the Massachusetts Insti- tute of Technology (MIT) established the Free Software Foundation (FSF) and the General Public License (GPL).
Copyleft Open source does have some guidelines associated with it, and the GPL has defined what they are (Dale & Lewis, 2010, p. 236). The FSF also began using a term called copyleft, which is what happens when a user modifies a program and passes along those modifi- cations for free to a friend (notice how “copyleft” is a play on words of the term “copy- right”). The motto of open-source proponents is that “Free software is a matter of liberty, not price.” In other words, the FSF argues that we have the right to control the software we bring into our homes. They argue that this is very important because as our society becomes more reliant on computers for every aspect of our lives, we lose our freedom as a society if one or two giant organizations control our software. Peter T. Brown, a former executive director of the Free Software Foundation, said, “The free software movement is one of the most successful social movements to emerge in the past 25 years, driven by a worldwide community of ethical programmers dedicated to the cause of freedom and sharing” (http://www.fsf.org/about). Many in the business world realize this is a good way to improve their product and earn a profit. Today, some governments are coming on board with this idea, with Brazil, Thailand, Peru, and even China using the open-source model to develop software and standards.
Open-Source Opponents Not everyone agrees with the open-source philosophy. Opponents believe that copy- righted materials and closed-source code protect the programmer, ensure profitability for the organization that takes the business risks to create the product, and ultimately produce a better experience for the user. Microsoft® is leading a charge against the open- source community, and while they do not want to completely eliminate the practice, they seek instead to limit it. Those who are in this camp support something known as Digi- tal Rights Management or Digital Restrictions Management (DRM). This is the use of digital technologies to protect a variety of different types of intellectual property, which might include anything from personal letters to computer source code. These technologies prevent access to the content in a way that was not intended by the creator. For example, DRM is used within Microsoft® products so users cannot legally access its source code. When you purchase a copy of a Microsoft® product, in reality what you are doing is buy- ing a license to it with rules governed by a contract called the End User License Agree- ment (EULA). This spells out the terms and restrictions placed upon you for using the license that you purchased (Savage & Vogel, 2009, p. 255). This tension between the open- source movement and the proprietary community is ongoing today.
bow80854_03_c03.indd 77 7/26/13 12:46 PM
CHAPTER 3Section 3.5 Open Source
SOPA and PIPA Related to these issues are SOPA and PIPA, which have been in the news. Though they sound like they might be the names of twin daughters, in reality they have to do with the
open-source world. SOPA is an acro- nym for the Stop Online Piracy Act and PIPA is the Protect IP Act. These acts have attracted significant nega- tive attention from major Web enti- ties like Wikipedia. In January 2012, Wikipedia actually blacked out its site for an entire day to protest these acts. It literally went “dark” for 24 hours, and users in the United States could not access its information.
At the heart of the issue, these acts would enable the United States Department of Justice to block users from connecting to foreign Internet sites, which were accused of copy- right infringement. The Electronic Frontier Foundation, in December 2011, said, “It’s nothing short of a bill to create a U.S. censorship regime, and it’s moving fast” (Retman, 2011).
The problem was not the goal to stop copyright infringement. Though the bill’s support- ers said that they were essential to stop these “rogue” foreign websites, the opponents railed against the vague language of the proposed legislation. This imprecise language, according to SOPA and PIPA opponents, would “create devastating new tools for silenc- ing legitimate speech all around the web” (Electronic Frontier Foundation, n.d.).
How might this happen? Wikipedia relies on user-generated content. If one of these users posted a link to a blacklisted site, then the Department of Justice would have the authority to shut Wikipedia down. Though Wikipedia theoretically has the resources to prevent this from happening, it could threaten to shut down smaller sites without the funds to protect themselves.
In January 2012, Wikipedia blacked out their English language site for 24 hours in protest of the proposed SOPA and PIPA legislation. What do you think of Wikipedia’s protest?
AP Photo/Wikipedia
A Look Further: SOPA and PIPA Acts Do you think these acts will help resolve copyright issues? Why or why not? What other possible solu- tions to prevent copyright infringement can you think of?
If you want to track the progress of SOPA, visit this site: http://www.govtrack.us/congress/bills/112/hr3261
To track the progress of PIPA, visit this site: http://www.govtrack.us/congress/bills/112/s968
bow80854_03_c03.indd 78 7/26/13 12:46 PM
CHAPTER 3Summary
Crowdsourcing While the debate continues, the open-source philosophy is unquestionably growing stron- ger. This is exemplified by the increasing number of terms that are linked to the power of open source. Some have called it “mass collaboration,” while others call it “crowdsourc- ing,” where the power of the crowd drives the future of business (Howe, 2008). The idea is that sometimes the paid employee is not the best person for a job. Often, the individual who creates the best product is the one who is using it on a daily basis, and the best person to evaluate that effort is not a coworker, but friends who also use the product on a daily basis. The open-source movement is not restricted to the world of computing. It is the idea behind blogs (which we will discuss later) and the amateurs who write them for free, share their opinions, and report on the news. Crowdsourcing takes advantage of the power of a blogger’s followers to further shape and understand the news. Further discussion of the open-source philosophy can be found in books such as We the Media, which explores grassroots open-source journalism (Gillmor, 2006); The Pirate’s Dilemma, which consid- ers how open-source and youth culture are reinventing capitalism (Mason, 2008); and The Wisdom of Crowds, which champions the problem-solving potential of large groups of people (Surowiecki, 2004). Or as the title of another book suggests, We are Smarter than Me (Libert & Spector, 2008). As you progress through this book, you will see how the open- source philosophy has been extended to encompass more than the source code created by computer programmers.
Questions to Consider 1. What is open source and why is it important? 2. How is open source different from proprietary software? 3. What is the importance of the Free Software Foundation? 4. What does copyleft mean? 5. Who are the open-source opponents, and what is their argument? 6. What do the acronyms DRM, EULA, SOPA and PIPA mean? Why are they important?
Summary
In this chapter, our focus was on computer software, which is the second half of the PC revolution that we began discussing in the previous chapter. You learned that software is created through a variety of programming languages, and you should now have a feel for what some of these languages look like, as well as some of the basic ways that they can instruct the computer to perform tasks. We also learned about different types of soft- ware. Systems software focuses on making the computer function; applications software enables users to perform specialized tasks; and utilities and drivers keep your hardware working together as a single unit. Finally, this chapter introduced two different types of programming environments: open source and proprietary. The next chapter will focus more specifically on applications software.
bow80854_03_c03.indd 79 7/26/13 12:46 PM
CHAPTER 3Post-Test
Post-Test
1. HTML is a language protocol that enables Web browsers to share and display Web pages. It is an acronym for
a. Hypertext Markup Language. b. Hyper-thread Machine Language. c. Hypertext Mach Language. d. Hyper-thread Microsoft® Language.
2. If you were a programmer, which of the following logical tools would you NOT need?
a. if-then b. loop c. branch d. bugging
3. Who created Linux®? a. Torvalds b. Gates c. Jobs d. Wozniak
4. Which of the following is NOT a utility program? a. Wallpaper b. Calculator c. Notepad d. Paint
5. PIPA is an acronym for what? a. Preserve IP Act b. Protect IP Act c. Promote IP Act d. Privatize IP Act
6. An example of a structured programming language is a. assembly. b. Fortran. c. COBOL. d. C++.
7. Which of the following is primarily responsible for making the computer appear to be intelligent?
a. Logic b. Operating system c. Data d. Knowledge
bow80854_03_c03.indd 80 7/26/13 12:46 PM
CHAPTER 3Key Ideas
8. Which of the following CANNOT be found on the Windows® taskbar? a. Programs that are running b. Restore down button c. Start button d. Time
9. Which of the following is NOT a standard Windows® folder? a. My Music b. My Pictures c. My Documents d. My Settings
10. Which of the following is an example of an open-source operating system? a. Windows®
b. Snow Leopard c. Linux®
d. DOS
Answers 1. a. Hypertext Markup Language. The answer can be found in Section 3.1. 2. d. bugging. The answer can be found in Section 3.2. 3. a. Torvalds. The answer can be found in Section 3.3. 4. a. Wallpaper. The answer can be found in Section 3.4. 5. b. Protect IP Act. The answer can be found in Section 3.5. 6. d. C++. The answer can be found in Section 3.1. 7. a. Logic. The answer can be found in Section 3.2. 8. b. Restore down button. The answer can be found in Section 3.3. 9. d. My Settings. The answer can be found in Section 3.4. 10. c. Linux®. The answer can be found in Section 3.5.
Key Ideas
• Programming language is the method of communication that lets humans tell computers what to do. These languages have evolved over time. Since 1951, there have been five generations of computer languages.
• An algorithm is a step-by-step logical procedure that enables a computer to per- form a task. The algorithm forms the basis of the computer program.
• There are three types of systems software: operating systems, utilities, and drivers. • An operating system consists of programs that define and manage the environ-
ment in which you interface and interact with the computer. Examples are Win- dows® for a PC and OS X® for a Mac®.
• The file structure of a computer is hierarchical with folders, subfolders, and documents.
• Applications, including software suites, specialized software, and apps, are the programs that you use to perform tasks on a computer. This includes productiv- ity programs like Word and Excel®, and entertainment programs like games.
• Open source is software code that is not “owned” (such as Microsoft® owning Word) but is freely given to a community of programmers, with the expectation that they will improve it, and share the improvements with others.
bow80854_03_c03.indd 81 7/26/13 12:46 PM
CHAPTER 3Key Terms
Critical Thinking Questions
1. Have you ever thought about learning a computer language? If you have, what type of program would you write? What would you like to teach the computer to do specifically for you?
2. Write an algorithm that defines the choices and things you do on a typical Mon- day morning from the time you wake up until the time you get to work or school.
3. Make a list of the operating systems you have used in your lifetime. What have you liked and disliked about each one? If a systems programmer contacted you for feedback, what would you tell him or her you that would like to see done differently?
4. What are the applications you use most often on your computer? What percent- age of time do you spend with productivity (such as Word), entertainment (such as games), and social media (such as Facebook) applications?
5. Do you use any open-source programs? If so, which ones? 6. Where do you stand in the open-source debate? Do you agree more with the open-
source proponents that argue it is responsible for the most innovative computer inspirations? Or do you side with the open-source opponents who believe that copyrighted materials and closed-source code protect the programmer, and ensure profitability for the organization that takes the business risks to create the product?
Key Terms
algorithm A set of rules for solving a problem through a defined number of steps.
applet A small application, designed to be called or used within another application, usually designed to perform one specific task.
applications Programs purchased by a user to perform specific functions on a com- puter, such as a word processing program.
applications programmers People who develop applications for use on computers.
assembly language First-generation com- puter language, which used mnemonic codes to replace all the zeros and ones.
BASIC (Beginners All-purpose Symbolic Instruction Code) Early programming language.
batch machines Early computers that used a stack of physical cards with pat- terns of holes that told the computer what to do.
branch A computer programming tech- nique that shifts the program to a nonse- quential block of code.
bugs Errors interfering with the operation of hardware or software in a computer.
business suite A group of programs designed to work together, such as Micro- soft® Office, which contains separate appli- cations such as Word, PowerPoint®, Excel®, and Access®.
CAD (Computer Aided Design) Applications that can create detailed two- dimensional or three-dimensional draw- ings for architects and engineers.
bow80854_03_c03.indd 82 7/26/13 12:46 PM
CHAPTER 3Key Terms
COBOL (Common Business Oriented Language) A programming language for business applications.
cold boot Starting a computer from an “off” position.
compiler A program that transforms the source program into the zeros and ones of the machine language.
computer scientists People who study multiple computer languages and who have mastered the hardware and software of computers.
copyleft An open source term that describes what happens when a user modifies a program and passes along those modifications for free to a friend.
debugging The process of removing “bugs” or errors from hardware or soft- ware in a computer.
desktop Items displayed on the monitor screen, including the start button, program and file icons, wallpaper, and task bar.
device driver A program that tells your computer how to work with your hardware.
Digital Rights Management or Digital Restrictions Management (DRM) The use of digital technologies to protect intellec- tual property.
disk defragmenter (or defrag) A utility that eliminates discontinuous empty space in the storage to improve a computer’s performance.
DOS (Disk Operating System) Early Windows® operating system.
End User License Agreement (EULA) Terms and restrictions placed upon the user who purchases a license to use a soft- ware program.
file Individual computer document such as a word processing file, spreadsheet file, image file, etc.
flow chart The general logical procedure that a computer program will follow.
folder A group of files.
Fortran A programming language designed for scientists and used primarily for numerical calculation.
hardware Physical devices that make a computer work.
hierarchical Treelike organizational structure that includes folders, subfolders, and files.
high-level computer languages Com- puter programming languages that use commands that resemble natural English.
HTML (Hypertext Markup Language) The protocol for displaying documents (text, graphics, images, and video) on Internet pages.
if–then statement A logic statement that directs the computer to take a specific action if the first part of the condition is true.
integer A positive or negative whole number.
Large Scale Integration (LSI) circuits Circuit boards in which thousands of tran- sistors can be placed on a single chip.
logic Programming decisions that give the computer the appearance of intelligence.
machine language A sequence of zeros and ones that symbolize both instructions and data.
maximize window Command to make a window fill the entire monitor screen.
bow80854_03_c03.indd 83 7/26/13 12:46 PM
CHAPTER 3Key Terms
minimize window Command to move the computer window to the task bar.
My Computer Icon that can be used to view a list of the various hard drives and external drives located on the computer.
My Documents Place where Windows® stores all user documents.
My Music Place where Windows® stores all user music.
My Pictures Place where Windows® stores all user images.
object-oriented language A computer lan- guage that supports objects such as graph- ics or a graphical user interface.
object program Zeros and ones of the machine language, which the compiler converted from the source program.
open source Computer code that users are able to download for free and to which users are encouraged to suggest and implement programming improvements.
operating system The operating environ- ment for a computer, which directs the computer to perform essential tasks such as running other applications (at the user’s command); it also manages input and out- put of information, directs communication, and manages storage.
Paint A free imaging program bundled with Windows®.
personal suite A group of programs designed to work together, which are usu- ally less expensive and less sophisticated than a business software suite, although they perform similar functions.
Photoshop® An advanced imaging program used for painting and image enhancement.
plug and play A piece of hardware that can be plugged into a USB port and is immediately ready to work, without the need to install a driver.
pointer On-screen arrow whose move- ment is controlled by a mouse.
programming loop Lines of programming code that are repeated over and over using different variables.
proprietary software Software that is owned and controlled by its creator.
quick launch Menu of programs most recently accessed on the computer.
recycle bin Place to which deleted files are sent.
restart Shutting down and then restarting a computer’s operating system without powering down the computer.
restore down Command to keep a win- dow open but to reduce it to a previously defined smaller size.
screen saver Animated images that appear on the screen after a certain period of user inactivity on the computer.
software Instructions, code, or programs that direct a computer to perform useful tasks at the user’s command.
software suites Groups of software pro- grams that are bundled together; examples include business suites, personal suites, and specialized software.
source program The code a programmer writes in a high-level language.
specialized software The largest category of applications, which includes Internet browsers, business software, and imaging software that allows users to create and manipulate pictures.
bow80854_03_c03.indd 84 7/26/13 12:46 PM
CHAPTER 3Web Resources
start button The button in the lower left- hand corner of the Windows® desktop that is designed to help launch programs.
structured programming A programming methodology in which blocks of code called subroutines were written to handle specific tasks, while the main program simply accessed them as needed.
subfolder A folder within a folder.
System Restore When a computer shuts down because of a significant problem or critical error, this program can return the computer to a previous configuration in which it was working correctly.
systems programmers People who develop compilers and other tools to convert high-level languages into machine code; they also work on operating systems.
systems software Software programs that define the environment in which applica- tion software operates; examples include operating systems, utilities, and device drivers.
taskbar A bar at the bottom of the screen that contains the start button, programs running in the background, and the time.
update A procedure that replaces a piece of software with the most current version.
utilities Software programs that make a computer work.
variables Letters in computer code that can take on a variety of different numerical values.
wallpaper The background screen of the desktop.
warm boot Restarting the computer from an “on” position.
Web Resources
What is the future of operating systems? This article attempts to answer the question: http://www.bizymoms.com/computers-and-technology/operating-system-future.html
A list of free and open-source software for Windows® can be found at: http://www.opensourcewindows.org/
Learn more about computer programming by visiting this site: http://www.bfoit.org/itp/Programming.html
bow80854_03_c03.indd 85 7/26/13 12:46 PM
bow80854_03_c03.indd 86 7/26/13 12:46 PM