introduction to computers, thecomputers, the internet and...

34
1 1 1 1 1 Introduction to Computers, the Computers, the Internet and the Web Internet and the Web © 2007 Pearson Education, Inc. All rights reserved.

Upload: others

Post on 17-Apr-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

1

1111Introduction to Computers, theComputers, the

Internet and the WebInternet and the Web

© 2007 Pearson Education, Inc. All rights reserved.

Page 2: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

2

The chief merit of language is clearness.—Galen

Our life is frittered away by detail. …Simplify, i lifsimplify.

—Henry David Thoreau

He had a wonderful talent for packing thought close and rendering it portableclose, and rendering it portable.

—Thomas B. Macaulay

© 2007 Pearson Education, Inc. All rights reserved.

Page 3: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

3

Man is still the most extraordinary computer of all.—John F. Kennedy

Things are always at their best in their beginning.—Blaise Pascal.

© 2007 Pearson Education, Inc. All rights reserved.

Page 4: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

4

OBJECTIVESOBJECTIVESIn this chapter you will learn:

Basic computer concepts.The different types of programming languages.Th hi t f th C i lThe history of the C programming language.The purpose of the C Standard Library.The elements of a typical C program developmentThe elements of a typical C program development environment.Why it is appropriate to learn C in a first programmingWhy it is appropriate to learn C in a first programming course.How C provides a foundation for further study of

f Cprogramming languages in general and of C++, Java and C# in particular.The history of the Internet and the World Wide Web

© 2007 Pearson Education, Inc. All rights reserved.

The history of the Internet and the World Wide Web.

Page 5: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

5

1.1 Introduction1.2 What Is a Computer?1.3 Computer Organization1.4 Early Operating Systems1.5 Personal, Distributed and Client/Server Computing1.6 Machine Languages, Assembly Languages and

High-Level Languages1.7 Fortran, COBOL, Pascal and Ada1.7 Fortran, COBOL, Pascal and Ada1.8 History of C1.9 C Standard Libraryy

© 2007 Pearson Education, Inc. All rights reserved.

Page 6: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

6

1.10 C++1.11 Java1.12 BASIC, Visual Basic, Visual C++, Visual C# and .NET1.13 Key Software Trend: Object Technology1.14 Typical C Program Development Environment1.15 Hardware Trends1.16 History of the Internet1 17 History of the World Wide Web1.17 History of the World Wide Web1.18 Notes About C and This Book1 19 Web Resources1.19 Web Resources

© 2007 Pearson Education, Inc. All rights reserved.

Page 7: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

7

1.1 Introduction

We will learn– The C programming language– Structured programming and proper programming

h itechniquesThis book also covers C++

– Chapters 18-27 introduce the C++ programming languageThis course is appropriate for

– Technically oriented people with little or no programming experience

– Experienced programmers who want a deep and rigorousExperienced programmers who want a deep and rigorous treatment of the language

© 2007 Pearson Education, Inc. All rights reserved.

Page 8: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

8

1.2 What is a Computer?p

Computer p– Device capable of performing computations and making

logical decisionsC d d h l f f– Computers process data under the control of sets of instructions called computer programs

HardwareHardware – Various devices comprising a computer– Keyboard, screen, mouse, disks, memory, CD-ROM, andKeyboard, screen, mouse, disks, memory, CD ROM, and

processing unitsSoftware

– Programs that run on a computer

© 2007 Pearson Education, Inc. All rights reserved.

Page 9: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

9

1.3 Computer Organizationp gSix logical units in every computer:

1. Input unit- Obtains information from input devices (keyboard, mouse)

2. Output unit p- Outputs information (to screen, to printer, to control other devices)

3. Memory unit - Rapid access, low capacity, stores input informationp d ccess, ow c p c y, s o es pu o o

4. Arithmetic and logic unit (ALU) - Performs arithmetic calculations and logic decisions

5 Central processing unit (CPU)5. Central processing unit (CPU) - Supervises and coordinates the other sections of the computer

6. Secondary storage unit Ch l t hi h it t- Cheap, long-term, high-capacity storage

- Stores inactive programs

© 2007 Pearson Education, Inc. All rights reserved.

Page 10: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

10

1.4 Early Operating Systemsy p g y

Batch processing– Do only one job or task at a time

Operating systems – Manage transitions between jobs– Increased throughput

- Amount of work computers process

Multitasking C t h d b j b t k– Computer resources are shared by many jobs or tasks

TimesharingC t ll ti f ’ j b th– Computer runs a small portion of one user’s job then moves on to service the next user

© 2007 Pearson Education, Inc. All rights reserved.

Page 11: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

11

1.5 Personal Computing, Distributed Computing and Client/Server ComputingComputing, and Client/Server Computing

Personal computers p– Economical enough for individual

Distributed computingDistributed computing – Computing distributed over networks

Client/server computingClient/server computing– Sharing of information across computer networks between

file servers and clients (personal computers)file servers and clients (personal computers)

© 2007 Pearson Education, Inc. All rights reserved.

Page 12: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

12

1.6 Machine Languages, Assembly Languages and High level LanguagesLanguages, and High-level Languages

Three types of programming languages1. Machine languages

- Strings of numbers giving machine specific instructions- Example:- Example:

+1300042774

+1400593419

+1200274027+1200274027

2. Assembly languages- English-like abbreviations representing elementary computer

operations (translated via assemblers)operations (translated via assemblers)- Example:

LOAD BASEPAY

ADD OVERPAYADD OVERPAY

STORE GROSSPAY

© 2007 Pearson Education, Inc. All rights reserved.

Page 13: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

13

1.6 Machine Languages, Assembly Languages and High level LanguagesLanguages, and High-level Languages

Three types of programming languages (continued)yp p g g g g ( )3. High-level languages

- Codes similar to everyday Englishy y g- Use mathematical notations (translated via compilers)- Example:

grossPay = basePay + overTimePay

© 2007 Pearson Education, Inc. All rights reserved.

Page 14: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

14

1.7 Fortran, COBOL, Pascal and Ada, ,

Fortran– developed by IBM Corporation in the 1950s– used for scientific and engineering applications thatg g pp

require complex mathematical computationsCOBOL

– developed in 1959 by computer manufacturers, thegovernment and industrial computer usersused for commercial applications that require precise and– used for commercial applications that require precise andefficient manipulation of large amounts of data

© 2007 Pearson Education, Inc. All rights reserved.

Page 15: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

15

1.7 Fortran, COBOL, Pascal and Ada, ,

Pascal– Developed by Professor Niklaus Wirth in 1971– Designed for teaching structured programmingg g p g g

Ada– Developed under the sponsorship of the U.S. Departmentp p p p

of Defense (DOD) during the 1970s and early 1980s– Able to perform multitasking

© 2007 Pearson Education, Inc. All rights reserved.

Page 16: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

16

1.8 History of Cy

C – Evolved by Ritchie from two previous programming languages,

BCPL and B– Used to develop UNIXUsed to develop UNIX– Used to write modern operating systems– Hardware independent (portable)– By late 1970's C had evolved to "Traditional C"

StandardizationM li ht i ti f C i t d d i tibl– Many slight variations of C existed, and were incompatible

– Committee formed to create a "unambiguous, machine-independent" definition

– Standard created in 1989, updated in 1999

© 2007 Pearson Education, Inc. All rights reserved.

Page 17: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

17

Portability Tip 1.1

Because C is a hardware-independent, widely il bl l li ti itt i Cavailable language, applications written in C

can run with little or no modifications on a wide range of different computer systemsrange of different computer systems.

© 2007 Pearson Education, Inc. All rights reserved.

Page 18: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

18

1.9 C Standard Libraryy

C programs consist of pieces/modules called p g pfunctions

– A programmer can create his own functionsp og a e ca c eate s ow u ct o s- Advantage: the programmer knows exactly how it works- Disadvantage: time consuming

– Programmers will often use the C library functions- Use these as building blocks

– Avoid re-inventing the wheel- If a pre-made function exists, generally best to use it rather

than write your ownthan write your own- Library functions carefully written, efficient, and portable

© 2007 Pearson Education, Inc. All rights reserved.

Page 19: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

19

Performance Tip 1.1

Using Standard C library functions insteadf iti bl iof writing your own comparable versions can

improve program performance, because these functions are carefully written to performfunctions are carefully written to perform efficiently.

© 2007 Pearson Education, Inc. All rights reserved.

Page 20: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

20

Portability Tip 1.2

Using Standard C library functions insteadf iti bl iof writing your own comparable versions can

improve program portability, because these functions are used in virtually all Standard Cfunctions are used in virtually all Standard C implementations.

© 2007 Pearson Education, Inc. All rights reserved.

Page 21: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

21

1.10 C++

C++– Superset of C developed by Bjarne Stroustrup at Bell Labs– "Spruces up" C, and provides object-oriented capabilitiesp p , p j p– Dominant language in industry and academia

Learning C++Learning C++– Because C++ includes C, some feel it is best to master C,

then learn C++– Starting in Chapter 18, we begin our introduction to C++

© 2007 Pearson Education, Inc. All rights reserved.

Page 22: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

22

1.11 Java

Java is used to – Create Web pages with dynamic and interactive content – Develop large-scale enterprise applications– Enhance the functionality of Web servers– Provide applications for consumer devices (such as cell

phones pagers and personal digital assistants)phones, pagers and personal digital assistants)Java How to Program

Closely followed the development of Java by Sun– Closely followed the development of Java by Sun– Teaches first-year programming students the essentials of

graphics, images, animation, audio, video, database, g p gnetworking, multithreading and collaborative computing

© 2007 Pearson Education, Inc. All rights reserved.

Page 23: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

23

1.12 BASIC, Visual Basic, Visual C++, Visual C# and NETVisual C# and .NET

BASIC– Developed in the mid-1960s by Professors John Kemeny

and Thomas Kurtz of Dartmouth College as a language forwriting simple programs

Visual Basic– Introduced by Microsoft in 1991 to simplify the process of

making Windows applicationsVisual Basic Visual C++ and Visual C#Visual Basic, Visual C++, and Visual C#

– Designed for Microsoft’s .NET programming platform

© 2007 Pearson Education, Inc. All rights reserved.

Page 24: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

24

1.13 Key Software Trend: Object TechnologyTechnology

Objects j– Reusable software components that model items in the real

world– Meaningful software units

- Date objects, time objects, paycheck objects, invoice objects, i j i j fi j jaudio objects, video objects, file objects, record objects, etc.

- Any noun can be represented as an objectVery reusable– Very reusable

– More understandable, better organized, and easier to maintain than procedural programmingp p g g

– Favor modularity

© 2007 Pearson Education, Inc. All rights reserved.

Page 25: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

25

1.14 Typical C Program Development EnvironmentEnvironment

Phases of C++ Programs:–Edit–Preprocess–Compile–LinkL d–Load

–Execute

Fi 1 1 | T i l C d l t i t

© 2007 Pearson Education, Inc. All rights reserved.

Fig. 1.1 | Typical C development environment.

Page 26: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

26

Common Programming Error 1.1

Errors like division-by-zero occur as a program runs, th ll d tiso these errors are called runtime errors or

execution-time errors. Divide-by-zero is generally a fatal error, i.e., an error that causes the program tofatal error, i.e., an error that causes the program to terminate immediately without successfully performing its job. Nonfatal errors allow programs to run to completion, often producing incorrect results. [Note: On some systems, divide-by-zero is not a fatal error Please see your system documentation ]a fatal error. Please see your system documentation.]

© 2007 Pearson Education, Inc. All rights reserved.

Page 27: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

27

1.15 Hardware Trends

Every year or two the following approximately y y g pp ydouble:

– Amount of memory in which to execute programsou t o e o y w c to e ecute p og a s– Amount of secondary storage (such as disk storage)

- Used to hold programs and data over the longer termp g g– Processor speeds

- The speeds at which computers execute their programs

© 2007 Pearson Education, Inc. All rights reserved.

Page 28: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

28

1.16 History of the Internety

The Internet enables– Quick and easy communication via e-mail– International networking of computers

P k t it hiPacket switching– The transfer of digital data via small packets– Allows multiple users to send and receive data simultaneouslyAllows multiple users to send and receive data simultaneously

No centralized control– If one part of the Internet fails, other parts can still operate

TCP/IPBandwidth

– Information carrying capacity of communications lines

© 2007 Pearson Education, Inc. All rights reserved.

Page 29: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

29

1.17 History of the World Wide Weby

World Wide Web – Locate and view multimedia-based documents on almost

any subject– Makes information instantly and conveniently accessible

worldwide– Possible for individuals and small businesses to get

worldwide exposureChanging the way business is done– Changing the way business is done

© 2007 Pearson Education, Inc. All rights reserved.

Page 30: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

30

1.18 General Notes About Cand This Bookand This Book

Program clarityg y– Programs that are convoluted are difficult to read,

understand, and modifyC is a portable language

– Programs can run on many different computers– However, portability is an elusive goal

We will do a careful walkthrough of C– Some details and subtleties are not covered– If you need additional technical details

Read the C standard document- Read the C standard document- Read the book by Kernigan and Ritchie

© 2007 Pearson Education, Inc. All rights reserved.

Page 31: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

31

Good Programming Practice 1.1

Write your C programs in a simple and t i htf d Thi i tistraightforward manner. This is sometimes

referred to as KIS (“keep it simple”). Do not “stretch” the language by trying bizarre usagesstretch the language by trying bizarre usages.

© 2007 Pearson Education, Inc. All rights reserved.

Page 32: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

32

Portability Tip 1.3

Although it is possible to write portable th blprograms, there are many problems

between different C compilers and different computers that make portability difficult tocomputers that make portability difficult to achieve. Simply writing programs in C does not guarantee portability. The progammernot guarantee portability. The progammer will often need to deal directly with complex computer variations.p

© 2007 Pearson Education, Inc. All rights reserved.

Page 33: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

33

Software Engineering Observation 1.1

Read the manuals for the version of C you i R f th lare using. Reference these manuals

frequently to be sure you are aware of the rich collection of C features and that you arerich collection of C features and that you are using these features correctly.

© 2007 Pearson Education, Inc. All rights reserved.

Page 34: Introduction to Computers, theComputers, the Internet and ...ocw.snu.ac.kr/sites/default/files/NOTE/2579.pdf1. Input unit-Obtains information from input devices (keyboard, mouse) 2

34

Software Engineering Observation 1.2

Your computer and compiler are good t h If t h f tteachers. If you are not sure how a feature of C works, write a sample program with that feature compile and run the programthat feature, compile and run the program and see what happens.

© 2007 Pearson Education, Inc. All rights reserved.