comp 110 spring 20091 announcements computers in class on friday: lab office hours: monday 12-2 new...

37
COMP 110 Spring 2009 1 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes Exercise after lecture

Upload: barnaby-sims

Post on 28-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 20091

Announcements

Computers in class on Friday: Lab

Office Hours: Monday 12-2

New students see me after class

Administrative Changes

Exercise after lecture

Page 2: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 20092

Today in COMP 110

Review Hardware and MemoryPrograms and CompilingYour first JAVA program!

Page 3: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 20093

Before Programming

Need to know basics of a computerIf you drive a car you should know it runs on gasoline

What’s in the box?

Page 4: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 20094

Hardware vs. Software

HardwarePhysical machineCPU, Memory

Software Set of instructions for the machine to execute

Page 5: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 20095

Hardware

CPU (Central Processing Unit) Executes instructions specified by a programmer

GHz - number of instructions per second, how fast is the computerDual Core - multiple processing units per CPU, multiple brains

Page 6: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 20096

Memory

Holds data for the computer to processMain Memory (RAM – Random Access Memory)

Used for intermediate calculationsUsed to store the current program itself!Expensive

Auxiliary Memory (Secondary Memory)Disk drives, CDs, Flash drivesCheap

Page 7: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 20097

Measuring Memory

Measured in bytesFor example 2 gigabytes (GB) of RAMMegabyte (MB) = 1 million (106) bytes (or 1,048,576 = 220 bytes)Gigabyte (GB) = 1 billion (109) bytes (or 1,073,741,824 = 230 bytes)

Page 8: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 20098

What is a Byte?

Data, such as numbers and keyboard characters are stored as series of bitsA bit is a digit with value 1 or 0Examples

00111010 is a byte with value 5801000001 is a byte with value 6501100001 is a byte with value 97

A byte is composed of 8 bitsJust large enough to store a keyboard character

Page 9: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 20099

Main Memory

Called RAM (Random Access Memory)

Fast accessAccess any location in memory in constant time

AddressableEvery byte has an address that is used when writing or reading data to memory

Page 10: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200910

What is a Program?

Set of instructions for a computer to followExample instructions:

Add two numbersDivide two numbersStore a number at a memory location

Page 11: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200911

Programs

Programs take data as input and produce a useful resultExample

A spell-checking program takes a text file as input and produces a list of misspelled words as output

Input Program Output

Page 12: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200912

Programming Languages

Modern programming languages (Java, C/C++) are designed to be human-readable

Called high-level languages

Computers can’t understand high level languages

A Compiler translates our human-readable program into a machine-readable program

Compiler is a program as well!

Page 13: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200913

Role of Compilers

Program Source Code

Compiler

Machine Code

Human-readable, What you will be writing in this class

Machine-readable, What the machine actually executes

Note: Java uses a slightly different approach, which we’ll see later

Page 14: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200914

Human- vs Machine Readable

A human-readable instruction to add two numbers

a = b + c;

The equivalent machine-readable instruction might look this!

0010110110110010101010110101010101000111101010100101000101001011101001010101010101101010100

Page 15: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200915

Review

What we’ve covered so farHardware & MemoryPrograms and Compiling

Now let’s learn a bit about Java

Page 16: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200916

Java

A high-level programming language Java source code is human-readable

Originally envisioned as a programming language for home appliancesIs now the language of choice for internet applications

Example internet application using Java

Page 17: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200917

Java

Java is an interpreted languageCompiler produces bytecode instead of machine code• Bytecode is not quite readable by any machine

When a Java program is run, an interpreter translates the bytecode into machine code on-the-flyThe Java interpreter is called the Java Virtual Machine (JVM)

Page 18: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200918

Compiling & Running Java Programs

Java program

Java compiler

Bytecode program

Bytecode interpreter(Java JVM)

Machine code

Compiling a Java program

Running a Java program

Human-readable

Machine-readable

Java JVM-readable

Page 19: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200919

Java Interpreter

Why is Java interpreted?The short answer is portability

Can run the same byte code on any machine!• No need to recompile for Windows or Mac OS X

Ideal for internet applications

Page 20: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200920

Terminology: Objects/Classes

Class: archetype/blueprint/molde.g. Person, Car, Film

Object: concrete instance of a classe.g. John Hansen, 2006 Scion xB, American Beauty

Classes declare the attributes of objects of its type and the actions they will perform

Class: all cars have an attribute “make” and action “drive”Objects: several instance of a class• each has a specific model: “Scion xB” , “Toyota Matrix” • but performs the same action: “drive”

Page 21: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200921

Terminology: Variables

Variables/Fields: specific storage/attributes

String title = “Lost in Translation”;int length = 102;double stars = 4.5;

Methods: actions a class performsint add(int x, int y)int square(int x)void display(int x)void clear()

Page 22: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200922

Your First Java Program

Source code on the next slideDisplays a welcome messageAsks the user to input two numbersDisplays the sum of the numbers

Page 23: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200923

Sample Java Program (Section 1.2)

import java.util.Scanner;public class FirstProgram{

public static void main(String[] args){ System.out.println("Hello out there."); System.out.println("I will add two numbers for you."); System.out.println("Enter two whole numbers on a line:");

int n1, n2;

Scanner keyboard = new Scanner(System.in); n1 = keyboard.nextInt(); n2 = keyboard.nextInt();

System.out.println("The sum of those two numbers is"); System.out.println(n1 + n2); }}

Page 24: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200924

Importing Packages

import java.util.Scanner;

Tells the compiler that this program uses the class “Scanner” in the package “java.util”

So that when the Scanner class is used later in the program, the compiler knows what we’re referring to

A package is a library of classes that have already been defined for you

“java.util” – for various utilities such as reading input from the keyboard

Page 25: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200925

Begin the program

public class FirstProgram{ …

}

Begin the class “FirstProgram”A class is just a piece of code that we give a name toEverything within the curly braces will be part of “FirstProgram”

Page 26: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200926

Classes

• Java programs are rarely written as a single piece of code all in one file– They are typically divided into separate

pieces called classes

• For now, think of classes as pieces of Java code

Page 27: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200927

Main method

public static void main(String[] args){…}

• Begin the method called “main”– Everything between the curly braces is part

of the method “main”– Methods contain lines of code that actually

perform some action (statements)– The group of statements within a method

make up the method bodyEvery Java program has a method called main

Page 28: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200928

• So far we haveimport java.util.Scanner;

public class FirstProgram{

public static void main(String[] args){ …}

}

As of yet, the code performs no actionNow for the body of the “main” method where the action occurs

Page 29: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200929

Output to Screen

System.out.println("Hello out there.");System.out.println("I will add two numbers for you.");System.out.println("Enter two whole numbers on a

line:");

• These statements prints what is in quotes out to the screen

• ExampleSystem.out.println("Hello out there.");

– Causes “Hello out there.” to be printed out to screen

Page 30: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200930

Methods and Objects

• What does “System.out.println” mean?

• “System.out” is an object– Java programs use objects to perform actions– The actions are defined by methods

• “println” is a method that prints a message to the screen– The println method is part of the System.out

object

Page 31: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200931

Invoking Methods on Objects

myCar.start()

airplane.land()

System.out.println(“Hi”.)

Objects

Methods

Argument

Page 32: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200932

Variable

int n1, n2;

•Declares “n1” and “n2” as variables that will be used to store data

• int is the data type that will be used for n1 and n2– int indicates an integer (whole number)

Page 33: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200933

Create Scanner Object

Scanner keyboard = new Scanner(System.in);

• Enables the program to read data from the keyboard– Creates an object of Scanner class called “keyboard”

Class Object Class

Page 34: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200934

Call Method on Object

n1 = keyboard.nextInt();

Read an integer from the keyboard and store it in n1

Object Method

Invoke/Call

Page 35: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200935

Output to Screen

System.out.println("The sum of those two numbers is");System.out.println(n1 + n2);

Add n1 and n2Print the sum to the screen

Page 36: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200936

Sample Java Program (Section 1.2)

import java.util.Scanner;public class FirstProgram{ public static void main(String[] args) { System.out.println("Hello out there."); System.out.println("I will add two numbers for you."); System.out.println("Enter two whole numbers on a line:");

int n1, n2;

Scanner keyboard = new Scanner(System.in); n1 = keyboard.nextInt(); n2 = keyboard.nextInt();

System.out.println("The sum of those two numbers is"); System.out.println(n1 + n2); }}

Page 37: COMP 110 Spring 20091 Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes

COMP 110 Spring 200937

Friday

•Recitation– jGRASP– Your first Java program

•Bring – Laptop (fully charged)

•Download Java Development Kit (JDK) and jGRASP before lab (see webpage)