comp 110 spring 20091 announcements computers in class on friday: lab office hours: monday 12-2 new...
TRANSCRIPT
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
COMP 110 Spring 20092
Today in COMP 110
Review Hardware and MemoryPrograms and CompilingYour first JAVA program!
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?
COMP 110 Spring 20094
Hardware vs. Software
HardwarePhysical machineCPU, Memory
Software Set of instructions for the machine to execute
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
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
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)
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
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
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
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
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!
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
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
COMP 110 Spring 200915
Review
What we’ve covered so farHardware & MemoryPrograms and Compiling
Now let’s learn a bit about Java
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
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)
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
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
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”
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()
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
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); }}
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
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”
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
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
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
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
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
COMP 110 Spring 200931
Invoking Methods on Objects
myCar.start()
airplane.land()
System.out.println(“Hi”.)
Objects
Methods
Argument
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)
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
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
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
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); }}
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)