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

CS 180 Problem Solving and Object Oriented Programming Fall 2010

  • Upload
    tavia

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

CS 180 Problem Solving and Object Oriented Programming

Fall 2010

Notes for Week 2:August 30-September 3, 2010

Aditya MathurDepartment of Computer Science

Purdue UniversityWest Lafayette, IN, USA

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

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

CS 180. Fall 2010. Week 2 2

Readings and Exercises for Week 2

Readings:Chapter 1: 1.3, 1.4, 1.5, 1.6, 1.7Chapter 2: 2.1, 2.2, 5.4, 5.5

Exercises: 2.1, 2.3, 2.4, 2.7, 2.9, 2.12, 2.14

8/30/10

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

CS 180. Fall 2010. Week 2 3

Feedback for Week 1

8/30/10

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

CS 180. Fall 2010. Week 2 4

Q1. The lab exercises were useful (Use scale of 1-10: 10 most useful, 1 not useful at all)

(a) 8-10

(b) 4-7

(c) 1-3

(d) Missed Week 1 lab

8/30/10

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

CS 180. Fall 2010. Week 2 5

Q2. The recitation exercises were useful (Use scale of 1-10: 10 most useful, 1 not useful at all)

(a) 8-10

(b) 4-7

(c) 1-3

(d) Missed week 1 recitation

8/30/10

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

CS 180. Fall 2010. Week 2 6

Q3. The recitation instructor was helpful.(Use scale of 1-10: 10 most helpful, 1 not helpful at all)

(a) 8-10

(b) 4-7

(c) 1-3

(d) Missed week 1 recitation

8/30/10

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

CS 180. Fall 2010. Week 2 7

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

(a) Yes

(b) No

(c) Not sure

(d) Missed week 1 lecture(s)

8/30/10

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

CS 180. Fall 2010. Week 2 8

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

(a) Yes

(b) No

(c) Not sure

(d) Missed week 1 lecture(s)

8/30/10

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

CS 180. Fall 2010. Week 2 9

Q6. So far I am liking the course (10 liking a lot, 1 not liking at all).

(a) 8-10

(b) 4-7

(c) 1-3

(d) Could not attend classes during week 1

8/30/10

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

CS 180. Fall 2010. Week 2 10

Dissecting a Java Program: Preliminaries

8/30/10

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

CS 180. Fall 2010. Week 2 11

The edit, compile, execute cycle

8/30/10

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 12: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 12

Classes and Objects

8/30/10

Set of real orvirtual objects

animal

vehicle

studentflower

Class Animal

Class Vehicle

Class Student

Class Flower

Template in Java

dog

Class Dog

myDog

marysDog

Objects created

truck

student

Represent Create

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

Classes and Objects

Class:

Contains properties 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 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.

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

CS 180. Fall 2010. Week 2 14

Java program: Structure

8/30/10

Package [Contains one or more classes]

Class [Data and zero or more methods]

Data

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 15: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 15

Java program: Classes and Objects

8/30/10

Data

Method

Data and statements

class Automobile

makemodel

create camry

Objects derived fromClass Automobile

makemodelmaxSpeed

start()

makemodelmaxSpeed

start()

create mazdaRX7

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

CS 180. Fall 2010. Week 2 16

Elements of a Sequential Java Program

Program to be dissected: Program 1.4 BouncingBall.java in Chapter 1 pages 12-13.

8/30/10

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.

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

CS 180. Fall 2010. Week 2 17

Elements of a Concurrent Java Program

Program to be dissected: Program 1.7 AreaMeasuringRobot.java in Chapter 1 pages 29-30.

8/30/10

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.

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

CS 180. Fall 2010. Week 2 18

Types

8/30/10

Set of values Set of Operations

xx

x

x

x a

bc

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

CS 180. Fall 2010. Week 2 19

Primitive types: int, long

8/30/10

-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 Integer.MIN_VALUE: -263

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

CS 180. Fall 2010. Week 2 20

Primitive types: float, double

8/30/10

3.14

Set of integers Set of Operations(sample)

12.77

+

-*

180.0

2010.98135

-1751.0

>

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

Double.MAX_VALUE: 1.79769313486231570e+308

Double.MIN_VALUE: 4.94065645841246544e-324

.2010E4

==Infinity

-Infinity

NaN

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

CS 180. Fall 2010. Week 2 21

Primitive types: boolean

8/30/10

Set of logical values Set of Operations(sample)

!=

==true

false

||&&

|

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

CS 180. Fall 2010. Week 2 22

Primitive types: char

8/30/10

Set of characters(sample values shown)

Set of Operations(sample)

!=

==‘a’

‘&’

||&&

|‘$’

‘+’

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

CS 180. Fall 2010. Week 2 23

Names

8/30/10

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 24: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 24

Constants

8/30/10

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 25: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 25

Named Constants

8/30/10

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 26: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 26

Variables

8/30/10

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

Every variable has a name and a type.

Every variable must be declared before it is used.

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

CS 180. Fall 2010. Week 2 27

Strings: basics

A string is any sequence of Unicode characters

8/30/10

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 28: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 28

Strings: assignment

You may assign a value to a string object. Examples follow.

8/30/10

myDogsName=“Bently”;String 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 29: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 29

Strings: Other operations

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

8/30/10

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 30: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 30

Strings: Other operations

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

8/30/10

Statement Operation used

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

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

movieName.equals(“Fugitive”) Comparision

String.valueOf(29) Conversion to String

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

CS 180. Fall 2010. Week 2 31

Declarations

8/30/10

int age;

float height, area;

String name

boolean

int x=1, y=0;

String firstName=“Harry”;

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

CS 180. Fall 2010. Week 2 32

Simple expressions

8/30/10

Expressions are used to compute “something”.

float x, y, z;

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 33: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 33

Assignment statement

8/30/10

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 34: CS 180 Problem Solving and Object Oriented Programming  Fall 2010

CS 180. Fall 2010. Week 2 34

Week 2: August 30-September 3, 2010Hope you enjoyed this week!

Questions?

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

8/30/10