chapter 1: an overview of computers and programming languages j ava p rogramming: from problem...

38
Chapter 1: An Overview of Chapter 1: An Overview of Computers and Programming Computers and Programming Languages Languages J J ava ava P P rogramming: rogramming: From Problem Analysis to From Problem Analysis to Program Design, Program Design, Second Edition Second Edition

Post on 19-Dec-2015

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Chapter 1: An Overview of Chapter 1: An Overview of Computers and Programming Computers and Programming LanguagesLanguages

JJava ava PProgramming:rogramming:

From Problem Analysis to Program From Problem Analysis to Program Design,Design, Second EditionSecond Edition

Page 2: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 2

Chapter Objectives

Learn about different types of computers. Explore the hardware and software components of a

computer system. Learn about the language of a computer. Learn about the evolution of programming

languages. Examine high-level programming languages. Discover what a compiler is and what it does.

Page 3: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 3

Chapter Objectives

Examine a Java program.

Examine how a Java program is processed.

Become aware of the Internet and World Wide Web.

Learn what an algorithm is and explore problem-solving techniques.

Become aware of structured and object-oriented programming design methodologies.

Page 4: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 4

Introduction

Computers have greatly affected our daily lives— helping us complete many tasks.

Computer programs (software) are designed specifically for each task.

Software is created with programming languages.

Java is an example of a programming language.

Page 5: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 5

An Overview of the History of Computers

1950s: Very large devices available to a select few.

1960s: Large corporations owned computers.

1970s: Computers got smaller and cheaper.

1990s: Computers got cheaper and faster and were found in most homes.

Page 6: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 6

Elements of a Computer System

A computer has two components:

Hardware

Software

Page 7: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 7

Hardware Components of a Computer

Central processing unit (CPU)

Main memory

Page 8: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 8

Central Processing Unit

Control unit (CU)

Arithmetic logic unit (ALU)

Program counter (PC)

Instruction register (IR)

Page 9: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 9

Hardware Components of a Computer

Page 10: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 10

Main Memory

Ordered sequence of cells (memory cells).

Directly connected to CPU.

All programs must be brought into main memory before execution.

When power is turned off, everything in main memory is lost.

Page 11: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 11

Main Memory with 100 Storage Cells

Page 12: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 12

Secondary Storage

Provides permanent storage for information.

Examples of secondary storage:

Hard disks

Floppy disks

Zip disks

CD-ROMs

Tapes

Page 13: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 13

Input Devices

Devices that feed data and computer programs into computers.

Examples:

Keyboard

Mouse

Secondary storage

Page 14: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 14

Output Devices

Devices that the computer uses to display results.

Examples:

Printer

Monitor

Secondary storage

Page 15: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 15

Software

Software consists of programs written to perform specific tasks.

Two types of programs:

System programs

Application programs

Page 16: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 16

System Programs

System programs control the computer.

The operating system is first to load when you turn on a computer.

Page 17: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 17

Operating System (OS)

The OS monitors the overall activity of the computer and provides services.

Example services:

Memory management

Input/output

Activities

Storage management

Page 18: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 18

Application Programs

Written using programming languages.

Perform a specific task.

Run by the OS.

Example programs:

Word processors

Spreadsheets

Games

Page 19: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 19

Language of a Computer

Machine language is the most basic language of a computer.

A sequence of 0s and 1s.

Every computer directly understands its own machine language.

A bit is a binary digit, 0 or 1.

A byte is a sequence of eight bits.

Page 20: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 20

Language of a Computer

Page 21: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 21

Evolution of Programming Languages

Early computers programmed in machine language.

Assembly languages were developed to make programmer’s job easier.

In assembly language, an instruction is an easy-to-remember form called a mnemonic.

Assembler: Translates assembly language instructions into machine language.

Page 22: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 22

Instructions in Assembly and Machine Languages

Page 23: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 23

Evolution of Programming Languages

High-level languages make programming easier. Closer to spoken languages. Examples:

Basic FORTRAN COBOL C/C++ Java

Page 24: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 24

Evolution of Programming Languages

To run a Java program:

1. Java instructions need to be translated into an intermediate language called bytecode.

2. The bytecode is interpreted into a particular machine language.

Page 25: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 25

Evolution of Programming Languages

Compiler: A program that translates a program written in a high-level language into the equivalent machine language.

(In the case of Java, this machine language is the bytecode.)

Java Virtual Machine (JVM): A hypothetical computer developed to make Java programs machine independent.

Page 26: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 26

A Java Program

public class ASimpleJavaProgram { public static void main(String[] args) { System.out.println("My first Java program."); System.out.println("The sum of 2 and 3 = " + 5); System.out.println("7 + 8 = " + (7 + 8)); } }

Sample Run:My first Java program.The sum of 2 and 3 = 57 + 8 = 15

Page 27: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 27

Processing a Java Program

Two types of Java programs are applications and applets.

Source program: Written in a high-level language.

Loader: Transfers the compiled code (bytecode) into main memory.

Interpreter: Reads and translates each bytecode instruction into machine language and then executes it.

Page 28: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 28

Processing a Java Program

Page 29: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 29

Problem-Analysis-Coding-Execution Cycle

Algorithm: A step-by-step, problem-solving process in which a solution is arrived at in a finite amount of time.

Page 30: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 30

Problem-Solving Process

1. Analyze the problem: Outline solution requirements and design an algorithm.

2. Implement the algorithm in a programming language (Java) and verify that the algorithm works.

3. Maintain the program: Use and modify if the problem domain changes.

Page 31: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 31

Problem-Solving ProcessExample:

Find the perimeter and area of a rectangle.

1.Get the length of the rectangle.

2. Get the width of the rectangle.

3.Find the perimeter using the equation:

Perimeter = 2 * (length + width)

4.Find the area using the equation:

Area = length * width

Page 32: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 32

Problem-Analysis-Coding-Execution Cycle

Page 33: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 33

Programming Methodologies

Two basic approaches to programming design:

Structured design

Object-oriented design

Page 34: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 34

Structured Design

1. A problem is divided into smaller sub-problems.

2. Each sub-problem is solved.

3. The solutions of all sub-problems are combined to solve the problem.

Page 35: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 35

Object-Oriented Design (OOD)

In OOD, a program is a collection of interacting objects.

An object consists of data and operations.

Steps in OOD:

1. Identify objects.

2. Form the basis of the solution.

3. Determine how these objects interact.

Page 36: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 36

Object-Oriented Design (OOD)

Write a program to automate the video rental process for a local video store.

Two objects : the video and the customer.

Data with video object: movie name ,starring actors,# of copies in stock.

Operations on the video object: reducing the number of copies in stock.

So each object consist of data and operations on those data

Page 37: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 37

Chapter Summary

A computer system is made up of hardware and software components.

Computers understand machine language; it is easiest for programmers to write in high-level languages.

A compiler translates high-level language into machine language.

The Java steps required to execute a program are edit, compile, load, and execute.

Page 38: Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program

Java Programming: From Problem Analysis to Program Design, Second Edition 38

Chapter Summary

An algorithm is a step-by-step, problem-solving process in which a solution is arrived at in a finite amount of time.

The three steps of the problem-solving process are analyze the problem and design an algorithm, implement the algorithm in a programming language, and maintain the program.

The two basic approaches to programming design are structured design and object-oriented design.