introduction to computers and the · pdf file2 introduction to computers and the internet...

23
1 Introduction to Computers and the Internet Objectives To understand basic computing concepts. To become familiar with different types of programming languages. To understand the evolution of the Internet and the World Wide Web. To understand the roles of XHTML, JavaScript, JScript .NET, Dynamic HTML,ASP.NET, Perl, PHP, ColdFusion, Python, Java servlets and JavaServer Pages in developing distributed client/server applications for the Internet and the World Wide Web. Our life is frittered away by detail . . . Simplify, simplify. Henry David Thoreau What networks of railroads, highways and canals were in another age, networks of telecommunications, information and computerization . . . are today. Bruno Kreisky My object all sublime I shall achieve in time. W. S. Gilbert He had a wonderful talent for packing thought close, and rendering it portable. Thomas Babington Macaulay

Upload: phungminh

Post on 06-Mar-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

1Introduction toComputers and

the Internet

Objectives• To understand basic computing concepts.• To become familiar with different types of

programming languages.• To understand the evolution of the Internet and the

World Wide Web.• To understand the roles of XHTML, JavaScript,

JScript .NET, Dynamic HTML, ASP.NET, Perl, PHP,ColdFusion, Python, Java servlets and JavaServer Pages in developing distributed client/server applications for the Internet and the World Wide Web.

Our life is frittered away by detail . . . Simplify, simplify.Henry David Thoreau

What networks of railroads, highways and canals were inanother age, networks of telecommunications, informationand computerization . . . are today.Bruno Kreisky

My object all sublimeI shall achieve in time.W. S. Gilbert

He had a wonderful talent for packing thought close, andrendering it portable.Thomas Babington Macaulay

Page 2: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

2 Introduction to Computers and the Internet Chapter 1

1.1 IntroductionWelcome to Internet and World Wide Web programming! We have worked hard to createwhat we hope will be an informative, entertaining and challenging learning experience foryou. As you read this book, you may want to refer to our Web site

www.deitel.com

for updates and additional information.The technologies you will learn in this book are fun for novices, and simultaneously

are appropriate for experienced professionals who build substantial information systems.Internet and World Wide Web How to Program, Third Edition is designed to be an effectivelearning tool for each of these audiences. How can one book appeal to both groups? Theanswer is that the core of this book emphasizes achieving program clarity through theproven techniques of structured programming, object-based programming and—in theoptional Java sections—object-oriented programming. Beginners will learn program-ming the right way from the beginning. We have attempted to write in a clear and straight-forward manner.

Outline

1.1 Introduction1.2 What Is a Computer?1.3 Programming Language Types1.4 Other High-Level Languages1.5 Structured Programming1.6 History of the Internet1.7 Personal Computing1.8 History of the World Wide Web1.9 World Wide Web Consortium (W3C)1.10 Hardware Trends1.11 Key Software Trend: Object Technology1.12 JavaScript: Object-Based Scripting for the Web1.13 Browser Portability1.14 C and C++1.15 Java1.16 Microsoft .NET1.17 Dynamic HTML1.18 Internet and World Wide Web How to Program1.19 Web Resources

Summary • Terminology • Self-Review Exercises • Answers to Self-Review Exercises • Exercises

Page 3: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 3

Perhaps most important, the book presents hundreds of working examples and showsthe outputs produced when these examples are rendered in browsers or run on computers.We present all concepts in the context of complete working programs. We call this theLIVE-CODE approach. These examples are available on the CD-ROM inside the backcover of this book and by download from our Web site, www.deitel.com.

The early chapters introduce computer fundamentals, the Internet and the World WideWeb. We show how to use software for browsing the Web and for creating images for theWeb. We present a carefully paced introduction to Web programming, using the popularJavaScript programming language. In this book, we will often refer to “programming” asscripting for reasons that will soon become clear. Novices will find that the material in theJavaScript chapters presents a solid foundation for the deeper treatment of scripting in Perl,PHP, ASP.NET, ColdFusion, Python, VBScript and JSP in the later chapters. Experiencedprogrammers will read the early chapters quickly and find the treatment of scripting in thelater chapters to be rigorous and challenging.

Most people are familiar with the exciting things computers do. Using this textbook,you will learn how to command computers to perform specific tasks. Software (i.e., theinstructions you write to command the computer to perform actions and make decisions)controls computers (often referred to as hardware). JavaScript is among today’s most pop-ular software development languages for Web-based applications.

Computer use is increasing in almost every field of endeavor. In an era of steadily risingcosts, computing costs have been decreasing dramatically because of rapid developments inboth hardware and software technologies. Computers that filled large rooms and cost millionsof dollars just two decades ago can now be inscribed on the surfaces of silicon chips smallerthan fingernails, costing perhaps a few dollars each. Silicon is one of the most abundant mate-rials on earth—it is an ingredient in common sand. Silicon chip technology has made com-puting so economical that hundreds of millions of general-purpose computers worldwide arehelping people in business, industry, government, education and in their personal lives.

Until recently, students in introductory programming courses learned only the meth-odology called structured programming. As you study the various scripting languages inthis book, you will learn both structured programming and the newer methodology calledobject-based programming. After this, you will be well prepared to study today’s popularfull-scale programming languages such as C++, Java, C# and Visual Basic .NET and tolearn the even more powerful programming methodology of object-oriented program-ming. We believe that object-oriented programming will be the key programming method-ology at least for the next decade.

Today’s users are accustomed to applications with graphical user interfaces (GUIs).Users want applications that employ the multimedia capabilities of graphics, images, anima-tion, audio and video. They want applications that can run on the Internet and the World WideWeb and communicate with other applications. Users want to apply both file-processing tech-niques and database technologies. They want applications that are not limited to the desktopor even to some local computer network, but that can integrate Internet and World Wide Webcomponents, and remote databases as well. Programmers want to use all these capabilities ina truly portable manner so that applications will run without modification on a variety of plat-forms (i.e., different types of computers running different operating systems).

In this book, we present a number of powerful software technologies that will enableyou to build these kinds of systems. The first part of the book (through Chapter 20) concen-

Page 4: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

4 Introduction to Computers and the Internet Chapter 1

trates on using technologies such as Extensible HyperText Markup Language (XHTML),JavaScript, Dynamic HTML, Flash, Dreamweaver and Extensible Markup Language(XML) to build the portions of Web-based applications that reside on the client side (i.e.,the portions of applications that typically run on Web browsers such as Netscape orMicrosoft’s Internet Explorer). The second part of the book concentrates on using technol-ogies such as Web servers, databases, ASP.NET, Perl/CGI, PHP and ColdFusion. Program-mers use these technologies to build the server side of Web-based applications. Theseportions of applications typically run on “heavy-duty” computer systems on which organi-zations’ business-critical Web sites reside. Readers who master the technologies in this bookwill be able to build substantial Web-based, client/server, database-intensive, “multi-tier”applications. We begin with a discussion of computer hardware and software fundamentals.If you are generally familiar with computers, you may want to skip portions of Chapter 1.

1.2 What Is a Computer?A computer is a device capable of performing computations and making logical decisionsat speeds millions, even billions, of times faster than human beings can. For example, a per-son operating a desk calculator might require a lifetime to complete the hundreds of mil-lions of calculations a powerful personal computer can perform in one second. (Points toponder: How would you know whether the person had added the numbers correctly? Howwould you know whether the computer had added the numbers correctly?) Today, theworld’s fastest supercomputers can perform hundreds of billions of additions per second,and computers that perform several trillion instructions per second are already functioningin research laboratories!

Computers process data under the direction of sets of instructions called computerprograms. Computer programs guide the computer through orderly sets of actions speci-fied by people called computer programmers.

The various devices, such as the keyboard, screen, disks, memory and processingunits, that comprise a computer system are referred to as hardware. Regardless of differ-ences in physical appearance, virtually every computer may be envisioned as being dividedinto six logical units or sections. These are as follows:

1. Input unit. This is the “receiving” section of the computer. It obtains information(data and computer programs) from various input devices and makes the infor-mation available to the other units so that it can be processed. Most information isentered into computers today through keyboards, “mouse” or pointing devices,disks and network connections. Information also is entered by speaking to com-puters, by electronically scanning images and by video recording.

2. Output unit. This is the “shipping” section of the computer. It takes informationprocessed by the computer and sends it to various output devices to make the in-formation available for use outside the computer. Information output from com-puters is displayed on screens, printed on paper, played through audio speakersand video devices, sent to other computers and magnetically recorded on disks andtapes. This processed information can be used to control other devices.

3. Memory unit. This is the rapid-access, relatively low-capacity “warehouse” sec-tion of the computer. It temporarily retains information entered through the inputunit so that the information may be made available for processing. The memory

Page 5: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 5

unit also retains information which has already been processed until it can beplaced on output devices by the output unit. The main memory unit often is calledeither memory, primary memory or random access memory (RAM).

4. Arithmetic and logic unit (ALU). This is the “manufacturing” section of thecomputer. It is responsible for performing calculations, such as addition, subtrac-tion, multiplication and division. It contains the decision mechanisms that allowthe computer, for example, to compare two items from the memory unit to de-termine whether they are equal.

5. Central processing unit (CPU). This is the “administrative” section of the com-puter. The CPU acts as the computer’s coordinator and is responsible for super-vising the operation of the other sections. The CPU tells the input unit wheninformation should be read into the memory unit, tells the ALU when informationfrom the memory unit should be used in calculations and tells the output unit whento send information from the memory unit to certain output devices.

6. Secondary storage unit. This is the long-term, high-capacity “warehousing” sec-tion of the computer. Programs or data not being used by the other units are normallyplaced on secondary storage devices (e.g., hard disk drives) until they are needed,possibly hours, days, months or even years later. Information in secondary storagetakes longer to access than information in primary memory. The cost per unit of sec-ondary storage is much less than the cost per unit of primary memory.

1.3 Programming Language TypesThe computer programs that run on a computer are referred to as software. Programmerswrite the instructions that comprise software in various programming languages, some thatthe computer can understand and others that require intermediate translation steps. Thehundreds of computer languages in use today may be divided into three types:

1. Machine languages

2. Assembly languages

3. High-level languages

Any computer can directly understand only its own machine language. Machine lan-guage is the “natural language” of any given computer and is defined by its hardwaredesign. Machine languages generally consist of strings of numbers (ultimately reduced to1s and 0s) that instruct computers to perform their most elementary operations one at atime. Machine languages are machine dependent (i.e., a particular machine language canbe used on only one platform, or type, of computer). Machine languages are cumbersomefor humans, as illustrated by the following machine language that adds overtime pay to basepay and stores the result in gross pay:

+1300042774+1400593419+1200274027

As computers became more popular, it became apparent that machine-language pro-gramming was too slow and tedious for most programmers. Instead of using strings of num-bers that computers could directly understand, programmers began using natural language

Page 6: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

6 Introduction to Computers and the Internet Chapter 1

(e.g., English-like) abbreviations to represent the elementary operations of the computer.These abbreviations formed the basis of assembly languages. Translator programs,called assemblers, were developed to convert assembly-language programs to machinelanguage at computer speeds. The following section of an assembly-language program alsoadds overtime pay to base pay and stores the result in gross pay, but reads more clearly thanits machine-language equivalent.

LOAD BASEPAYADD OVERPAYSTORE GROSSPAY

Although such code is understandable to humans, it is incomprehensible to computers untiltranslated to machine language.

Computer use increased rapidly with the advent of assembly languages, but program-ming in these still required many instructions to accomplish even the simplest tasks. Tospeed the programming process, high-level languages were developed, in which singlestatements could be written to accomplish substantial tasks. The translator programs thatconvert high-level language programs into machine language are called compilers. High-level languages allow programmers to write instructions that are similar to everydayEnglish and contain commonly used mathematical notations. A payroll program written ina high-level language might contain the statement:

grossPay = basePay + overTimePay

From this, it is easy to see why programmers find high-level languages more desirable thaneither machine languages or assembly languages. C++, Java, C# and Visual Basic .NET areamong the most powerful and most widely used high-level programming languages.

The process of compiling a high-level language program into machine language cantake a considerable amount of computer time. Interpreter programs were developed toexecute high-level language programs directly, without the need for compiling them intomachine language. Although compiled programs execute faster than interpreted programs,interpreters are popular in program-development environments, in which programs arerecompiled frequently as new features are added and errors are corrected. In this book, westudy eight key programming languages: JavaScript, JScript, ActionScript, Perl, PHP,ColdFusion, Python and VBScript (along with many other languages, including XHTMLand XML). Each of these scripting languages is processed by interpreters. You will seethat interpreters have played an especially important role in helping scripting languagesachieve their goal of portability across a variety of platforms.

Performance Tip 1.1Interpreters have an advantage over compilers in the scripting world. An interpreted pro-gram can begin executing as soon as it is downloaded to the client’s machine, without theneed to be compiled before it can execute. 1.1

1.4 Other High-Level LanguagesOnly a few high-level languages have achieved broad acceptance, out of the hundreds de-veloped. IBM Corporation developed Fortran (FORmula TRANslator) from 1954 to 1957for scientific and engineering applications that required complex mathematical computa-tions. Fortran is still widely used.

Page 7: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 7

A group of computer manufacturers and government and industrial computer usersdeveloped Cobol (Common Business Oriented Language) in 1959. Commercial applica-tions that manipulate large amounts of data are programmed in Cobol. Today, about half ofall business software is still programmed in Cobol.

Basic was developed in 1965 at Dartmouth College as a simple language to help nov-ices learn programming. Bill Gates implemented Basic on several early personal com-puters. Today, Microsoft—the company Bill Gates created—is the world’s leadingsoftware development organization. Gates has become one of the world’s most recognizedpeople, and Microsoft is included in the list of prestigious stocks that form the Dow JonesIndustrials—from which the Dow Jones Industrial Average is calculated as a measure ofstock market performance.

1.5 Structured ProgrammingDuring the 1960s, many large software development efforts encountered severe difficul-ties. Software schedules were typically late, costs greatly exceeded budgets and the fin-ished products were unreliable. People began to realize that software development was afar more complex activity than they had imagined. Research activity in the 1960s resultedin the evolution of structured programming—a disciplined approach to writing programsthat are clearer than unstructured programs, easier to test and debug and easier to modify.Chapters 7–9 discuss the principles of structured programming.

One of the more tangible results of this research was the development of the Pascalprogramming language by Professor Nicklaus Wirth in 1971. Pascal, named after the 17th-century mathematician and philosopher Blaise Pascal, was designed for teaching structuredprogramming in academic environments and rapidly became the preferred programminglanguage in most universities.

The Ada programming language was developed under the sponsorship of the UnitedStates Department of Defense (DoD) during the 1970s and early 1980s. Hundreds of sepa-rate languages had been used to produce DoD’s massive command-and-control softwaresystems. DoD wanted a single language that would fulfill most of the department’s needs.Pascal was chosen as a base, but the final Ada language is quite different from Pascal. Thelanguage was named after Augusta Ada Byron King, Lady Lovelace, daughter of the poetLord Byron. Lady Lovelace is generally credited with writing the world’s first computerprogram, in the early 1800s (for the Analytical Engine mechanical computing devicedesigned by Charles Babbage).

One important capability of Ada is called multitasking, which allows programmers tohave many activities running simultaneously. Java, through a technique called multi-threading, also enables programmers to write programs with actions that can be processedin parallel. Other widely used high-level languages, such as C and C++, generally allowprograms to perform only one activity at a time (although they can support multithreadingthrough special-purpose libraries).

1.6 History of the InternetIn the late 1960s, one of the authors (HMD) was a graduate student at MIT. His research atMIT’s Project Mac (now the Laboratory for Computer Science—the home of the World WideWeb Consortium) was funded by ARPA—the Advanced Research Projects Agency of the

Page 8: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

8 Introduction to Computers and the Internet Chapter 1

Department of Defense. ARPA sponsored a conference at which several dozen ARPA-fund-ed graduate students were brought together at the University of Illinois at Urbana-Champaignto meet and share ideas. During this conference, ARPA rolled out the blueprints for network-ing the main computer systems of about a dozen ARPA-funded universities and research in-stitutions. They were to be connected with communications lines operating at a then-stunning56Kbps (i.e., 56,000 bits per second)—this at a time when most people (of the few who could)were connecting over telephone lines to computers at a rate of 110 bits per second. HMD viv-idly recalls the excitement at the conference. Researchers at Harvard talked about communi-cating with the Univac 1108 “supercomputer” at the University of Utah to handle calculationsrelated to their computer graphics research. Many other intriguing possibilities were raised.Academic research was on the verge of taking a giant leap forward. Shortly after this confer-ence, ARPA proceeded to implement the ARPANET, the grandparent of today’s Internet.

Things worked out differently from what was originally planned. Rather than the pri-mary benefit of researchers sharing one other’s computers, it rapidly became clear thatenabling researchers to communicate quickly and easily via what became known as elec-tronic mail (e-mail, for short) was the key benefit of the ARPANET. This is true eventoday on the Internet, as e-mail facilitates communications of all kinds among hundreds ofmillions of people worldwide.

One of the primary goals for ARPANET was to allow multiple users to send andreceive information simultaneously over the same communications paths (e.g., phonelines). The network operated with a technique called packet switching, in which digitaldata was sent in small bundles called packets. The packets contained address, error controland sequencing information. The address information allowed packets to be routed to theirdestinations. The sequencing information helped reassemble the packets (which, becauseof complex routing mechanisms, could actually arrive out of order) into their original orderfor presentation to the recipient. Packets from different senders were intermixed on thesame lines. This packet-switching technique greatly reduced transmission costs, as com-pared with the cost of dedicated communications lines.

The network was designed to operate without centralized control. If a portion of thenetwork failed, the remaining working portions would still route packets from senders toreceivers over alternative paths.

The protocols for communicating over the ARPANET became known as TCP—theTransmission Control Protocol. TCP ensured that messages were properly routed fromsender to receiver and that they arrived intact.

As the Internet evolved, organizations worldwide were implementing their own net-works for both intraorganization (i.e., within the organization) and interorganization (i.e.,between organizations) communications. A wide variety of networking hardware and soft-ware appeared. One challenge was to get these different networks to communicate. ARPAaccomplished this with the development of IP—the Internet Protocol, truly creating a“network of networks,” the current architecture of the Internet. The combined set of proto-cols is now commonly called TCP/IP.

Initially, Internet use was limited to universities and research institutions; then the mil-itary began using the Internet. Eventually, the government decided to allow access to theInternet for commercial purposes. Initially, there was resentment in the research and mili-tary communities—these groups were concerned that response times would become pooras “the Net” became saturated with users.

Page 9: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 9

In fact, the exact opposite has occurred. Businesses rapidly realized that they couldtune their operations and offer new and better services to their clients, so they startedspending vast amounts of money to develop and enhance the Internet. This generated fiercecompetition among communications carriers and hardware and software suppliers to meetthis demand. The result is that bandwidth (i.e., the information carrying capacity) on theInternet has increased tremendously and costs have decreased significantly.

1.7 Personal ComputingIn 1977, Apple Computer popularized the phenomenon of personal computing. Initially,it was a hobbyist’s dream, but computers quickly became economical enough for people tobuy for personal use. In 1981, IBM, the world’s largest computer vendor, introduced theIBM Personal Computer, making computing legitimate in business, industry and govern-ment organizations.

However, these computers were “stand-alone” units—people did their work on theirown machines and then transported disks back and forth to share information (this wascalled “sneakernet”). Although early personal computers were not powerful enough totime-share several users, these machines could be linked together in computer networks,sometimes over telephone lines and sometimes in local area networks (LANs) within anorganization. This led to the phenomenon of distributed computing, in which an organi-zation’s computing, instead of being performed strictly at a central computer installation,is distributed over networks to the sites at which the bulk of the organization’s work is per-formed. Personal computers were powerful enough to handle the computing requirementsof individual users and to enable the basic communications tasks of passing informationback and forth electronically.

Today’s most powerful personal computers are as powerful as the million-dollarmachines of two decades ago. Desktop computers—called workstations—and portablecomputers—called laptops—provide individual users with enormous capabilities. Infor-mation is easily shared across computer networks such as the Internet in which some com-puters, called servers, offer common stores of programs and data that may be used by clientcomputers distributed throughout the network—hence the term client/server computing.Today’s popular operating systems, such as UNIX, Linux, Mac OS X, Windows 2000 andWindows XP, provide the kinds of capabilities discussed in this section.

1.8 History of the World Wide WebThe World Wide Web allows computer users to locate and view multimedia-based docu-ments (i.e., documents with text, graphics, animations, audios or videos) on almost any sub-ject. Even though the Internet was developed decades ago, the introduction of the WorldWide Web is a relatively recent event. In 1990, Tim Berners-Lee of CERN (the EuropeanOrganization for Nuclear Research) developed the World Wide Web and several commu-nication protocols that form the backbone of the Web. The use of the Web “exploded” withthe availability in 1993 of the Mosaic browser, which featured a user-friendly graphical in-terface. Marc Andreessen, whose team at the National Center for Supercomputing Appli-cations (NCSA) developed Mosaic, went on to found Netscape, the company that manypeople credit with initiating the explosive Internet economy of the late 1990s.

Page 10: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

10 Introduction to Computers and the Internet Chapter 1

The Internet and the World Wide Web surely will be listed among the most importantand profound creations of humankind. In the past, most computer applications ran on“stand-alone” computers (i.e., computers that were not connected to one another). Today’sapplications can be written to communicate with hundreds of millions of computers. TheInternet mixes computing and communications technologies. It makes informationinstantly and conveniently accessible worldwide. It makes our work easier. Individuals andsmall businesses can receive worldwide exposure on the Internet. It is changing the natureof the way business is done. People can search for the best prices on virtually any productor service. Special-interest communities can stay in touch with one another, and researcherscan learn of scientific and academic breakthroughs worldwide.

1.9 World Wide Web Consortium (W3C)In October 1994, Tim Berners-Lee founded an organization—called the World Wide WebConsortium (W3C)—devoted to developing nonproprietary, interoperable technologiesfor the World Wide Web. One of the W3C’s primary goals is to make the Web universallyaccessible—regardless of ability, language or culture.

The W3C is also a standardization organization. Web technologies standardized by theW3C are called Recommendations. W3C Recommendations include the ExtensibleHyperText Markup Language (XHTML), Cascading Style Sheets (CSS), HyperTextMarkup Language (HTML; now considered a “legacy” technology) and the ExtensibleMarkup Language (XML). A recommendation is not an actual software product, but a doc-ument that specifies a technology’s role, syntax rules and so forth. For detailed informationabout the W3C Recommendation process, see “6.2 The W3C Recommendation track” at

www.w3.org/Consortium/Process/Process-19991111/process.html#Recs

The W3C comprises three primary hosts—the Massachusetts Institute of Technology(MIT), the European Research Consortium for Informatics and Mathematics (ERCIM) andKeio University in Japan—and hundreds of members. Members provide the primaryfinancing for the W3C and help provide the strategic direction of the Consortium.

The W3C home page (www.w3.org) provides extensive resources on Internet and Webtechnologies. For each Internet technology with which the W3C is involved, the site pro-vides a description of the technology and its benefits to Web designers, the history of thetechnology and the future goals of the W3C in developing the technology. The site organizesW3C Activities (i.e., technology areas under development) into the following domains:Architecture, Interaction, Technology and Society and Web Accessibility Initiative.

1.10 Hardware TrendsThe Internet community thrives on the continuing stream of dramatic improvements inhardware, software and communications technologies. In general, people expect to pay atleast a little more for most products and services every year. The opposite generally hasbeen the case in the computer and communications fields, especially with regard to thehardware costs of supporting these technologies. For many decades, and with no changeexpected in the foreseeable future, hardware costs have fallen rapidly. This is a phenome-non of technology. Every year or two, the capacities of computers tend to double, especiallythe amount of memory they have in which to execute programs, the amount of secondary

Page 11: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 11

storage (e.g., disk storage) they have to hold programs and data over the longer term, andthe processor speeds—the speed at which computers execute their programs (i.e., do theirwork). The same has been true in the communications field, especially in recent years, withthe enormous demand for communications bandwidth attracting tremendous competition.We know of no other fields in which technology moves so quickly and costs fall so rapidly.

When computer use exploded in the 1960s and 1970s, there was talk of the hugeimprovements in human productivity that computing and communications would bringabout. However, these productivity improvements did not materialize. Organizations werespending vast sums on computers and distributing them to their workforces, but withoutimmediate productivity gains. On the hardware side, it was the invention of microprocessorchip technology and its wide deployment in the late 1970s and 1980s which laid thegroundwork for significant productivity improvements in the 1990s. On the software side,productivity improvements are now coming from object technology, which we use exten-sively in this book.

Recently, hardware has been moving more and more toward mobile, wireless tech-nology. Small hand-held devices are now more powerful than the super computers of theearly 1970s. Portability has become a major focus for the computer industry. Wireless datatransfer speeds have become so fast that many Internet users’ primary access to the Web isthrough local wireless networks. The speed of global roaming connections (via satellite)still lags behind LAN connections, though. The next few years will undoubtedly hold sig-nificant advances in wireless capabilities for personal users and businesses.

1.11 Key Software Trend: Object TechnologyOne of the authors, HMD, remembers the frustration that was felt in the 1960s by softwaredevelopment organizations, especially those developing large-scale projects. During hisundergraduate years, HMD had the privilege of working summers at a leading computervendor on the teams developing time-sharing, virtual-memory operating systems. In thesummer of 1967, however, reality set in when the company “decommitted” from commer-cially producing the system that hundreds of people had been working on for many years.It was difficult to get this software right. Software is “complex stuff.”

Hardware costs have been declining rapidly in recent years, to the point that personalcomputers have become a commodity. Unfortunately, software development costs havebeen rising steadily as programmers develop ever more powerful and complex applicationswithout significantly improving the underlying technologies of software development.

Objects are essentially reusable software components that model real-world items.Software developers are discovering that using a modular, object-oriented design andimplementation approach can make software development groups much more productivethan was possible with previous popular programming techniques, such as structured pro-gramming. Object-oriented programs are often easier to understand, correct and modify.

Improvements to software technology began to appear as the benefits of structuredprogramming (and the related discipline of structured systems analysis and design) wererealized in the 1970s. It was not until the technology of object-oriented programmingbecame widely used in the 1980s, and especially in the 1990s, that software developersfinally felt they had the tools to make major strides in the software development process.

Actually, object technology dates back at least to the mid-1960s. The C++ program-ming language, developed at AT&T by Bjarne Stroustrup in the early 1980s, is based on

Page 12: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

12 Introduction to Computers and the Internet Chapter 1

two languages: C, which was initially developed at AT&T to implement the UNIX oper-ating system in the early 1970s, and Simula 67, a simulation programming language devel-oped in Europe and released in 1967. C++ absorbed the capabilities of C and addedSimula’s capabilities for creating and manipulating objects.

Before object-oriented languages appeared, programming languages (e.g., Fortran,Pascal, Basic and C) focused on actions (verbs), rather than things or objects (nouns). Thisstyle of programming is called procedural programming. One of the key problems withprocedural programming is that the program units programmers create do not mirror real-world entities effectively, so they are not particularly reusable. We live in a world ofobjects. Just look around you. Cars, planes, people, businesses, animals, buildings, trafficlights and elevators are all examples of objects. It is not unusual for programmers to “startfresh” on each new project and wind up writing similar software from scratch. This wastesresources as people repeatedly “reinvent the wheel.”

With object technology, properly designed software tends to be more reusable in futureprojects. Libraries of reusable components, such as Microsoft Foundation Classes(MFC), Sun Microsystems’s Java Foundation Classes, Microsoft’s .NET FrameworkClass Library (FCL) and those produced by other software development organizations,can greatly reduce the effort it takes to implement certain kinds of systems (compared withthe effort required to reinvent these capabilities on new projects).

Some organizations report that software reuse is not, in fact, the key benefit they derivefrom object-oriented programming. Rather, companies indicate that object-oriented pro-gramming tends to produce software that is more understandable, better organized andeasier to maintain. These improvements are significant, because it has been estimated thatas much as 80% of software costs are not associated with the original effort to develop thesoftware, but are, in fact, attributed to the evolution and maintenance of the softwarethroughout its lifetime. Whatever perceived benefits object orientation offers, it is clear thatobject-oriented programming will be the primary programming methodology for at leastthe next decade or two.

Software Engineering Observation 1.1Use a building-block approach to creating programs. Avoid reinventing the wheel.Use existing pieces—this is called software reuse, and it is central to object-orientedprogramming. 1.1

[Note: We will include many Software Engineering Observations throughout the textto explain concepts that affect and improve the overall architecture and quality of a soft-ware system, and particularly of large software systems. We also highlight Good Program-ming Practices (practices that can help you write programs that are clearer, moreunderstandable, more maintainable and easier to test and debug), Common ProgrammingErrors (problems to watch out for so you do not make these same errors in your programs),Performance Tips (techniques that will help you write programs that run faster and useless memory), Portability Tips (techniques that will help you write programs that can run,with little or no modification, on a variety of computers), Error-Prevention Tips (tech-niques that will help you remove bugs from your programs and, more important, techniquesthat will help you write bug-free programs in the first place) and Look-and-Feel Observa-tions (techniques that will help you design the “look” and “feel” of your graphical user

Page 13: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 13

interfaces for appearance and ease of use). Many of these techniques and practices are onlyguidelines; you will, no doubt, develop your own preferred programming style.]

Performance Tip 1.2Reusing proven code components instead of writing your own versions can improve programperformance, because these components normally are written to perform efficiently. 1.2

Software Engineering Observation 1.2Extensive class libraries of reusable software components are available over the Internet andthe World Wide Web. Many of these libraries are available at no charge. 1.2

1.12 JavaScript: Object-Based Scripting for the WebJavaScript is an object-based scripting language with strong support for proper software en-gineering techniques. Students learn to create and manipulate objects from the start inJavaScript. JavaScript processing is available free in today’s most popular Web browsers.

Does JavaScript provide the solid foundation of programming principles typicallytaught in first programming courses—the intended audience for this book? We think so.

The JavaScript chapters of this book are much more than just an introduction to the lan-guage. The chapters also present an introduction to computer programming fundamentals,including control structures, functions, arrays, recursion, strings and objects. Experiencedprogrammers will read Chapters 7–12 quickly and master JavaScript by reading our live-code examples and by examining the corresponding input/output screens. Beginners willlearn computer programming in these carefully paced chapters by reading the code expla-nations and completing a large number of exercises. We provide answers to only some ofthe exercises, because this is a textbook—college professors use the other exercises forhomework assignments, labs, short quizzes, major examinations and even term projects.

JavaScript is a powerful scripting language. Experienced programmers sometimestake pride in creating strange, contorted, convoluted JavaScript expressions. This kind ofcoding makes programs more difficult to read, test and debug. This book is also geared fornovice programmers; for them we stress program clarity.

Good Programming Practice 1.1Write your programs in a simple and straightforward manner. This is sometimes referred toas KIS (“keep it simple”). Do not “stretch” the language by trying bizarre uses. 1.1

You will read that JavaScript is a portable scripting language and that programs writtenin JavaScript can run in many different Web browsers. Actually, portability is an elusivegoal.

Portability Tip 1.1Although it is easier to write portable programs in JavaScript than in many other program-ming languages, differences among interpreters and browsers make portability difficult toachieve. Simply writing programs in JavaScript does not guarantee portability. Program-mers occasionally need to research platform variations and write their code accordingly. 1.1

Error-Prevention Tip 1.1Always test your JavaScript programs on all systems and in all Web browsers for which theyare intended. 1.1

Page 14: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

14 Introduction to Computers and the Internet Chapter 1

Good Programming Practice 1.2Read the documentation for the JavaScript version you are using to access JavaScript’s richcollection of features. 1.2

Error-Prevention Tip 1.2Your computer and JavaScript interpreter are good teachers. If you are not sure how a fea-ture works even after studying the documentation, experiment and see what happens. Studyeach error or warning message and adjust the code accordingly. 1.2

JavaScript was created by Netscape. Microsoft’s version of JavaScript is called JScript.Both Netscape and Microsoft have been instrumental in the standardization of JavaScript/JScript by ECMA International as ECMAScript. ECMA International (formerly the Euro-pean Computer Manufacturers Association) encourages Netscape and Microsoft to add newcapabilities that build upon the ECMAScript standard. JScript, for example, provides accessto several specialized objects that interact with other Microsoft technologies. Throughoutmost of this book, we refer to JavaScript and JScript generically as JavaScript. However, inChapters 23–24, which focus on Microsoft’s ASP.NET technology, we must specificallyuse Microsoft’s JScript. We program ASP.NET pages using the next generation of JScript,JScript .NET, which has many characteristics of a fully object-oriented, high-level program-ming language, but retains all the features of a scripting language. After learning JavaScriptin Chapters 7–12, the transition to JScript .NET should be straightforward.

1.13 Browser PortabilityEnsuring a consistent look and feel on client-side browsers is one of the great challenges ofdeveloping Web-based applications. Currently, a standard does not exist to which softwaredevelopers must adhere when creating Web browsers. Although browsers share a commonset of features, each browser might render pages differently. Browsers are available in manyversions (1.0, 2.0, etc.) and on many different platforms (UNIX, Microsoft Windows, AppleMacintosh, IBM OS/2, Linux, etc.). Vendors add features to each new version that result inincreased cross-platform incompatibility issues. Clearly it is difficult, if not impossible, todevelop Web pages that render correctly on all versions of each browser. This book attemptsto minimize these problems by teaching XHTML, which is widely supported by browsers.

This book focuses on platform-independent topics, such as XHTML, JavaScript, Cas-cading Style Sheets, XML, Apache Web server, database/SQL/MySQL, Perl/CGI, PHP,ColdFusion and Python. However, it also features many topics that are Microsoft Win-dows–specific, including the Internet Explorer 6 browser, the Adobe Photoshop Elementsgraphics package for Windows, Dynamic HTML, VBScript, Internet Information Services(IIS), database access via ActiveX Data Objects .NET (ADO.NET) and ASP.NET.

Portability Tip 1.2The Web is populated with many different browsers, which makes it difficult for authors andWeb developers to create universal solutions. The W3C is working toward the goal of a uni-versal client-side platform. 1.2

1.14 C and C++For many years, the Pascal programming language was preferred for introductory and in-termediate programming courses. The C language evolved from a language called B, de-

Page 15: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 15

veloped by Dennis Ritchie at Bell Laboratories. C was implemented in 1972, making C acontemporary of Pascal. C initially became known as the development language of theUNIX operating system. Today, virtually all new major operating systems are written in Cand/or C++.

Bjarne Stroustrup developed C++, an extension of C, in the early 1980s. C++ providesa number of features that “spruce up” the C language, but more importantly, it providescapabilities for object-oriented programming. C++ is a hybrid language: It is possible toprogram in either a C-like style (procedural programming) in which the focus is on actions,or an object-oriented style (in which the focus is on objects) or both. C and C++ have influ-enced many subsequent programming languages, such as Java, C#, JavaScript and JScript,each of which have a syntax similar to C and C++.

1.15 JavaIntelligent consumer electronic devices may be the next major area in which microproces-sors will have a profound impact. Recognizing this, Sun Microsystems funded an internalcorporate research project that was code-named Green in 1991. The project resulted in thedevelopment of an object-oriented language (based on C and C++), which its creator, JamesGosling, called Oak, after an oak tree outside his office window. It was later discovered thata computer language already in use was named Oak. When a group of Sun employees vis-ited a local coffee shop, the name Java was suggested, and it stuck.

The Green project ran into some difficulties, because the marketplace for intelligentconsumer electronic devices was not developing as quickly as Sun had anticipated. Worseyet, a major contract for which Sun had competed was awarded to another company. TheGreen project was in jeopardy of being cancelled. By sheer good fortune, the World WideWeb exploded in popularity in 1993, and the people on the Green project saw the imme-diate potential to use Java as a Web programming language. This breathed new life into theproject.

Java allows programmers to create Web pages that contain dynamic and interactivecontent. Developers can also use Java to create large-scale enterprise applications, toenhance the functionality of Web servers (software that provides the content we see in ourWeb browsers), to provide applications for consumer devices (e.g., wireless phones andpersonal digital assistants) and much more.

In 1995, we were carefully following Sun’s development of Java. In November 1995,we attended an Internet conference in Boston in which a representative from Sun gave arousing presentation on Java. As the talk proceeded, it became clear to us that Java wouldplay an important part in developing Internet-based applications. Since its release, Java hasbecome one of the most widely used programming languages in the world.

In addition to its prominence in developing Internet- and intranet-based applications,Java has become a language of choice for implementing software for devices that commu-nicate over a network. Do not be surprised when your new stereo and other devices in yourhome are networked together using Java technology! Although we do not teach Java in thisbook, we have included, as a bonus for Java programmers, Chapter 36, Java Servlets, andChapter 37, JavaServer Pages (both on the CD). Readers interested in learning Java maywish to read our texts, Java How to Program, Fifth Edition and Advanced Java 2 PlatformHow to Program.

Page 16: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

16 Introduction to Computers and the Internet Chapter 1

1.16 Microsoft .NETIn June 2000, Microsoft announced its .NET initiative, a broad new vision for integratingthe Internet and the Web in the development, engineering, distribution and use of software.Rather than forcing developers to use a single programming language, the .NET initiativepermits them to create .NET applications in any .NET-compatible language (e.g.,JScript .NET, C#, Visual Basic .NET, Visual C++ .NET and many others). Part of the ini-tiative includes Microsoft’s ASP.NET technology, which allows programmers to createWeb-based, database-intensive, client/server applications. Using JScript .NET as thescripting language, we provide a thorough introduction to ASP.NET in Chapter 23 and acase study using ASP.NET and XML to build an online discussion forum in Chapter 24.

The .NET strategy extends the idea of software reuse to the Internet by allowing pro-grammers to concentrate on their specialties without having to implement every componentof every application. Instead, companies can buy Web services, which are Web-based pro-grams that organizations can incorporate into their systems to speed the Web-application-development process. [Note: Microsoft’s .NET strategy is not the only approach to Webservices. Several Java-based systems for developing Web services also exist. We providea more significant discussion of Web services, including examples and information aboutdeveloping Web services, in Chapter 20, XML, and Chapter 23, ASP.NET.]

The Microsoft .NET Framework is at the heart of the .NET strategy. This frameworkexecutes applications and Web services, contains a class library (called the FrameworkClass Library, or FCL) and provides many other programming capabilities used to build.NET applications. In Chapters 23–24 of this book, you will learn how to develop .NETsoftware with ASP.NET. Steve Ballmer, Microsoft’s CEO, stated in May 2001 thatMicrosoft was “betting the company” on .NET. Such a dramatic commitment surely indi-cates a bright future for ASP.NET programmers.

1.17 Dynamic HTMLDynamic HTML is geared to developing high-performance Web-based applications inwhich much of an application is executed directly on the client rather than on the server.Dynamic HTML makes Web pages “come alive” by providing stunning multimedia effectsthat include animation, audio and video. What exactly is Dynamic HTML? This is an in-teresting question, because if you walk into a computer store or scan online software stores,you will not find a product by this name offered for sale. Rather, Dynamic HTML, whichhas at least two versions—Microsoft’s and Netscape’s—consists of a number of technolo-gies that are freely available and are known by other names. Microsoft Dynamic HTML, forexample, includes XHTML, JavaScript, Cascading Style Sheets, the Dynamic HTML ob-ject model and event model, and ActiveX controls—each of which we discuss in thisbook—and other related technologies. Netscape Dynamic HTML provides similar capabil-ities.1 Microsoft Dynamic HTML is introduced in Chapters 13–16, and additional DynamicHTML features are presented as bonus material in Chapters 30–31 (on the CD).

Page 17: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 17

1.18 Internet and World Wide Web How to ProgramIn 1998, we saw an explosion of interest in the Internet and the World Wide Web. We im-mersed ourselves in these technologies, and a clear picture started to emerge in our minds ofthe next direction to take in writing textbooks for introductory programming courses. Elec-tronic commerce, or e-commerce, as it is typically called, began to dominate the business,financial and computer industry news. This was a total reconceptualization of the way busi-ness was conducted. We still wanted to teach programming principles, but we felt compelledto do it in the context of the technologies that businesses and organizations needed to createInternet-based and Web-based applications. With this realization, the first edition of Internetand World Wide Web How to Program was born and published in December of 1999.

Internet and World Wide Web How to Program, Third Edition teaches programminglanguages and programming-language principles. In addition, we focus on the broad rangeof technologies that will help you build real-world Internet-based and Web-based applica-tions that interact with other applications and with databases. These capabilities allow pro-grammers to develop the kinds of enterprise-level, distributed applications popular inindustry today. If you have been hearing a great deal about the Internet and the World WideWeb lately, and if you are interested in developing applications to run over the Internet andthe Web, then learning the software-development techniques discussed in this book couldbe the key to challenging and rewarding career opportunities for you. Please be sure tocheck out Appendix G, Career Opportunities (on the CD).

In this book, you will learn computer programming and basic principles of computer sci-ence and information technology. You also will learn proven software-developmentmethods—top-down stepwise-refinement, functionalization and object-based programming.JavaScript is our primary programming language, a condensed programming language that isespecially designed for developing Internet- and Web-based applications. Chapters 7–12present a rich discussion of JavaScript and its capabilities, including dozens of completeexamples followed by screen images that illustrate typical program inputs and outputs.

After you learn programming principles from the detailed JavaScript discussions, wepresent condensed treatments of seven other popular Internet/Web programming languagesfor building the server side of Internet- and Web-based client/server applications. In Chapters23–24, we discuss ASP.NET—Microsoft’s technology for server-side scripting. ASP.NETpages can be written in several full-scale programming languages, including Visual Basic.NET and C#; however, since this book focuses on scripting languages, we code ASP.NETpages using Microsoft’s JScript .NET. Chapter 25 introduces Perl—throughout the 1990s,Perl was the most widely used scripting language for programming Web-based applications,and it is certain to remain popular for many years. Chapter 26 introduces PHP, another pop-ular scripting language. Chapter 27 presents ColdFusion, a tag-based, server-side technologyfrom Macromedia designed to build powerful database-intensive Web applications. Chapter32 introduces the VBScript scripting language that is used in Chapters 33 and 34 to codeActive Server Pages (ASP), the predecessor to ASP.NET. Chapter 35 familiarizes the reader

1. Microsoft Dynamic HTML and Netscape Dynamic HTML are incompatible. In this book, wefocus on Microsoft Dynamic HTML. We have tested all of the Dynamic HTML examples in Mi-crosoft Internet Explorer 6 and Netscape 7.1. All of these examples execute in Microsoft Inter-net Explorer; most do not execute in Netscape 7.1. We have posted the testing results atwww.deitel.com. The Macromedia® Flash™ material we present in Chapters 17–18 executesproperly in the latest Microsoft and Netscape browsers.

Page 18: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

18 Introduction to Computers and the Internet Chapter 1

with Python, a cross-platform, object-oriented scripting language comparable to Perl andPHP. Finally, Chapters 36–37 are bonus chapters for Java programmers on Java servlets andJavaServer Pages (JSP). [Note: Due to the volume of information presented in this book,Chapters 30 and higher can be found on accompanying CD-ROM as Adobe PDF documents.You can download the Adobe® Reader® (formerly Adobe Acrobat® Reader) program fromwww.adobe.com/products/acrobat/readstep2.html.]

Well, there you have it! We have worked hard to create this book, which is loaded withhundreds of working, live-code examples, programming tips, self-review exercises andanswers, challenging exercises and projects and numerous study aids to help you master thematerial. The technologies we introduce will help you write Web-based applicationsquickly and effectively. As you read the book, if something is not clear or if you find anerror, please write to us at [email protected]. We will respond promptly, and we willpost corrections, clarifications and additional materials on our Web site

www.deitel.com

Prentice Hall maintains www.prenhall.com/deitel—a Web site dedicated to ourPrentice Hall textbooks, multimedia packages and Web-based e-learning training products.For each of our books, the site contains “Companion Web Sites” that include frequentlyasked questions (FAQs), sample downloads, errata, updates, additional self-test questions,Microsoft® PowerPoint® slides and other resources.

You are about to start on a challenging and rewarding path. We hope you will enjoylearning with Internet and World Wide Web How to Program, Third Edition!

1.19 Web Resourceswww.deitel.comPlease check this site for updates, corrections and additional resources for all Deitel & Associates,Inc., publications.

netforbeginners.about.comThe About.com Internet for Beginners guide provides valuable resources for further exploration ofthe history and workings of the Internet and the World Wide Web.

www.learnthenet.com/english/index.htmlLearn the Net is a Web site containing a complete overview of the Internet, the World Wide Web andthe underlying technologies. The site contains much information appropriate for novices.

www.w3.orgThe World Wide Web Consortium (W3C) Web site offers a comprehensive description of Web tech-nologies. For each Internet technology with which the W3C is involved, the site provides a descrip-tion of the technology, its benefits to Web designers, the history of the technology and the future goalsof the W3C in developing the technology.

www.ukans.edu/cwis/units/coms2/class/intro/index.htmThis University of Kansas Web site gives a comprehensive overview of the Internet and the WorldWide Web, with an interactive slide presentation of each topic covered.

members.tripod.com/~teachers/index.htmlThis site introduces novices to the Internet and the World Wide Web, targeting users who will be surf-ing the Web in a classroom setting.

www.ed.gov/pubs/OR/ConsumerGuides/internet.htmlThe U.S. Department of Education’s Consumer Guide provides a clear, concise tutorial on the struc-ture, content and compatibilities of the Internet and the Web.

Page 19: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 19

SUMMARY• In an era of steadily rising costs, computing costs have been decreasing dramatically because of

rapid developments in both hardware and software technologies.

• Technologies such as Extensible HyperText Markup Language (XHTML), JavaScript, DynamicHTML, Flash, Dreamweaver and Extensible Markup Language (XML) are used to build the por-tions of Web-based applications that reside on the client side (i.e., the portions of applications thattypically run on Web browsers such as Netscape or Microsoft’s Internet Explorer).

• Technologies such as Web servers, databases, ASP.NET, CGI, Perl, PHP and ColdFusion are usedto build the server side of Web-based applications. These portions of applications typically run on“heavy-duty” computer systems on which organizations’ business-critical Web sites reside.

• A computer is a device capable of performing computations and making logical decisions atspeeds billions of times faster than human beings can.

• Computers process data under the direction of sets of instructions called computer programs.

• Computer programs guide the computer through orderly sets of actions specified by people calledcomputer programmers.

• The various devices, such as the keyboard, screen, disks, memory and processing units, that com-prise a computer system are referred to as hardware.

• The computer programs that run on a computer are referred to as software. Programmers write theinstructions that comprise software in various programming languages, some that the computercan apply directly and others that require intermediate translation steps.

• Research activity in the 1960s resulted in the evolution of structured programming—a disciplinedapproach to writing programs that are clearer and easier to test, debug and modify.

• In the late 1960s, ARPA, the USA Advanced Research Projects Agency of the Department of De-fense rolled out the blueprints for networking the main computer systems of about a dozen ARPA-funded universities and research institutions. ARPA then proceeded to implement the ARPANET,the predecessor to today’s Internet.

• In 1977, Apple Computer popularized personal computing. Initially, it was a hobbyist’s dream,but computers quickly became economical enough for people to buy for personal use.

• In 1981, IBM, the world’s largest computer vendor, introduced the IBM Personal Computer, le-gitimizing computing in business, industry and government organizations.

• Information is easily shared across computer networks such as the Internet in which some com-puters, called servers, offer common stores of programs and data that may be used by client com-puters distributed throughout the network—hence the term client/server computing.

• The World Wide Web allows computer users to locate and view multimedia-based documents(i.e., documents with text, graphics, animations, audios or videos) on almost any subject.

• In 1990, Tim Berners-Lee of CERN (the European Organization for Nuclear Research) developedthe World Wide Web and several communication protocols that form the backbone of the Web.

• The use of the Web exploded with the availability in 1993 of the Mosaic browser, which featureda user-friendly graphical interface. Marc Andreessen, whose team at the National Center for Su-percomputing Applications (NCSA) developed Mosaic, went on to found Netscape, the companythat many people credit with initiating the explosive Internet economy of the late 1990s.

• In October 1994, Tim Berners-Lee founded the World Wide Web Consortium (W3C)—an organi-zation devoted to developing nonproprietary, interoperable technologies for the World Wide Web.

• Every year or two, the capacities of computers tend to double, especially the amount of memorythey have in which to execute programs, the amount of secondary storage (e.g., hard disk drives)

Page 20: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

20 Introduction to Computers and the Internet Chapter 1

they have to hold programs and data over the longer term, and the processor speeds—the speed atwhich computers execute their programs (i.e., do their work).

• Objects are essentially reusable software components that model real-world items.

• Using a modular, object-oriented design and implementation approach can make software devel-opment groups much more productive than was possible with previous popular programmingtechniques, such as structured programming.

• Object-oriented programs are often easier to understand, correct and modify.

• Before object-oriented languages appeared, programming languages (e.g., Fortran, Pascal, Basicand C) focused on actions (verbs), rather than things or objects (nouns). This style of programmingis called procedural programming.

• Libraries of reusable components, such as MFC (Microsoft Foundation Classes), Sun Microsys-tems’s Java Foundation Classes, Microsoft’s .NET Framework Class Library and those producedby other software development organizations, can greatly reduce the effort it takes to implementcertain kinds of systems.

• Object-oriented programming tends to produce software that is more understandable, better orga-nized and easier to maintain.

• JavaScript is an object-based scripting language with strong support for proper software engineer-ing techniques.

• JavaScript was created by Netscape. Microsoft’s version of JavaScript is called JScript. BothNetscape and Microsoft have been instrumental in the standardization of JavaScript/JScript byECMA International as ECMAScript.

• The latest generation of JScript, JScript .NET, has many characteristics of a fully object-oriented,high-level programming language, but retains all the features of a scripting language.

• Ensuring a consistent look-and-feel on client-side browsers is one of the great challenges of de-veloping Web-based applications.

• Java allows programmers to create Web pages with dynamic and interactive content. Developerscan use it to create large-scale enterprise applications, to enhance the functionality of Web servers(software that provides the content we see in our Web browsers), to provide applications for con-sumer devices (e.g., wireless phones and personal digital assistants) and much more.

• The .NET strategy extends the idea of software reuse to the Internet by allowing programmers to con-centrate on their specialties without having to implement every component of every application.

• Web services are Web-based programs that organizations can incorporate into their systems tospeed the Web-application-development process.

• The Microsoft .NET Framework executes applications and Web services, contains a class library(called the Framework Class Library or FCL) and provides many other programming capabilitiesused to build .NET applications.

• Dynamic HTML is geared to developing high-performance Web-based applications in whichmuch of an application is executed directly on the client rather than on the server.

• Dynamic HTML makes Web pages “come alive” by providing stunning multimedia effects thatinclude animation, audio and video.

TERMINOLOGYASP.NET bandwidthaction BasicActionScript browser

Page 21: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 21

ActiveX Data Objects .NET (ADO.NET) CAda C#Apache Web Server C++arithmetic and logic unit (ALU) Cascading Style Sheets (CSS)ARPA central processing unit (CPU)ARPANET clientassembly language client/server computingclient-side scripting multithreadingCobol multi-tier applicationColdFusion MySQL databasecompiler .NET Frameworkcomputer Netscapecomputer program objectcomputer programmer object-based programming (OBP)database object-oriented programming (OOP)decision output devicedisk output unitDynamic HTML packet switchinge-commerce Pascale-mail PerlExtensible HyperText Markup personal computing

Language (XHTML) Photoshop ElementsExtensible Markup Language (XML) PHPFortran platformGraphical User Interface (GUI) primary memory (RAM)hardware procedural programminghigh-level language programming languageinput device Pythoninput unit reusable componentinput/output (I/O) scripting languageInternet secondary storage unitInternet Explorer 6 server-side scriptingInternet Information Services (IIS) Simula 67interpreter softwareintranet software reuseIP (Internet Protocol) structured programmingJava Sun MicrosystemsJava servlet supercomputerJavaScript TCP (Transmission Control Protocol)JavaServer Pages (JSP) TCP/IPJScript translator programJScript .NET UNIXKIS (keep it simple) VBScriptmachine language Visual Basic .NETmemory unit W3C RecommendationMicrosoft Web servermultimedia Web servicesmultitasking World Wide Web Consortium (W3C)

Page 22: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

22 Introduction to Computers and the Internet Chapter 1

SELF-REVIEW EXERCISES1.1 Fill in the blanks in each of the following statements:

a) The company that popularized personal computing was .b) The computer that made personal computing legitimate in business and industry was the

.c) Computers process data under the control of sets of instructions called .d) The six key logical units of the computer are the , , ,

, and .e) The three classes of languages discussed in the chapter are , and

.f) The programs that translate high-level language programs into machine language are

called or interpreters.

1.2 Fill in the blanks in each of the following statements:a) The programming language was created by Professor Nicklaus Wirth and

was intended for academic use.b) One important capability of Ada is called ; this allows programmers to spec-

ify that many activities are to occur in parallel.c) The was the predecessor to the Internet.d) The information-carrying capacity of a communications medium like the Internet is

called .e) The acronym TCP/IP stands for .

1.3 Fill in the blanks in each of the following statements.a) The allows computer users to locate and view multimedia-based documents

on almost any subject over the Internet.b) developed the World Wide Web and several of the communications proto-

cols that form the backbone of the Web.c) are essentially reusable software components that model items in the real

world.d) C initially became widely known as the development language of the oper-

ating system.e) In a typical client/server relationship, the requests that some action be per-

formed and the performs the action and responds.

ANSWERS TO SELF-REVIEW EXERCISES1.1 a) Apple. b) IBM Personal Computer. c) programs (or scripts). d) input unit, output unit,memory unit, arithmetic and logic unit, central processing unit, secondary storage unit. e) machinelanguages, assembly languages, high-level languages. f) compilers.

1.2 a) Pascal. b) multitasking. c) ARPANET. d) bandwidth. e) Transmission Control Protocol/Internet Protocol.

1.3 a) World Wide Web. b) Tim Berners-Lee. c) Objects. d) UNIX. e) client, server.

EXERCISES1.4 Categorize each of the following items as either hardware or software:

a) CPUb) compilerc) ALUd) interpreter

Page 23: Introduction to Computers and the · PDF file2 Introduction to Computers and the Internet Chapter 1 ... 1.11 Key Software Trend: ... Chapter 1 Introduction to Computers and the Internet

Chapter 1 Introduction to Computers and the Internet 23

e) input unitf) an editor program

1.5 Fill in the blanks in each of the following statements:a) Which logical unit of the computer receives information from outside the computer for

use by the computer? .b) The process of instructing the computer to solve specific problems is called .c) What type of computer language uses English-like abbreviations for machine-language

instructions? .d) Which logical unit of the computer sends information that has already been processed by

the computer to various devices so that the information may be used outside the computer?.

e) Which logical unit of the computer retains information? .f) Which logical unit of the computer performs calculations? .g) Which logical unit of the computer makes logical decisions? .h) The level of computer language most convenient to the programmer for writing programs

quickly and easily is .i) The only language that a computer can directly apply is called that computer’s

.j) Which logical unit of the computer coordinates the activities of all the other logical

units? .

1.6 What is the relationship between JavaScript, JScript and ECMAScript?

1.7 Fill in the blanks in each of the following statements:a) Microsoft’s .NET initiative permits developers to create .NET applications in any .NET-

compatible language (e.g., , , and ).b) The Microsoft .NET Framework contains a class library called the that pro-

vides many programming capabilities used to build .NET applications.c) are Web-based programs that organizations can incorporate into their sys-

tems to speed the Web-application-development process.