Introduction to Computers, the Internet and the World Wide Web

Similar documents
Introduction to Computers, the Internet and the Web Pearson Education, Inc. All rights reserved.

Introduction to OOP Using Java Pearson Education, Inc. All rights reserved.

Introduction to Computers and Visual Basic.Net Pearson Education, Inc. All rights reserved.

C++ Spring Break Packet 11 The Java Programming Language

Internet and Visual Basic Pearson Education, Inc. All rights reserved.

Chapter 1 Introduction to Computers and C++ Programming

0 Introduction: Computer systems and program development

C++ Programming Language Lecture 1 Introduction

Introduction to Programming

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Chapter 1 Introduction to Computers, Programs, and Java

CHAPTER 1 Introduction to Computers and Java

Chapter 1: Introduction to Computers and Java

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java

INTRODUCTION TO THE COURSE

by Pearson Education, Inc. All Rights Reserved.

Chapter 1: An Overview of Computers and Programming Languages. Objectives. Objectives (cont d.) Introduction

1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Introduction to Java Programming

Introduction to Computers and the Internet Pearson Education, Inc. All rights reserved.

Fundamentals of Programming. Lecture 1: Introduction to C Programming

Chapter 1 Introduction to Computers, Programs, and Java

Chapter 1 Introduction to Computers, Programs, and Java. What is a Computer? A Bit of History

Introduction to Computers and Java

Chapter 1: Introduction to Computers, Programs, and Java

An Introduction to Software Engineering. David Greenstein Monta Vista High School

Structured Languages. Rahul Deodhar

Chapter 1: Introduction

Objectives. Chapter 1 Introduction to Computers, Programs, and Java. What is a Computer?

These all slide pages are selected from C How to Program, 5/e and 7/e Asst.Prof.Dr.Mahmut YALCIN

Chapter 1 Introduction to Computers, Programs, and Java

Chapter 11 Program Development and Programming Languages

Lecture 1: Introduction to Java

Introducing Computer Programming

Introduction to Computers and Java. Objectives. Outline. Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich.

Introduction to Computers and Java

Introduction to Computers and Java

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102

Introduction to Computers and Java. Objectives. Outline. Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich.

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Object Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz

Computer Programming-1 CSC 111. Chapter 1 : Introduction

9/11/08 (c) 2008 Matthew J. Rutherford Class (c) 2008 Matthew J. Rutherford Class

Programming. Languages & Frameworks. Hans-Petter Halvorsen, M.Sc. O. Widder. (2013). geek&poke. Available:

Programming Languages and Program Development

Chapter 1 Introduction to Java

Chapter 1 Introduction to Computers, Programs, and Java

Computer Fundamentals

Java Language. Programs. Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs.

Discovering Computers Chapter 13 Programming Languages and Program Development

Advanced Object-Oriented Programming Introduction to OOP and Java

Introduction to Java and OOP. Hendrik Speleers

Introduction to Java. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved.

Introduction to Computers, the Internet and the World Wide Web

Chapter 1 Introduction to Computers, Programs, and Java

Module 1: Introduction to Computers, Programs, and Java

Getting Started. Chapter 1. Java Programming FROM THE BEGINNING. Chapter 1: Getting Started

CHAPTER 1. Objects, UML, and Java

Programming: detailed instructions which tell the computer hardware what to do aka software Computer Science: the study NOT of computers, but of what

BITG 1113: Introduction To Computers And Programming Language LECTURE 1 LECTURE 1 1

Computer Principles and Components 1

Introduction to C++ Programming. Adhi Harmoko S, M.Komp

Chapter 1 Introduction to Computers, Programs, and Java

The Computer System. Hardware = Physical Computer. Software = Computer Programs. People = End Users & Programmers. people

1) Which of the following is an example of a programming language? 1) A) Microsoft Word B) English C) HTML D) Java

Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and

Introduction. Introduction to OOP with Java. Lecture 01: Introduction to OOP with Java - AKF Sep AbuKhleiF -

Introduction to Computers and Java

Introduction to OOP with Java. Instructor: AbuKhleif, Mohammad Noor Sep 2017

INFS 214: Introduction to Computing

Chapter. Focus of the Course. Object-Oriented Software Development. program design, implementation, and testing

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software.

1. Introduction. Java. Fall 2009 Instructor: Dr. Masoud Yaghini

Object Oriented Design

Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/os, etc.

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Chapter 1 Overview of Programming and Problem Solving By C.K. Liang

Chapter 2. Operating-System Structures

Chapter 1. Introduction to Computers and Java Objects. Background information. » important regardless of programming language. Introduction to Java

Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar

What is a programming language?

C H A P T E R 1. Introduction to Computers and Programming

Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

Chapter 2 Operating-System Structures

Principles of Programming Languages. Lecture Outline

Software: Systems and Applications Software

Objects and Classes Lecture 1

Computer Basics 1/6/16. Computer Organization. Computer systems consist of hardware and software.

CS 153 Design of Operating Systems

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

An Operating System History of Operating Systems. Operating Systems. Autumn CS4023

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York

Introduction to Computers

CS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007

Chapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains

Introduction to Computers and Java

Introduction to Java Programming CPIT 202. WEWwwbvxnvbxmnhsgfkdjfcn

Types and Functions of Win Operating Systems

Transcription:

1 2 1 Introduction to Computers, the Internet and the World Wide Web Our life is frittered away by detail. Simplify, simplify. Henry David Thoreau The chief merit of language is clearness. Galen 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 B. Macaulay Egad, I think the interpreter is the hardest to be understood of the two! Richard Brinsley Sheridan Man is still the most extraordinary computer of all. John F. Kennedy 3 4 OBJECTIVES In this chapter you will learn: Basic computer hardware and software concepts. Basic object technology concepts, such as classes, objects, attributes, behaviors, encapsulation, inheritance and polymorphism. The different types of programming languages. Which programming languages are most widely used. A typical Java development environment. Java's role in developing distributed client/server applications for the Internet and the web. The history of the UML the industry-standard objectoriented design language. The history of the Internet and the World Wide Web. To test-drive Java applications. 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 Machine Languages, Assembly Languages and High-Level Languages 1.8 History of C and C++ 1.9 History of Java 1.10 Java Class Libraries 1.11 Fortran, COBOL, Pascal and Ada 1.12 BASIC, Visual Basic, Visual C++, C# and.net 1.13 Typical Java Development Environment 1.14 Notes about Java and Java How to Program, Seventh Edition 1.15 Test-Driving a Java Application 1.16 Software Engineering Case Study: Introduction to Object Technology and the UML 1.17 Web 2.0 1.18 Software Technologies 1.19 Wrap-Up 1.20 Web Resources 5 1.1 Introduction Java Standard Edition (Java SE) 6 Sun s implementation called the Java Development Kit (JDK) Object-Oriented Programming Java is language of choice for networked applications Java Enterprise Edition (Java EE) geared toward largescale distributed applications and web applications Java Micro Edition (Java ME) geared toward applications for small, memory constrained devices 6 1

7 8 1.2 What Is a Computer? 1.3 Computer Organization Computer Performs computations and makes logical decisions Millions or billions of times faster than human beings Computer programs Sets of instructions for which computer processes data Hardware Physical devices of computer system Software Programs that run on computers Six logical units of computer system Input unit Mouse, keyboard Output unit Printer, monitor, audio speakers Memory unit Retains input and processed information Arithmetic and logic unit (ALU) Performs calculations Central processing unit (CPU) Supervises operation of other devices Secondary storage unit Hard drives, floppy drives 1.4 Early Operating Systems 9 1.5 Personal, Distributed and Client/Server Computing 10 Batch processing Personal computing One job (task) at a time Operating systems Developed to make computers more convenient to use Made transitions between jobs easier More throughput Multiprogramming Simultaneous jobs Timesharing operating systems Computers for personal use Distributed computing Networked computers Computing performed among several computers Client/server computing Servers offer common store of programs and data Clients access programs and data from server 1.6 The Internet and the World Wide Web 11 1.7 Machine Languages, Assembly Languages and High-Level Languages 12 Internet Developed more than four decades ago with DOD funding Originally for connecting few main computer systems Machine language Natural language of computer component Machine dependent Assembly language Now accessible by over a billion computers World Wide Web (WWW) Allows for locating/viewing multimedia-based documents English-like abbreviations represent computer operations Translator programs (assemblers) convert to machine language High-level language Allows for writing more English-like instructions Contains commonly used mathematical operations Compiler converts to machine language Interpreter Execute high-level language programs without compilation 2

1.8 History of C and C++ 13 1.9 History of Java 14 C++ evolved from C, which evolved from BCPL and B C Developed at Bell Labs Popularized as the language of the UNIX operating system C++ Deveoped by Bjarne Stroustrup Provides object-oriented programming capabilities Hybrid language Objects Reusable software components that model real-world items Attributes and behaviors Java Originally for intelligent consumer-electronic devices Then used for creating web pages with dynamic content Now also used to: Develop large-scale enterprise applications Enhance web server functionality Provide applications for consumer devices (cell phones, etc.) 1.10 Java Class Libraries Java programs consist of classes Include methods that perform tasks Return information after task completion Java provides class libraries Known as Java APIs (Application Programming Interfaces) To use Java effectively, you must know Java programming language Extensive class libraries 15 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. 16 17 18 Software Engineering Observation 1.2 Performance Tip 1.1 When programming in Java, you will typically use the following building blocks: Classes and methods from class libraries, classes and methods you create yourself and classes and methods that others create and make available to you. Using Java API classes and methods instead of writing your own versions can improve program performance, because they are carefully written to perform efficiently. This technique also shortens program development time. 3

19 20 Portability Tip 1.1 Software Engineering Observation 1.3 Using classes and methods from the Java API instead of writing your own improves program portability, because they are included in every Java implementation. Extensive class libraries of reusable software components are available over the Internet and the web, many at no charge. 1.11 FORTRAN, COBOL, Pascal and Ada Fortran FORmula TRANslator Developed by IBM for scientific and engineering applications COBOL COmmon Business Oriented Language Used for commercial applications requiring precise/efficient manipulation of large amounts of data Pascal Developed by Prof. Niklaus Wirth Designed to teach structured programming Ada Developed under the sponsorship of the U.S. Department of Defense Needed a single language to fill most of its needs Provided multitasking so programmers could specify parallel tasks 21 1.12 BASIC, Visual Basic, Visual C++, C# and.net BASIC Beginner s All-Purpose Symbolic Instruction Code Developed at Dartmouth College to familiarize novices with programming techniques Visual Basic introduced by Microsoft in the early 1990s.NET platform Part of Microsoft s corporate-wide strategy to incorporate the Internet and web into computer applications Three primary.net programming languages Visual Basic.NET (based on BASIC) Visual C++.NET (based on C++) C# (based on C++ and Java) 22 1.13 Typical Java Development Environment Java programs go through five phases Edit Programmer writes program using an editor; stores program on disk with the.java file name extension Compile Use javac (the Java compiler) to create bytecodes from source code program; bytecodes stored in.class files Load Class loader reads bytecodes from.class files into memory Verify Bytecode verifier examines bytecodes to ensure that they are valid and do not violate security restrictions Execute Java Virtual Machine (JVM) uses a combination of interpretation and justin-time compilation to translate bytecodes into machine language 23 24 Fig. 1.1 Typical Java development environment. 4

Common Programming Error 1.1 25 1.14 Notes about Java and Java How to Program, Seventh Edition Stresses clarity 26 Errors like 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. Portability An elusive goal due to differences between compilers, JVMs and computers Always test programs on all systems on which the programs should run 27 28 Good Programming Practice 1.1 Portability Tip 1.2 Write your Java 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. Although it is easier to write portable programs in Java than in other programming languages, differences between compilers, JVMs and computers can make portability difficult to achieve. Simply writing programs in Java does not guarantee portability. 29 30 Error-Prevention Tip 1.1 Good Programming Practice 1.2 Always test your Java programs on all systems on which you intend to run them, to ensure that they will work correctly for their intended audiences. Read the documentation for the version of Java you are using. Refer to it frequently to be sure you are aware of the rich collection of Java features and are using them correctly. 5

31 32 Good Programming Practice 1.3 Your computer and compiler are good teachers. If, after carefully reading your Java documentation manual, you are not sure how a feature of Java works, experiment and see what happens. Study each error or warning message you get when you compile your programs (called compile-time errors or compilation errors), and correct the programs to eliminate these messages. Software Engineering Observation 1.4 Some programmers like to read the source code for the Java API classes to determine how the classes work and to learn additional programming techniques. 1.15 Test-Driving a Java Application 33 34 Test-driving the ATM application Check system setup Locate the ATM application (Fig. 1.2) Run the ATM application (Fig. 1.3) Enter an account number (Fig. 1.4) Enter a PIN (Fig. 1.5) View the account balance (Fig. 1.6) Withdraw money from the account (Fig. 1.7) Confirm that the account information has been updated (Fig. 1.8) End the transaction (Fig. 1.9) Exit the ATM application Additional applications (Fig. 1.10) Using the cd command to change directories File location of the ATM application Fig. 1.2 Opening a Windows XP Command Prompt and changing directories. 35 36 ATM welcome message Enter account number prompt Fig. 1.3 Using the java command to execute the ATM application. Fig. 1.4 Prompting the user for an account number. 6

37 38 Enter valid PIN ATM main menu Account balance information Fig. 1.5 Entering a valid PIN number and displaying the ATM application's main menu. Fig. 1.6 ATM application displaying user account balance information. 39 40 ATM withdrawal menu Confirming updated account balance information after withdrawal transaction Fig. 1.7 Withdrawing money from the account and returning to the main menu. Fig. 1.8 Checking new balance. 41 42 ATM goodbye message Account number prompt for next user Application Name Chapter Location Commands to Run Tic-Tac-Toe Chapters 8 and 24 cd C:\examples\ch01\Tic-Tac-Toe java TicTacToeTest Guessing Game Chapter 11 cd C:\examples\ch01\GuessGame java GuessGame Logo Animator Chapter 21 cd C:\examples\ch01\LogoAnimator java LogoAnimator Bouncing Ball Chapter 23 cd C:\examples\ch01\BouncingBall java BouncingBall Fig. 1.9 Ending an ATM transaction session. Fig. 1.10 Examples of additional Java applications found in Java How to Program, 6/e. 7

1.16 Software Engineering Case Study: Introduction to Object Technology and the UML (Required) 43 1.16 Software Engineering Case Study 44 Object orientation Objects Unified Modeling Language (UML) Graphical language that uses common notation Allows developers to represent object-oriented designs Reusable software components that model real-world items Look all around you People, animals, plants, cars, etc. Attributes Size, shape, color, weight, etc. Behaviors Babies cry, crawl, sleep, etc. 1.16 Software Engineering Case Study 45 1.16 Software Engineering Case Study 46 Object-oriented design (OOD) Models software in terms similar to those used to describe real-world objects Class relationships Inheritance relationships 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 objectoriented programming (OOP) Java Classes are to objects as blueprints are to houses Associations Relationships between classes Packaging software in classes facilitates reuse 1.16 Software Engineering Case Study 47 1.16 Software Engineering Case Study 48 Object-Oriented Analysis and Design (OOA/D) History of the UML Essential for large programs Analyze program requirements, then develop a design UML Unified Modeling Language Standard for designing object-oriented systems Need developed for process with which to approach OOA/D Brainchild of Booch, Rumbaugh and Jacobson Object Management Group (OMG) supervised Version 2 is current version 8

1.16 Software Engineering Case Study 49 1.17 Web 2.0 50 UML Web use exploded in mid-to-late 1990s Graphical representation scheme Enables developers to model object-oriented systems Flexible and extensible Dot com economic bust hit in the early 2000s Resurgence in 2004 with Web 2.0 First Web 2.0 conference Google widely regarded as signature company of Web 2.0 Web services enable Web 2.0 51 52 1.17 Web 2.0 (cont.) 1.17 Web 2.0 (cont.) Ajax Term popularized in 2005 Group of technologies and programming techniques in use since the late 1990s Helps Internet-based applications perform like desktop application Blogs Websites that are like online diaries About 60 million of them at the time of this writing Blogosphere Collection of all blogs and the blogging community Technorati a leading blog search engine RSS feeds Enable sites to push information to subscribers Commonly used to deliver blog postings 53 54 1.17 Web 2.0 (cont.) 1.18 Software Technologies Web 3.0 Agile Software Development Next generation web Also known as the semantic web Web 1.0 mostly HTML based Web 2.0 making increasing use of XML (e.g., RSS feeds) Web 3.0 will make extensive use of XML to add meaning to content Methodologies for developing software quickly with fewer resources Extreme Programming (XP) One of many agile development methodologies Release software frequently in small increments to encourage user feedback Programmers work in pairs at one computer Immediate code review All team programmers able to work on any part of code 9

1.18 Software Technologies (cont.) 55 1.18 Software Technologies (cont.) 56 Refactoring Reworking code to make cleaner/easier to maintain Widely used in agile development methodologies Many tools available Design patterns Proven architectures for constructing flexible/maintainable object-oriented software Game programming Game business is larger than first run movie business College courses and majors now devoted to sophisticated game-programming techniques 1.18 Software Technologies (cont.) 57 1.18 Software Technologies (cont.) 58 Open source software Individuals and companies contribute to developing, maintaining and evolving software in exchange for the right to use that software for their own purposes, typically at no charge Code typically scrutinized by much larger audiences, so bugs get removed faster Java now open source Some open source organizations Eclipse Foundation, Mozilla Foundation, Apache Software Foundation, SourceForge Linux Open source operating system One of the greatest successes of the open source movement MySQL an open source database management system PHP most popular open source server-side Internet scripting language for developing Internet-based applications LAMP Linux, Apache, MySQL and PHP (or Perl or Python) An acronym for the set of open source technologies that many developers used to build web applications 1.18 Software Technologies (cont.) 59 1.18 Software Technologies (cont.) 60 Ruby on Rails Combines the scripting language Ruby with the Rails web application framework developed by 37Signals Many Ruby on Rails developers report significant productivity gains over using other languages when developing database-intensive web applications Getting Real (gettingreal.37signals.com/toc.php) a must read for today s web application developers Software generally viewed as a product You buy a software package from a software vendor, then install that software on your computer and run it as needed Upgrade process cumbersome and expensive Software as a service (SAAS) Software runs on servers elsewhere on the Internet When server is updated, all clients worldwide see the new capabilities Access the software through a browser Salesforce.com, Google and Microsoft s Office Live and Windows Live all offer SAAS. 10