Presentation is loading. Please wait.

Presentation is loading. Please wait.

 2008 Pearson Education, Inc. All rights reserved. 1 1 1 Introduction to Computers, the Internet and World Wide Web.

Similar presentations


Presentation on theme: " 2008 Pearson Education, Inc. All rights reserved. 1 1 1 Introduction to Computers, the Internet and World Wide Web."— Presentation transcript:

1  2008 Pearson Education, Inc. All rights reserved. 1 1 1 Introduction to Computers, the Internet and World Wide Web

2  2008 Pearson Education, Inc. All rights reserved. 2 The chief merit of language is clearness. — Galen Our life is frittered away by detail…. Simplify, simplify. — Henry David Thoreau He had a wonderful talent for packing thought close, and rendering it portable. — Thomas B. Macaulay Man is still the most extraordinary computer of all. — John F. Kennedy

3  2008 Pearson Education, Inc. All rights reserved. 3 OBJECTIVES In this chapter you’ll learn:  Basic hardware and software concepts.  Object-technology concepts, such as classes, objects, attributes, behaviors, encapsulation and inheritance.  The different types of programming languages.  A typical C++ program development environment.  The history of the industry-standard object-oriented system modeling language, the UML.  The history of the Internet and the World Wide Web, and the Web 2.0 phenomenon.  To test-drive C++ applications in two popular C++ environments— GNU C++ running on Linux and Microsoft’s Visual C++® on Windows® XP.  What open source is, and two popular C++ open source libraries— Ogre for graphics and game programming, and Boost for broadly enhancing the capabilities of the C++ Standard Library.

4  2008 Pearson Education, Inc. All rights reserved. 4 1.1 Introduction 1.2 What Is a Computer? 1.3 Computer Organization 1.4 Early Operating Systems 1.5 Personal, Distributed and Client/Server Computing 1.6 The Internet and the World Wide Web 1.7 Web 2.0 1.8 Machine Languages, Assembly Languages and High-Level Languages 1.9 History of C and C++ 1.10 C++ Standard Library 1.11 History of Java 1.12 Fortran, COBOL, Pascal and Ada 1.13 Basic, Visual Basic, Visual C++, C# and.NET 1.14 Key Software Trend: Object Technology 1.15 Typical C++ Development Environment 1.16 Notes About C++ and C++ How to Program, 5/e 1.17 Test-Driving a C++ Application 1.18 Software Technologies 1.19 Game Programming with the Ogre Libraries 1.20 Future of C++: Open Source Boost Libraries, TR1 and C++0x 1.21 Software Engineering Case Study: Introduction to Object Technology and the UML (Required) 1.22 Wrap-Up 1.23 Web Resources

5  2008 Pearson Education, Inc. All rights reserved. 5 1.1 Introduction Hardware Software – Instructions to command computer to perform actions and make decisions Standardized version of C++ – United States American National Standards Institute (ANSI) – Worldwide International Organization for Standardization (ISO) Structured programming Object-oriented programming

6  2008 Pearson Education, Inc. All rights reserved. 6 1.2 What Is a Computer? Computer – Device capable of performing computations and making logical decisions Computer programs – Sets of instructions that control computer’s processing of data – Written by people called computer programmers Hardware – Various devices comprising computer Keyboard, screen, mouse, disks, memory, CD-ROM, processing units, etc.

7  2008 Pearson Education, Inc. All rights reserved. 7 1.3 Computer Organization Six logical units of computer –Input unit “Receiving” section Obtains information from input devices – Keyboard, mouse, microphone, scanner, networks, etc. –Output unit “Shipping” section Places information processed by computer on output devices – Screen, printer, networks, etc. – Information can also be used to control other devices

8  2008 Pearson Education, Inc. All rights reserved. 8 1.3 Computer Organization (Cont.) Six logical units of computer (Cont.) –Memory unit Rapid access, relatively low capacity “warehouse” section Retains information from input unit – Immediately available for processing Retains processed information – Until placed on output devices Often called memory or primary memory –Arithmetic and logic unit (ALU) “Manufacturing” section Performs arithmetic calculations and logic decisions

9  2008 Pearson Education, Inc. All rights reserved. 9 1.3 Computer Organization (Cont.) Six logical units of computer (Cont.) –Central processing unit (CPU) “Administrative” section Coordinates and supervises other sections of computer –Secondary storage unit Long-term, high-capacity “warehouse” section Stores inactive programs or data Secondary storage devices – Hard drives, CDs, DVDs Slower to access than primary memory Less expensive per unit than primary memory

10  2008 Pearson Education, Inc. All rights reserved. 10 1.4 Early Operating Systems Early computers – Single-user batch processing Only one job or task at a time Process data in groups (batches) – Decks of punched cards Users had to wait hours or days for results Operating systems – Software systems that manage transitions between jobs – Increased throughput Amount of work computers can process

11  2008 Pearson Education, Inc. All rights reserved. 11 1.4 Early Operating Systems (Cont.) Multiprogramming – Many jobs or tasks sharing computer’s resources – “Simultaneous” operation of many jobs Timesharing – Special case of multiprogramming – Users access computer through terminals Devices with keyboards and screens Dozens, even hundreds of users – Computer use is shared among all users Performs small portion of one user’s job, then moves on to service next user – Advantage User receives almost immediate responses to requests

12  2008 Pearson Education, Inc. All rights reserved. 12 1.5 Personal, Distributed and Client/Server Computing Personal computers – Popularized in 1977 by Apple Computer Economical enough for individual – Ligitimized in 1981 by IBM Personal Computer – “Standalone” units Computer networks – Connected over telephone lines – Local area networks (LANs) Distributed computing – Organization’s computing distributed over networks

13  2008 Pearson Education, Inc. All rights reserved. 13 1.5 Personal, Distributed and Client/Server Computing (Cont.) Workstations – Provide enormous capabilities Client/server computing – File servers Offer common store of programs and data – Client computers Access file servers across network UNIX, Linux, Mac OS X and Microsoft’s Window-based systems support these capabilities

14  2008 Pearson Education, Inc. All rights reserved. 14 1.6 The Internet and the World Wide Web Internet – Global network of computers Initiated almost four decades ago – Accessible by computers worldwide today World Wide Web – Allows computer users to locate and view multimedia- based documents – Internet has become one of the world’s premier communication mechanisms

15  2008 Pearson Education, Inc. All rights reserved. 15 1.7 Web 2.0 No single definition – explained through a series of Internet trends, Such as the empowerment of the user – Companies, such as eBay, are built almost entirely on community-generated content. Takes advantage of collective intelligence – the idea that collaboration will result in intelligent ideas Tagging, or labeling content, is another key part of the collaborative theme of Web 2.0

16  2008 Pearson Education, Inc. All rights reserved. 16 1.7 Web 2.0 (cont.) Social networking sites – Keep track of users’ interpersonal relationships – Extraordinary growth as part of Web 2.0 Social media sites – Have gained immense popularity due to the increased availability and use of broadband Internet

17  2008 Pearson Education, Inc. All rights reserved. 17 1.7 Web 2.0 (cont.) Blogs – Websites characterized by short postings in reverse chronological order – A major social phenomenon within Web 2.0 – Many bloggers are recognized as part of the media – Companies are reaching out to the blogosphere to track consumer opinions Open source software – Has made it cheaper and easier to start Web 2.0 companies Web services – On the rise, favoring the “webtop” over the desktop in much new development.

18  2008 Pearson Education, Inc. All rights reserved. 18 1.7 Web 2.0 (cont.) Mashups – Combine two or more existing web applications to serve a new purpose – Dependent on small modular pieces and open access to web services APIs, which allow developers to integrate other web services into their applications Advertising is a main source of monetization

19  2008 Pearson Education, Inc. All rights reserved. 19 1.8 Machine Languages, Assembly Languages and High-Level Languages Three types of computer languages –Machine language Only language computer directly understands – “Natural language” of computer – Defined by hardware design Generally consist of strings of numbers – Ultimately 0s and 1s Instruct computers to perform elementary operations Cumbersome for humans Example – +1300042774 +1400593419 +1200274027

20  2008 Pearson Education, Inc. All rights reserved. 20 1.8 Machine Languages, Assembly Languages and High-Level Languages (Cont.) Three types of computer languages (Cont.) –Assembly language English-like abbreviations representing elementary computer operations Clearer to humans Incomprehensible to computers – Convert to machine language by translator programs (assemblers) Example – loadbasepay add overpay store grosspay

21  2008 Pearson Education, Inc. All rights reserved. 21 1.8 Machine Languages, Assembly Languages and High-Level Languages (Cont.) Three types of computer languages (Cont.) –High-level languages Similar to everyday English – Uses common mathematical notations Single statements accomplish substantial tasks Converted to machine language by translator programs (compilers) Interpreter programs – Directly execute high-level language programs – Execute more slowly than the compiled program Example – grossPay = basePay + overTimePay

22  2008 Pearson Education, Inc. All rights reserved. 22 1.9 History of C and C++ History of C – Evolved from BCPL and B Developed by Dennis Ritchie (Bell Laboratories) – Development language of UNIX – Hardware independent Can write portable programs – ANSI and ISO standard for C published in 1990 ANSI/ISO 9899: 1990

23  2008 Pearson Education, Inc. All rights reserved. 23 Portability Tip 1.1 Because C is a standardized, hardware- independent, widely available language, applications written in C often can be run with little or no modification on a wide range of computer systems.

24  2008 Pearson Education, Inc. All rights reserved. 24 1.9 History of C and C++ (Cont.) History of C++ – Extension of C Developed by Bjarne Stroustrup (Bell Laboratories) in e arly 1980s – Provides new features to “spruce up” C – Provides capabilities for object-oriented programming Objects: reusable software components – Model items in the real world Object-oriented programs – Easier to understand, correct and modify

25  2008 Pearson Education, Inc. All rights reserved. 25 1.10 C++ Standard Library C++ programs – Built from pieces called classes and functions C++ Standard Library – Rich collections of existing classes and functions Reusable in new applications

26  2008 Pearson Education, Inc. All rights reserved. 26 Software Engineering Observation 1.1 Use a “building-block” approach to create programs. Avoid reinventing the wheel. Use existing pieces wherever possible. Called software reuse, this practice is central to object-oriented programming.

27  2008 Pearson Education, Inc. All rights reserved. 27 Software Engineering Observation 1.2 When programming in C++, you typically will use the following building blocks: Classes and functions from the C++ Standard Library, classes and functions you and your colleagues create, and classes and functions from various popular third-party libraries.

28  2008 Pearson Education, Inc. All rights reserved. 28 Performance Tip 1.1 Using C++ Standard Library functions and classes instead of writing your own versions can improve program performance, because they are written carefully to perform efficiently. This technique also shortens program development time.

29  2008 Pearson Education, Inc. All rights reserved. 29 Portability Tip 1.2 Using C++ Standard Library functions and classes instead of writing your own improves program portability, because they are included in every C++ implementation.

30  2008 Pearson Education, Inc. All rights reserved. 30 1.11 History of Java Java – Originally for intelligent consumer-electronic devices Designed by Sun Microsystems – Then used for creating Web pages with dynamic content – Now also used to: Develop large-scale enterprise applications Enhance World Wide Web server functionality Provide applications for consumer devices (cell phones, etc.)

31  2008 Pearson Education, Inc. All rights reserved. 31 1.12 FORTRAN, COBOL, Pascal and Ada Fortran – FORmula TRANslator – Used in engineering applications COBOL – COmmon Business Oriented Language – Used in business software Pascal – Designed to teach structured programming Ada – Capable of multitasking

32  2008 Pearson Education, Inc. All rights reserved. 32 1.13 Basic, Visual Basic, Visual C++, C# and.NET BASIC – Beginner’s All-Purpose Symbolic Instruction Code – Familiarize novices with programming techniques.NET platform – Provides developers with capabilities Visual Basic – Based on BASIC Visual C++ – Based on C++ Visual C# – Based on C++ and Java

33  2008 Pearson Education, Inc. All rights reserved. 33 1.14 Key Software Trend: Object Technology Objects – Reusable software components that model real world items – Meaningful software units Time objects, paycheck objects, record objects, etc. Any noun can be represented as an object – More understandable, better organized and easier to maintain than procedural programming – Libraries of reusable software MFC (Microsoft Foundation Classes)

34  2008 Pearson Education, Inc. All rights reserved. 34 Software Engineering Observation 1.3 Extensive class libraries of reusable software components are available over the Internet. Many of these libraries are free.

35  2008 Pearson Education, Inc. All rights reserved. 35 1.15 Typical C++ Development Environment C++ programs normally undergo six phases – Edit Programmer writes program (and stores source code on disk) – Preprocess Perform certain manipulations before compilation – Compile Compiler translates C++ programs into machine languages – Link Link object code with missing functions and data – Load Transfer executable image to memory – Execute Execute the program one instruction at a time

36  2008 Pearson Education, Inc. All rights reserved. 36 Fig. 1.1 | Typical C++ environment.

37  2008 Pearson Education, Inc. All rights reserved. 37 1.15 Typical C++ Development Environment (Cont.) Input/output – cin Standard input stream Normally inputs from keyboard – cout Standard output stream Normally outputs to computer screen – cerr Standard error stream Displays error messages

38  2008 Pearson Education, Inc. All rights reserved. 38 Common Programming Error 1.1 Errors such as division by zero occur as a program runs, so they are called runtime errors or execution-time errors. Fatal runtime errors cause programs to terminate immediately without having successfully performed their jobs. Nonfatal runtime 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.]

39  2008 Pearson Education, Inc. All rights reserved. 39 1.16 Notes About C++ and C++ How to Program, 5/e This book is geared toward novice programmers – Stresses programming clarity Portability – C and C++ programs can run on many different computers

40  2008 Pearson Education, Inc. All rights reserved. 40 Good Programming Practice 1.1 Write your C++ programs in a simple and straightforward manner. This is sometimes referred to as KIS (“keep it simple”). Do not “stretch” the language by trying bizarre usages.

41  2008 Pearson Education, Inc. All rights reserved. 41 Portability Tip 1.3 Although it is possible to write portable programs, there are many problems among different C and C++ compilers and different computers that can make portability difficult to achieve. Writing programs in C and C++ does not guarantee portability. You often will need to deal directly with compiler and computer variations. As a group, these are sometimes called platform variations.

42  2008 Pearson Education, Inc. All rights reserved. 42 Good Programming Practice 1.2 Read the manuals for the version of C++ you are using. Refer to these manuals frequently to be sure you are aware of the rich collection of C++ features and that you are using them correctly.

43  2008 Pearson Education, Inc. All rights reserved. 43 Good Programming Practice 1.3 Your computer and compiler are good teachers. If after reading your C++ language manual, you still are not sure how a feature of C++ works, experiment using a small “test program” and see what happens. Set your compiler options for “maximum warnings.” Study each message that the compiler generates and correct the programs to eliminate the messages.

44  2008 Pearson Education, Inc. All rights reserved. 44 1.17 Test-Driving a C++ Application Running and interacting with a C++ application – Windows XP Command Prompt – Linux shell

45  2008 Pearson Education, Inc. All rights reserved. 45 Fig. 1.2 | Opening a Command Prompt window and changing the directory. Using the cd command to change directories File location of the GuessNumber application

46  2008 Pearson Education, Inc. All rights reserved. 46 Fig. 1.3 | Running the GuessNumber application. Enter guess number prompt

47  2008 Pearson Education, Inc. All rights reserved. 47 Fig. 1.4 | Entering your first guess. Enter first guess

48  2008 Pearson Education, Inc. All rights reserved. 48 Fig. 1.5 | Entering a second guess and receiving feedback.

49  2008 Pearson Education, Inc. All rights reserved. 49 Fig. 1.6 | Entering additional guesses and guessing the correct number.

50  2008 Pearson Education, Inc. All rights reserved. 50 Fig. 1.7 | Playing the game again.

51  2008 Pearson Education, Inc. All rights reserved. 51 Fig. 1.8 | Exiting the game.

52  2008 Pearson Education, Inc. All rights reserved. 52 Fig. 1.9 | Changing to the GuessNumber application’s directory after logging in to your Linux account.

53  2008 Pearson Education, Inc. All rights reserved. 53 Fig. 1.10 | Compiling the GuessNumber application using the g++ command. Compile the application with the GNU C++ compiler

54  2008 Pearson Education, Inc. All rights reserved. 54 Fig. 1.11 | Running the GuessNumber application.

55  2008 Pearson Education, Inc. All rights reserved. 55 Fig. 1.12 | Entering an initial guess.

56  2008 Pearson Education, Inc. All rights reserved. 56 Fig. 1.13 | Entering a second guess and receiving feedback.

57  2008 Pearson Education, Inc. All rights reserved. 57 Fig. 1.14 | Entering additional guesses and guessing the correct number.

58  2008 Pearson Education, Inc. All rights reserved. 58 Fig. 1.15 | Playing the game again.

59  2008 Pearson Education, Inc. All rights reserved. 59 Fig. 1.16 | Exiting the game.

60  2008 Pearson Education, Inc. All rights reserved. 60 1.18 Software Technologies Agile Software Development – A set of methodologies that try to get software implemented quickly with fewer resources then previous methodologies Refactoring – Reworking code to make it clearer and easier to maintain while preserving its functionality Design patterns – Proven architectures for constructing flexible and maintainable object-oriented software

61  2008 Pearson Education, Inc. All rights reserved. 61 1.18 Software Technologies (cont.) Computer game business – Larger than the first-run movie business – Courses and even majors are now devoted to the sophisticated software techniques used in game programming Open source software – Individuals and companies develop, maintain and evolve software in exchange for the right to use that software for their own purposes – Code generally gets scrutinized by a much larger audience bugs get removed faster – Encourages more innovation

62  2008 Pearson Education, Inc. All rights reserved. 62 1.18 Software Technologies (cont.) Linux – An open source operating system MySQL – An open source database management system PHP – The most popular open source server-side “scripting” language for developing Internet-based applications LAMP – Linux, Apache, MySQL and PHP (or Perl or Python—two other languages used for similar purposes)

63  2008 Pearson Education, Inc. All rights reserved. 63 1.18 Software Technologies (cont.) Ruby on Rails – Combines the scripting language Ruby with the Rails web application framework developed by 37Signals Software as a Service (SaaS) – Software runs on servers – When those servers are updated, all clients worldwide see the new capabilities – No local installation is needed; access the service through a browser

64  2008 Pearson Education, Inc. All rights reserved. 64 1.19 Game Programming with the Ogre Libraries Ogre (Object-Oriented Graphics Rendering Engine) – An open-source project maintained by the Ogre team at www.ogre3d.org www.ogre3d.org – Provides an object-oriented interface for 3D graphics programming, and runs on the Windows, Linux and Mac platforms One of the leading graphics engines – Used in many commercial products including video games OgreAL – A wrapper around the OpenAL audio library – For integrating sound functionality into Ogre code

65  2008 Pearson Education, Inc. All rights reserved. 65 1.20 Future of C++: Open Source Boost Libraries, TR1 and C++0x Bjarne Stroustrup’s vision for the future of C++ – Make C++ easier to learn – Improve library building capabilities – Increase compatibility with the C programming language Boost C++ Libraries – Free, open source libraries created by members of the C++ community – Provide C++ programmers with useful, well-designed libraries that work well with the existing C++ Standard Library – Can be used on a wide variety of platforms with many different compilers

66  2008 Pearson Education, Inc. All rights reserved. 66 1.20 Future of C++: Open Source Boost Libraries, TR1 and C++0x (cont.) Technical Report 1 – Describes the proposed changes to the C++ Standard Library, many of which are based on current Boost libraries C++0x – Working name for the next version of the C++ Standard – Includes some changes to the core language and many of the library additions described in TR1 Boost has grown to over 70 libraries, with more being added regularly – There are thousands of programmers in the Boost community

67  2008 Pearson Education, Inc. All rights reserved. 67 1.21 Software Engineering Case Study: Introduction to Object Technology and the UML (Required) Object orientation – A natural way of thinking about the world and computer programs Unified Modeling Language (UML) – Graphical language that uses common notation – Allows developers to represent object-oriented designs

68  2008 Pearson Education, Inc. All rights reserved. 68 1.21 Software Engineering Case Study (Cont.) Objects – Reusable software components that model real-world items – Examples are all around you People, animals, cars, telephones, microwave ovens, etc. – Have attributes Size, shape, color, weight, etc. – Exhibit behaviors Babies cry, crawl, sleep, etc.; cars accelerate, brake, turn, etc.

69  2008 Pearson Education, Inc. All rights reserved. 69 1.17 Software Engineering Case Study (Cont.) Object-oriented design (OOD) – Models real-world objects in software – Models communication among objects – Encapsulates attributes and operations (behaviors) Information hiding Communication through well-defined interfaces Object-oriented language – Programming in object oriented languages is called object- oriented programming (OOP) – C++ is an object-oriented language Programmers can create user-defined types called classes – Contain data members (attributes) and member functions (behaviors)

70  2008 Pearson Education, Inc. All rights reserved. 70 Software Engineering Observation 1.4 Reuse of existing classes when building new classes and programs saves time, money and effort. Reuse also helps programmers build more reliable and effective systems, because existing classes and components often have gone through extensive testing, debugging and performance tuning.

71  2008 Pearson Education, Inc. All rights reserved. 71 1.17 Software Engineering Case Study (Cont.) Object-Oriented Analysis and Design (OOAD) – Analyze program requirements, then develop solution – Essential for large programs – Plan in pseudocode or UML

72  2008 Pearson Education, Inc. All rights reserved. 72 1.21 Software Engineering Case Study (Cont.) History of the UML – Used to approach OOAD – Object Management Group (OMG) supervised Brainchild of Booch, Rumbaugh and Jacobson – Version 2 is current version UML – Graphical representation scheme – Enables developers to model object-oriented systems – Flexible and extendible


Download ppt " 2008 Pearson Education, Inc. All rights reserved. 1 1 1 Introduction to Computers, the Internet and World Wide Web."

Similar presentations


Ads by Google