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

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

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

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

Introduction to Computers and Java

CSE 1223: Introduction to Computer Programming in Java Chapter 1 Computer Basics

Introduction to Computers and Java

Introduction To Java. Chapter 1. Origins of the Java Language. Origins of the Java Language. Objects and Methods. Origins of the Java Language

Chapter 1 Introduction to Computers, Programs, and Java

Java and Software Design

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 Java Programming

Chapter 1 Introduction to Computers, Programs, and Java

Chapter 1: Introduction to Computers, Programs, and Java

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

Chapter 1 Introduction to Computers, Programs, and Java

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

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

Class List. Java Must Have. Class Goals. Class Goals. Schedule

Chapter 1 Introduction to Computers, Programs, and Java

Chapter 1 Introduction to Computers, Programs, and Java

COSC 123 Computer Creativity. Introduction to Java. Dr. Ramon Lawrence University of British Columbia Okanagan

Course Outline. Introduction to java

COMP Computer Basics. Yi Hong May 13, 2015

Lecture 1: Introduction to Java

Chapter 1. Introduction

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

Basic Programming Language Syntax

Chapter 1 Introduction to Computers, Programs, and Java

Module 1: Introduction to Computers, Programs, and Java

Outline. Overview. Control statements. Classes and methods. history and advantage how to: program, compile and execute 8 data types 3 types of errors

Lab # 2. For today s lab:

Chapter 1 Introduction to java

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

Fundamentals of Programming. By Budditha Hettige

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java

Goals. Java - An Introduction. Java is Compiled and Interpreted. Architecture Neutral & Portable. Compiled Languages. Introduction to Java

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

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

Chapter 2: Programming Concepts

Chapter 1 INTRODUCTION

Chapter 1. Introduction to Computers and Programming. M hiwa ahmad aziz

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

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

Tutorial 1 CSC 201. Java Programming Concepts عؾادئماظربجمةمبادؿكدامماجلاصا

Programming with Java

Computer Hardware. Java Software Solutions Lewis & Loftus. Key Hardware Components 12/17/2013

Pace University. Fundamental Concepts of CS121 1

Lesson 01 Introduction

CHAPTER INTRODUCTION. Final Draft Oct. 15, Slides by Donald W. Smith TechNeTrain.com. Copyright 2013 by John Wiley & Sons. All rights reserved.

Chapter Goals. Contents. 1.1 Computer Programs

Computer Programming-1 CSC 111. Chapter 1 : Introduction

Introduction to Computers, Programs, and Java. CSE 114, Computer Science 1 Stony Brook University

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

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. Java Basics

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

Introduction Welcome! Before you start Course Assessments The course at a glance How to pass M257

Index. Course Outline. Grading Policy. Lab Time Distribution. Important Instructions

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

Elements of Computers and Programming Dr. William C. Bulko. What is a Computer?

Week 2: Data and Output

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

SCSP Programming Technique C

COMP163. Introduction to Computer Programming. Introduction and Overview of the Hardware

1) What is the first step of the system development life cycle (SDLC)? A) Design B) Analysis C) Problem and Opportunity Identification D) Development

! Learn how to think like a computer scientist. ! Learn problem solving. ! Read and write code. ! Understand object oriented programming

A Set Of Machine Language Instructions For A Program Is Called Source Code >>>CLICK HERE<<<

Introduction. Overview of the Course on Java. Overview of Part 1 of the Course

CHAPTER 1: INTRODUCTION TO COMPUTERS AND PROGRAMMING. 1 Muhalim Mohamed Amin Faculty of

AP Computer Science A: Java Programming

Chapter Goals. Contents INTRODUCTION

From High Level to Machine Code. Compilation Overview. Computer Programs

2 rd class Department of Programming. OOP with Java Programming

CS 231 Data Structures and Algorithms, Fall 2016

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

Lecture 2. COMP1406/1006 (the Java course) Fall M. Jason Hinek Carleton University

Java Basics Lecture: January 26, 2012 (On-line Lecture 1)

CHAPTER 1 Introduction to Computers and Java

Chapter 1 Introduction to Java

Low-Level Languages. Computer Programs and Programming Languages

Java Programming. Zheng-Liang Lu. Java 301 Summer Department of Computer Science & Information Engineering National Taiwan University

BASICS.

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

Project 1. Java Control Structures 1/17/2014. Project 1 and Java Intro. Project 1 (2) To familiarize with

St. Edmund Preparatory High School Brooklyn, NY

Programming. Syntax and Semantics

COMP1007 Principles of Programming

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

II. Compiling and launching from Command-Line, IDE A simple JAVA program

C++ Spring Break Packet 11 The Java Programming Language

Microsoft Visual Basic 2005: Reloaded

Get JAVA. I will just tell you what I did (on January 10, 2017). I went to:

Section 2: Introduction to Java. Historical note

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

Which statement regarding computer programs is correct? Which statement best describes a computer program?

Transcription:

Chapter 1 Introduction to Computers and Java Objects Background information» important regardless of programming language Introduction to Java Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Computer Basics Computer system: hardware + software Hardware: the physical components Software: the instructions that tell the hardware what to do Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 2

Common Hardware Components Standard Hardware Organization Input Devices (such as mouse and keyboard) Memory (main & auxiliary) Processor (CPU) Output Devices (such as video display or printer) Processor (CPU)» Central Processing Unit» Interprets and executes the instructions Memory» main & auxiliary» holds data and instructions Input device(s)» mouse, keyboard, etc. Output device(s)» video display, printer, etc. CPU and memory are physically housed together Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 3 Physical Organization Keyboard Monitor Chassis» CPU» memory» disk drives» I/O connectors» etc. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 4

Two Kinds of Memory Main» working area» temporarily stores program and data (while program is executing) Auxiliary» permanent (more or less)» saves program and results» includes floppy & hard disk drives, CDs, tape, etc. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 5 Main Memory Organization Bit = one binary digit» Binary digit can have only one of two values, 0 or 1 Byte = 8 bits Byte Addressable» Main memory is a list of numbered locations that contain one byte of data in each location Number of bytes per data item may vary Address Data Byte 3021 1111 0000 Item 1: 2 bytes stored 3022 1100 1100 3023 1010 1010 Item 2: 1 byte stored 3024 1100 1110 Item 3: 3 bytes stored 3025 0011 0001 3026 1110 0001 3027 0110 0011 Item 4: 2 bytes stored 3028 1010 0010 3029 Next Item, etc. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 6

Auxiliary Memory Auxiliary Organization Main (Root) Directory / Folder Files Subdirectory Subdirectory Files Subdirectory Subdirectory Subdirectory Files Files Files Subdirectory Files Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 7 Running a Program Program a set of instructions for a computer to follow Program Data (input for the program) Computer Output Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 8

Many Types of Programs User-created applications Existing applications» word-processor/editor» web browser» compiler or assembler» etc. Operating System» DOS, MS- Windows(3.x, 95, 98, NT), MacOS, UNIX, etc. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 9 Various Types of User Interfaces Command-line» type in key words and letters» DOS and UNIX Menu» parts of DOS and Windows GUI (Graphical User Interface)» click on icon» also called event-driven» MacOS, Windows Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 10

Programming Language Hierarchy High-Level Language (HLL) Assembly Lanuage Machine Language Hardware Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 11 The highs and lows of programming languages... High-Level Language (HLL)» closest to natural language» words, numbers, and math symbols» not directly understood by hardware» portable source code (hardware independent)» Java, C, C++, COBOL, FORTRAN, BASIC, Lisp, Ada, etc. Machine Language (lowest level)» least natural language for humans, most natural language for hardware» just 0s and 1s» directly understood by hardware» not portable (hardware dependent) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 12

Assembly Language (middle level) a more or less human readable version of machine language words, abbreviations, letters and numbers replace 0s and 1s easily translated from human readable to machine executable code like machine code, not portable (hardware dependent) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 13 Getting from Source to Machine Code Compiling a program translating from a high-level language source code to machine (object, or executable) code. Compiler a program that translates HLL source code to machine (object, or executable) code. Assembly translating from assemble language source code to machine (object, or executable) code. Assembler a program that translates assembly source code to machine (object, or executable) code. Compilers need to know the specific target hardware Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 14

Compilers vs. Assemblers vs. Interpreters Compilers and Assemblers» translation is a separate user step» translation is off-line, i.e. not at run time Interpreters - another way to translate source to object code» interpretation (from source to object code) is not a separate user step» translation is on-line, i.e. at run time Source Code Compiler, Assembler, or Interpreter Object Code Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 15 Java Program Translation Both Compilation and Interpretation Intermediate Code: Byte Code» portable low-level code» similar to assembly code, but hardware independent» invisible to Java programmer Interpreter translates from generic byte code to hardware-specific machine code Java Program Java Compiler Byte-Code Program Byte-Code Interpreter Machine-Language Instructions Data for Java Program Java Virtual Machine Computer Execution of Machine-Language Instructions Output of Java Program Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 16

Java Program Translation Including Linker Java Program Previously Compiled Helper Programs Data for Java Program Java Compiler Byte-Code Program Byte-Code Interpreter Java Virtual Machine Machine-Language Instructions Linker Computer Execution of Machine-Language Instructions Output of Java Program Object-Oriented Programming OOP A design and programming technique Some terminology:» object - usually a person, place or thing (a noun)» method - an action performed by an object (a verb)» type or class - a category of similar objects (such as automobiles) Objects have both data and methods Objects of the same class have the same data elements and methods Objects send and receive messages to invoke actions Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 18

Example of an Object Class Class: automobile Data Items:» manufacturer s name» model name» year made» color» number of doors» size of engine» etc. Methods:» Define data items (specify manufacturer s name, model, year, etc.)» Change a data item (color, engine, etc.)» Display data items» Calculate cost» etc. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 19 Why OOP? Save development time (and cost) by reusing code» once an object class is created it can be used in other applications Easier debugging» classes can be tested independently» reused objects have already been tested Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 20

Design Principles of OOP Three main design principles of Object- Oriented Programming(OOP): Encapsulation Polymorphism Inheritance Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 21 Encapsulation Encapsulation means to design, produce, and describe software so that it can be easily used without knowing the details of how it works. Also known as data hiding An analogy: When you drive a car, you don t have know the details of how many cylinders the engine has or how the gasoline and air are mixed and ignited. Instead you only have to know how to use the controls. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 22

Polymorphism Polymorphism the same word or phrase can be mean different things in different contexts Analogy: in English, bank can mean side of a river or a place to put money In Java, two or more classes could each have a method called output Each output method would do the right thing for the class that it was in. One output might display a number whereas a different one might display a name. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 23 Inheritance Inheritance a way of organizing classes Term comes from inheritance of traits like eye color, hair color, and so on. Classes with properties in common can be grouped so that their common properties are only defined once. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 24

An Inheritance Hierarchy Vehicle Automobile Motorcycle Bus Sedan Sports Car Luxury Bus School Bus What properties does each vehicle inherit from the types of vehicles above it in the diagram? Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 25 Algorithms Algorithm - a set of instructions (steps) for solving a problem.» must be precise» must be complete May be in a number of different formats» natural language (such as English)» a specific programming language» a diagram, such as a flow chart» pseudocode - a mix of natural and programming language Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 26

Example of an Algorithm Algorithm that determines the total cost of a list of items: 1. Write the number 0 on the blackboard. 2. Do the following for each item on the list: Add the cost of the item to the number on the blackboard. Replace the old number on the board by this sum. 3. Announce that the answer is the number written on the board Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 27 Program Design Process Design, then code Design process» define the problem clearly» design objects your program needs» develop algorithms for the methods of objects» describe the algorithms, usually in pseudocode» write the code» test the code» fix any errors and retest Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 28

Types of Errors Syntax Run-Time Logic Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 29 Syntax Errors a grammatical error caught by compiler ( compiler-time error ) automatically found, usually the easiest to fix cannot run code until all syntax errors are fixed error message may be misleading Example: Misspelling a command, for example rturn instead of return Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 30

Run-Time Errors An execution error (during run-time) Not always so easy to fix Error message may or may not be helpful Example: Division by zero - if your program attempts to divide by zero it automatically terminates and prints an error message. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 31 Logic Errors Just because it compiles and runs without getting an error message does not mean the code is correct! An error in the design (the algorithm) or its implementation» code compiles without errors» no run-time error messages» but incorrect action or data occurs during execution Generally the most difficult to find and fix Need to be alert and test thoroughly» think about test cases and predict results before executing the code Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 32

Logic Error Examples Algorithm Error:» averageoffivescores = SumOfScores/2 (should divide by 5) Implementation Error:» typed in wrong symbol in source code - sum = a - b; (should be sum = a + b;) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 33 Finally! Now, a taste of Java! History 1991 - James Gosling, Sun Microsystems, Inc.Originally» originally a language for programming home appliances later (1994) used for World Wide Web applications (since byte code can be downloaded and run without compiling it) eventually used as a general-purpose programming language (for the same reason as above plus it is objectoriented) Why the name Java? Not sure - it may just be a name that came during a coffee break and it had not been copyrighted, yet. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 34

Applets vs. Java Applications Applets» Java programs intended to be downloaded via the WWW and run immediately» little applications» requires a web browser Applications» Java programs intended to be installed then run» often larger applications Slightly different programming for each, but both are easy to do Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 35 public class FirstProgram { A Sample Java Program public static void main(string[] args) { System.out.println("Hello out there."); System.out.println("Want to talk some more?"); System.out.println("Answer y for yes or n for no."); char answerletter; answerletter = SavitchIn.readLineNonwhiteChar(); if (answerletter == 'y') System.out.println("Nice weather we are having."); System.out.println("Good-bye."); System.out.println("Press enter key to end..."); String junk; junk = SavitchIn.readLine(); } } Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 36

Explanation of Code... Code to begin the program (to be explained later): public class FirstProgram { public static void main(string[ ] args) { Java applications all have similar code at the beginning» The name of the class differs from one program to another.» Other information about the class might also be included on the first line. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 37 Explanation of Code... Code to display a text string: System.out.println("Hello out there."); System.out.println("Want to talk some more?"); System.out.println("Answer y for yes or n for no.");» Note the dot operator» System.out is an object» println is a method that it carries out» double-quoted text inside the parentheses is an argument to the method» general syntax: Object_Name.Method_Name(Arguments) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 38

Explanation of Code... Code to create a variable named answerletter to contain a single character of data: char answerletter; This variable is used to store the user s response. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 39 Explanation of Code... Read a character typed in from the keyboard and store it in the variable answerletter: answerletter = SavitchIn.readLineNonwhiteChar();» SavitchIn is a class used for obtaining input from the keyboard» readlinenonwhitechar() is a method that reads a single, non-blank character from the keyboard and discards any remaining characters on the line.» the equal sign is not the same as in math; it means assign the value on the right to the variable on the left; in this case, store the value read from the keyboard into the variable answerletter Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 40

Explanation of Code... Question: If = means assign the value of the expression on the right to the variable on the left, how do we indicate equals? Answer: use a double equals ( == ) Example: check to see if the character entered is y : if (answerletter == 'y')» the value inside the parentheses will be True if the letter y was typed in, otherwise it will be False (if any other letter was typed in) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 41 Explanation of Code... Code to display the line Nice weather we are having. if the user entered the character y : if (answerletter == 'y') System.out.println("Nice weather we are having.");» Note that the line will not be printed if any letter other than y is entered. Unconditionally display the line Good-bye. : System.out.println("Good-bye.");» only the previous System.out.println is conditionally printed, depending on the value entered; the next instruction is executed regardless of the value entered. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 42

Explanation of Code Code to prevent the display from scrolling off the screen before you can read it: System.out.println("Press enter key to end program."); String junk; junk = SavitchIn.readLine();» junk is a variable that can contain a string of characters.» readline() is a method to read in an entire line of text.» The program halts until a character is entered.» Any character entered will make the program continue.» The character entered is assigned to the variable junk, but is ignored (it is not used).» There are no more lines of code, so the program terminates. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 43 Syntax Rules for Identifiers Identifier - the name of something (e.g. a variable, object, or method) used in a Java program. Identifiers:» cannot use reserved words (e.g. if, for, etc.) (see App. 1)» must contain only letters, digits, and the underscore character, _.» cannot have a digit for the first character. $ is allowed but has special meaning, so do not use it.» have no official length limit (there is always a finite limit, but it is very large and big enough for reasonable names).» are case sensitive! junk, JUNK, and Junk are three valid and different identifiers, so be sure to be careful in your typing!» Note that no spaces or dots are allowed. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 44

Good Programming Practice: Identifier Naming Conventions Always use meaningful names, e.g. finalexamscore, instead of something like x, or even just score. Use only letters and digits. Capitalize interior words in multi-word names, e.g. answerletter. Names of classes start with an uppercase letter.» every program in Java is a class as well as a program. Names of variables, objects, and methods start with a lowercase letter. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 45 Compiling a Java Program Assuming the java compiler is already set up and all the files are in the same folder (subdirectory): Each class used in a program should be in a separate file The name of the file should be the same as the class except with.java added to it First compile each class definition used in the program» e.g.savitchin in the sample program (Display 1.4, page 18)» for Sun Microsystems JDK (Java Development Kit), type javac SavitchIn.java» a byte-code file is created with the name SavitchIn.class Next compile the program file:» javac <file>.java (which creates <file>.class) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 46

Running a Java Program Only the class with public static void main(string[] args)can be run» the critical word to look for is main For Sun Microsystems JDK (Java Development Kit), type java <file>» <file> is the same name used in the original source file <file>.java» use just <file>; do not use <file>.java or <file>.class Note that you compile in a separate step and invoke the Java interpreter and linker when you run the program. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 47 Summary Part 1 A computer s main memory holds both the program that is currently running and its data. Main memory is a series of numbered locations, each one containing a single byte. Auxiliary memory is for more or less permanent storage. A compiler is a program that translates a high-level language, like java, into a lower level format ( bytecode for java). Actual translation of Java byte-code to the hardware s specific machine code occurs at run time (it is interpreted). Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 48

Summary Part 2 An algorithm is a set of instructions for solving a problem (it must be complete and precise). An object is something that has both data and actions (methods) associated with it. A class defines a type of object; all objects of the same class have the same methods. Three OOP design principles are encapsulation, polymorphism, and inheritance. In a java program, a method invocation has the general form Object_Name.Method_Name(Arguments) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 49