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