Computers are integral to the fabric of modern life. Without computers there would be no cell phones, no ATMs, and no game consoles.  There would be no widely accepted credit cards.  Air travel would be much less common, much less safe, and far more expensive.  In fact, without computers many aspects of modern life would be missing, and those that remained would be much, much more expensive.

Computers were originally conceived of as machines for automating the process of mathematical calculation.  Given this fact, it is more than a little surprising that many of today’s most popular computer applications focus on communication rather than computation.   examines five of the most common communication oriented applications: email, instant messengers, web browsers, word processors, and presentation software such as Microsoft’s PowerPoint.

Aside from applications designed to help people communicate with one another more effectively, entertainment is probably the second most popular use of computing technology.  Entertainment includes applications such as the production of Hollywood special effects and computer/console games.  

First person shooters like “Halo” and “Resident Evil”, classic RPG-based games like “Final Fantasy X”, massive multiplayer games like “EverQuest”, racing games, sports games, strategy games, and traditional adventure games – in 2003 computer and console games (dominated by the likes of Sony’s PlayStation II, Nintendo’s GameCube, and Microsoft’s Xbox) represented a $20 billion dollar industry.  For many people, gaming is their first, and most intimate, interaction with computing technology.

Gaming is tremendously important to computing.  The desire for greater and greater levels of realism pushes forward 3-D computer graphics hardware, modeling software, artificial intelligence applications and many other aspects of the field.  Gaming also brings many new people to computing.  It is not uncommon for freshman computer science students to have chosen to major in the field due to a desire to create new and better games.

Another extremely useful, but somewhat more mundane, computing application is the spreadsheet. Before the use of spreadsheets became commonplace in the mid-1980’s, using a computer to solve almost any task, such as averaging grades or balancing a check book, required the development of a unique computer program for that task.  This led to great expense, since creating a computer program can be a difficult and time consuming task that requires the services of skilled professional programmers.  With the advent of spreadsheets many simple applications no longer required that custom computer programs be written.

A spreadsheet, such as Microsoft’s Excel, is a program that allows a person to quickly model a collection of quantitative relationships without writing a computer program.  Spreadsheets are common in the business world.  They are used to tabulate data, perform long series of calculations, and to answer “what if” type questions that require mathematical modeling.  If this sounds overly complex, don’t be put off.  While spreadsheets are one of the most powerful and flexible applications of computers, they are also one of the most intuitive.  

includes a detailed discussion of spreadsheets.  Additionally, the Watson Spreadsheet laboratory, which is included with this text, will give you a chance to construct a number of spreadsheets for yourself, in order to see how they can be used to solve real-world problems.

Information storage and retrieval is another important application of computing that has existed since the earliest days of the field.  After the federal government, large businesses were one of the first groups to adopt computers.  They did so in the late 1950’s in order to improve the efficiency of their accounting and billing operations.  Without computers it would be impossible to conduct business in the way we do today.  Just imagine the number of employees your bank would need if it had to process all checks by hand.  The costs involved would make modern banking an unaffordable luxury for the vast majority of people.  Computers were able to streamline financial operations because people quickly recognized that computers could store and rapidly retrieve vast amounts of data.  In fact, the popular press of the 1950’s often referred to computers as “electronic brains” because of their highly publicized speed and accuracy.

examines the way data is physically stored by computers and looks at some of the techniques used to organize data so that it can be rapidly retrieved.  The chapter discusses the various kinds of files that can be stored along with the advantages and disadvantages of each.  Some techniques are appropriate for storing data that must be directly addressable based on a key.  For example, a university usually wants to access its student records by student ID number.  Other techniques are more appropriate for data that is sequential in nature.  In addition to individual files of information, database management systems are useful for organizing large collections of related information.  A database management system is a program that can be used to organize data in ways that make it easy for people to pose questions.  For example, a well-organized database would make it easy for the university registrar to find answers to questions such as “How many female engineering students have a GPA of 3.5 or above?” or “Which classes did Dr. O’Neal teach in the fall of 2003?”  A Watson Database laboratory is included with this text.  It will give you a feel for the types of problems that can be solved using a modern relational database package.

The last chapter in the section on computer applications, , focuses on the impact of computers on society.  A number of issues of interest to the general public are addressed, including: security and privacy, freedom of expression, intellectual property rights, and computer crime.  In addition, issues of particular interest to the computing professional, such as accountability, liability, and professional licensing are discussed.  

Security generally refers to how well information is protected from unauthorized access while privacy is concerned with what information should be protected and from whom.  Unauthorized access to your bank account is a security issue.  Whether the government has a right to monitor electronic communications is a privacy issue.

Because computers are able to rapidly process, store, and retrieve vast quantities of information they have always posed a serious potential threat to individual privacy.  Before computers were commonplace, personal information such as an individual’s name address, phone number, income level, and spending habits could be collected, but the expense involved in doing so by hand was generally prohibitive.  Computers make the compilation of detailed personal profiles, from what kind of toothpaste you use, to your political orientation, both practical and inexpensive.

As computers become more and more interwoven into the fabric of society, issues of security and privacy take on greater urgency.  Do governments have the right to monitor private electronic communications?  What constitutes a “private” communication?  Do employers have the right to monitor their employees’ email?  Do faculty and administrators have the right to monitor email sent by students?  Does the answer to the last question depend in any way on whether the email is sent over a network of computers owned and operated by the university?

Another area of concern involves intellectual property rights.  While the modern concept of copyright has roots going back at least as far as England’s 1710 Statute of Ann, the advent of computing and high-speed networking technologies pose many new challenges and questions.  These challenges range from software piracy, to ripping CDs and swapping MP3 music files, to trading AVI and VCD video files.  The ease with which copyrighted material can (and is) illegally distributed has led to a storm of questions and controversy concerning existing copyright law.

Accountability and liability are issues of increasing concern to computing professionals.  Accountability focuses on determining who is responsible for an action being taken or an event occurring.  Liability, on the other hand, tends to be a legal question.  Both concern responsibility.  

Consider modern “fly-by-wire” aircraft, such as those in the Boeing 777 series. In these aircraft, computers actually manipulate the plane’s control surfaces.  This is different from traditional aircraft where the movements of the pilot, usually magnified by hydraulic systems, directly position the flaps, ailerons, and other control surfaces.  In a fly-by-wire aircraft when the pilot pulls back on the stick, a computer senses the movement of the stick and adjusts the control surfaces accordingly.

Who is responsible if a fly-by-wire aircraft crashes, killing hundreds of people, and the fault can be traced to a bug, or error, in the control software?  The airline for buying the aircraft?  The aircraft manufacturer?  The members of the programming team who wrote the flawed piece of software?  More important than assigning blame in such situations is determining how such accidents can be prevented in the first place.  Such concerns are more than academic since, as we will learn, it is fundamentally impossible to prove that computer programs are error free.  Any complex piece of software written by a team of humans will contain errors.

Computer scientists and other computing professionals have responded to the above issues in recent years by forming organizations such as Computer Professionals for Social Responsibility and by the publication of a Code of Ethics by the Association for Computing Machinery.  However, unlike engineers, computing professionals are not licensed to practice their vocation.  There is no organization responsible for defining and enforcing a uniform set of professional standards and ethical guidelines – or for imposing sanctions on individuals who engage in irresponsible or unethical professional behavior.