cs 180 problem solving and object oriented programming fall 2010
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 PresentationTRANSCRIPT
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/
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
CS 180. Fall 2010. Week 2 3
Feedback for Week 1
8/30/10
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
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
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
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
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
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
CS 180. Fall 2010. Week 2 10
Dissecting a Java Program: Preliminaries
8/30/10
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)
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
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.
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()
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
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.
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.
CS 180. Fall 2010. Week 2 18
Types
8/30/10
Set of values Set of Operations
xx
x
x
x a
bc
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
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
CS 180. Fall 2010. Week 2 21
Primitive types: boolean
8/30/10
Set of logical values Set of Operations(sample)
!=
==true
false
||&&
|
CS 180. Fall 2010. Week 2 22
Primitive types: char
8/30/10
Set of characters(sample values shown)
Set of Operations(sample)
!=
==‘a’
‘&’
||&&
|‘$’
‘+’
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.
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”
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;
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.
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”?
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.
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
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
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”;
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!
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!
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