cs 180 problem solving and object oriented programming fall 2011

42
CS 180 Problem Solving and Object Oriented Programming Fall 2011 Notes for Week 2: August 29-September 2, 2011 Aditya Mathur Department of Computer Science Purdue University West Lafayette, IN, USA http://www.cs.purdue.edu/homes/apm/courses/ CS180Fall2011/

Upload: sabin

Post on 07-Feb-2016

40 views

Category:

Documents


0 download

DESCRIPTION

CS 180 Problem Solving and Object Oriented Programming Fall 2011. http://www.cs.purdue.edu/homes/apm/courses/CS180Fall2011/. Notes for Week 2: August 29-September 2, 2011. Aditya Mathur Department of Computer Science Purdue University West Lafayette, IN, USA. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180 Problem Solving and Object Oriented Programming

Fall 2011

Notes for Week 2:August 29-September 2, 2011

Aditya MathurDepartment of Computer Science

Purdue UniversityWest Lafayette, IN, USA

http://www.cs.purdue.edu/homes/apm/courses/CS180Fall2011/

Page 2: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 2

Readings and Self-help Exercises for Week 2

Readings:Chapter 2: 2.1, 2.2, 2.3, 2.4

Self help exercises (not to be turned in): 2.1, 2.2, 2.3, 2.4, 2.7, 2.9, 2.12, 2.14

8/29/2011

Page 3: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 3

About Homework

All homework problems will be assigned during recitation. Please make sure you attend your recitation section.

Homework assigned during week X is due at the start of your recitation during week X+1.

It is best to use Piazza to ask questions regarding homework. But please do not post answers to homework problems.

Most, but not necessarily all, homework problems will be from the textbook.

8/29/2011

Page 4: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 4

Lab for Week 2

Play with Java programs:

Introduction to Android-based smart phone

Introduction to the Finch robot

8/29/2011

Page 5: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 5

Feedback for Week 1

8/29/2011

Page 6: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 6

Q1. I understand the difference between “sequential solution” and “Concurrent solution”.

(a) Yes

(b) No

(c) Not sure

(d) Missed week 1 lecture (s)

8/29/2011

Page 7: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 7

Q2. I understand the difference between “Data Parallelism” and “Task parallelism”.

(a) Yes

(b) No

(c) Not sure

(d) Missed week 1 lecture(s)

8/29/2011

Page 8: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 8

Dissecting a Java Program: Preliminaries

8/29/2011

Page 9: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 9

The edit, compile, execute cycle

8/29/2011

Edit aJava program

Compile your program

Execute your program

Syntax Error

Run time Error orIncorrect Output

No syntaxerror

Correctprogram

In CS 180 we shall use DrJava for editing, compiling and execution. DrJava is an Integrated Development Environment also known as an IDE. Eclipse, JBuilder, and IntelliJ IDEA are a few other Java IDEs. For programming the RidgeSoft robot we shall use RoboJDE.

.java file(s) .class file(s)(byte code)

Page 10: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 10

Classes and Objects

8/29/2011

Set of real orvirtual objects

animal

car

studentflower

Class Animal

Class Car

Class Student

Class Flower

Template in Java

dog

Class Dog

bruschetta

ziggy

Objects created

momsCar

amanda

Represent Create

Page 11: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 11

Classes and Objects

Class:

Contains attributes and operations related to some real or virtual object.

This object could be abstract or concrete [e.g., a Dog or a Golden Retriever].

Object:

Created from a class.

Contains specialized properties (attributes) and operations related to a more specific real or virtual object, e.g., object myDog created from class Dog has breed as a property that might be different from another object marysDog created from the same class.

8/29/2011

Page 12: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 12

Java program: Structure

8/29/2011

Package [Contains one or more classes]

Class [Data and zero or more methods]

Data (attributes)

Method

Data and statements

At least one class must have a method named main().

Data represents properties of a real, virtual or a Java object. E.g., breed, age, color

Methods are operations that can be performed on an object created from a class. E.g., run(), sit(), down(), no(), goodBoy()

Page 13: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 13

Java program: Classes and Objects

8/29/2011

Data

Method

Data and statements

class Automobile

makemodel

create camry

Objects derived fromClass Automobile

makemodelmaxSpeed

start()

makemodelmaxSpeed

start()

create mazdaRX7

Page 14: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 14

Elements of a Sequential Java Program

Programs to be dissected: Program 2.6 ScannerExample.java Chapter 2 pages 55-56.Program 2.7 BouncingBall.java in Chapter 2 pages 58-59.

8/29/2011

Strategy:Go through this program line by line and attempt to understand the meaning of each line. It is likely this exercise will generate more questions than answers.

For practice (try later):

Page 15: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 15

Elements of a Concurrent Java Program

Program to be dissected: Program 2.8 AreaMeasuringRobot.java in Chapter 2 pages 63-64.

8/29/2011

Strategy:Go through this program line by line and attempt to

understand the meaning of each line. It is likely this exercise will generate more questions than answers.

For practice (try later):

Page 16: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 16

Announcements

This week’s recitation: you will learn about the Scanner class and how to map a problem to a Java program. Make sure you attend!

8/29/2011

Project 1 description will be released via the Schedule page of the course site on Sunday (a day before the announced date).

Feast with faculty tonight: 6:30pm in Ford Dining Hall, room on the second floor.

Is Java a pure OO language:? Use Google to find an answer.

Lab makeup policy at the course web site.

Page 17: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 17

Binary numbers and Floating point representation

CS 240, CS 314, and several other classes.

8/29/2011

Writing programs for engine control, satellite control, aircraft design, integration, etc. etc.

“I hate floating point and IEEE format!!”

Understanding why the results of a computation are not what you expected.

Knowledge useful in

Page 18: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 18

Types

8/29/2011

Set of values Set of Operations

xx

x

x

x a

bc

Page 19: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 19

Primitive types: int, long

8/29/2011

-14

Set of integers Set of Operations

12 +

-*

180

2010

1751

%

Integer.MAX_VALUE: 231 -1 Integer.MIN_VALUE: -231

Long.MAX_VALUE: 263 -1 Long.MIN_VALUE: -263

/

Page 20: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 20

Primitive types: float, double

8/29/2011

Float.MAX_VALUE: 3.40282347e+38 Float.MIN_VALUE: 1.40239846e-45

Double.MAX_VALUE: 1.79769313486231570e+308

Double.MIN_VALUE: 4.94065645841246544e-324

3.14

Set of real numbers

12.77

180.0

2010.98135

-1751.0

.2010E4

Infinity

-Infinity

NaN

Set of Operations(sample)

+

-*

>

==

>=

Page 21: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 21

Primitive types: boolean

8/29/2011

Set of logical values Set of Operations(sample)

!=

==true

false

||&&

|

Page 22: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 22

Primitive types: char

8/29/2011

Set of characters(sample values shown)

Set of Operations(sample)

!=

==‘a’

‘&’

||&&

|‘$’

‘+’

Page 23: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 23

Operators: Arithmetic, relational, conditional

8/29/2011

Arithmetic operators+-*/%

Relational operators== < > <= >= !=

Boolean/conditionaloperators||&&

a+b*c-da/bc%d

a==ba<=ba!=b

a==b||c<da<=b&&c>da!=b &&c>d||p+1<q

Page 24: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 24

Operators: bitwise

8/29/2011

Bitwise operators&: bitwise AND|: bitwise OR^: bitwise exclusive OR~: bitwise complement

Bitwise shift operators<<: bitwise left shift>>: bitwise right shift>>>: unsigned right shift

a & b: logical and of a and ba|b: logical OR of a and b

a <<3: shift bit pattern of a left by 3 bitsa>>2: shift bit pattern of a to the right by 2 bits

Page 25: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 25

Names

8/29/2011

Used to denote classes, objects, data

Contain characters; must start with a letter, or a $ sign or an underscore.

Examples: height, area1, Dog, $great

Length unlimited, case sensitive.Dog and dog are different names.

Convention: All class names begin with an uppercase letter; all other names begin with a lower case letter.

Page 26: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 26

Constants

8/29/2011

A constant is something that cannot change during program execution.

Examples:

Integer constants: 0, 1, -1, +24, 29, 300009998, O14, 0x1B

Floating point constants: 0.0, -2.345e28, -0.000976512

Boolean constants: true, false

Character constants: ‘ ‘, ‘a’, ‘A’, ‘$’

String constants: “”, “ ”, “Hi!”, “Alice in Wonderland”

Page 27: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 27

Named Constants

8/29/2011

A constant can be named and the name used instead of the constant itself.

Examples:

final float pi=3.14159;

final boolean dogsExist=true;

Page 28: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 28

Variables

8/29/2011

A variable is something whose value may change during program execution.

Example: int numStudents; denotes the number of students whose grads have been processed. Its value changes as each student’s grade is processed by a grade processing program.

Every variable has a name and a type.

Example: int hurricaneCategory; The name is hurricaneCategory and its type is int.

Every variable must be declared before it is used.

Page 29: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 29

Strings: basics

A string is any sequence of Unicode characters

8/29/2011

You may name a string as in the following:

String myDogsName;

myDogsName is an object of type String.

It can take any string as its value. For example,“Max”, “Bently”, “Jake” and “Raja” are possible values of myDogsName.

What is the difference between 29 and “29”?

Page 30: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 30

Strings: assignment

You may assign a value to a string object.

8/29/2011

myDogsName=“Bently”; // Assuming that myDogsName has been declaredString myCarColor=“Black”;

All string objects must be declared before they are used.

Thus it would be incorrect to assign a value to myDogsName before it has been declared.

Page 31: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 31

Strings: Other operations

You may apply a variety of operations to strings. Examples follow.

8/29/2011

String commend=“Bently,”+ “ good girl!; // String catenation

String myCar=“It’s a Porsche”+ “, and I love it!” +”but maintenance is expensive.” // String catenation

String firstChar=commend.charAt(0); // Extract character at

position 0

Page 32: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 32

Strings: More operations

There exist a variety of operations on strings. A few are given below.

8/29/2011

Statement Operation used

String commend=“Bently,”+ “ good girl!”; Catenation

char firstChar=commend.charAt(0); Character extraction using charAt()

movieName.equals(“Fugitive”) Comparison using equals()

String.valueOf(29) Conversion integer 29 to String “29”

Page 33: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 33

Declarations

8/29/2011

int age;

float height, area;

String name

boolean iAmAlive;

int x=1, y=0;

String firstName=“Harry”;

Page 34: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 34

Simple expressions

8/29/2011

Expressions are used to compute “something”.

float x, y, z; // Declare x, y, z as variables of type float

x*y+z; // Arithmetic expression, results in float value

x<y; // Boolean expression, results in boolean value

String firstName=“Mary”, lastName= “Jones”;

firstName+” “+lastName; // Results in a String

More in Chapter 2! And yet more to come!

Page 35: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 35

Assignment statement

8/29/2011

An assignment statement allows assigning the value of an expression to a variable.

float p=x*y+z; // p gets the value of x*y+z

boolean q=x<y; // q gets the value of x<y

String firstName=“Mary”, lastName= “Jones”;

String name= firstName+” “+lastName;

More in Chapter 2! And yet more to come!

Page 36: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 36

Back to classes and objects

8/29/2011

Page 37: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 37

Creating an object: Mom’s car

8/29/2011

String color=“Yellow”;String owner=“Mom”;int miles=200;

new Car (“Yellow”, “Mom”, 200);

public class Car{

public int getMiles(){

}

String color;String owner;int miles;

Page 38: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 38

Creating an object: Dad’s car

8/29/2011

String color=“Black”;String owner=“Dad”;int miles=200000;

new Car (“Black”, “Dad”, 200000);

public class Car{

public int getMiles(){

}

String color;String owner;int miles;

Page 39: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 39

Creating an object: Instance variables

8/29/2011

public class Car{

public int getMiles(){

}

String color;String owner;int miles;

Instance variables are copied into the new object.Each object has its own values for these variables.

Thus, two objects of the same type have their own copies of instance variables.

Page 40: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 40

Creating an object: get and set instance variables

8/29/2011

public class Car{

public int getMiles(){return miles;

}

String color;String owner;int miles;

public void setMiles(int m ){miles=m;

}

Get the value of miles from the object.

int dadsCarMIles=dadsCar.getMiles();

Set the value of miles in an object.

momsCar.setMiles(300);

Page 41: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 41

Classes and Objects: Summary

8/29/2011

Class: Template to create objects.

Object: Created from a class; may denote a real world or an abstract object;Inherits all instance variables and methods.

Instancevariables:

Variables that become local to an object.

get andset methods

Used for getting data from and into an object.

Constructor Used for creating objects.

Page 42: CS 180 Problem Solving and Object Oriented Programming  Fall 2011

CS 180. Fall 2011. Week 2 42

Week 2: August 29-September 2, 2011Hope you enjoyed this week!

Questions?

Contact your recitation instructor. Make full use of our office hours.

8/29/2011