Download presentation
Presentation is loading. Please wait.
1
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/
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 2CS 180. Fall 2011. Week 28/29/2011
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. 3CS 180. Fall 2011. Week 28/29/2011
4
Lab for Week 2 Play with Java programs: Introduction to Android-based smart phone Introduction to the Finch robot 4CS 180. Fall 2011. Week 28/29/2011
5
Feedback for Week 1 5CS 180. Fall 2011. Week 28/29/2011
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) 6CS 180. Fall 2011. Week 28/29/2011
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) 7CS 180. Fall 2011. Week 28/29/2011
8
Dissecting a Java Program: Preliminaries 8CS 180. Fall 2011. Week 28/29/2011
9
The edit, compile, execute cycle 9CS 180. Fall 2011. Week 28/29/2011 Edit a Java program Compile your program Execute your program Syntax Error Run time Error or Incorrect Output No syntax error Correct program 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)
10
Classes and Objects 10CS 180. Fall 2011. Week 28/29/2011 Set of real or virtual objects animal car student flower Class AnimalClass CarClass StudentClass Flower Template in Java dog Class Dogbruschettaziggy Objects created momsCaramanda RepresentCreate
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/201111CS 180. Fall 2011. Week 2
12
Java program: Structure 12CS 180. Fall 2011. Week 28/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()
13
Java program: Classes and Objects 13CS 180. Fall 2011. Week 28/29/2011 Data Method Data and statements class Automobile make model create camry Objects derived from Class Automobile make model maxSpeed start() make model maxSpeed start() create mazdaRX7
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. 14CS 180. Fall 2011. Week 28/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):
15
Elements of a Concurrent Java Program Program to be dissected: Program 2.8 AreaMeasuringRobot.java in Chapter 2 pages 63-64. 15CS 180. Fall 2011. Week 28/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):
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! 16CS 180. Fall 2011. Week 28/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.
17
Binary numbers and Floating point representation CS 240, CS 314, and several other classes. 17CS 180. Fall 2011. Week 28/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
18
Types 18CS 180. Fall 2011. Week 28/29/2011 Set of valuesSet of Operations x x x x x a b c
19
Primitive types: int, long 19CS 180. Fall 2011. Week 28/29/2011 -14 Set of integersSet of Operations 12 + - * 180 2010 1751 % Integer.MAX_VALUE: 2 31 -1Integer.MIN_VALUE: -2 31 Long.MAX_VALUE: 2 63 -1Long.MIN_VALUE: -2 63 /
20
Primitive types: float, double 20CS 180. Fall 2011. Week 28/29/2011 Float.MAX_VALUE: 3.40282347e+38Float.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) + - * > == >=
21
Primitive types: boolean 21CS 180. Fall 2011. Week 28/29/2011 Set of logical valuesSet of Operations (sample) != == true false || && |
22
Primitive types: char 22CS 180. Fall 2011. Week 28/29/2011 Set of characters (sample values shown) Set of Operations (sample) != == ‘a’ ‘&’ || && | ‘$’ ‘+’
23
Operators: Arithmetic, relational, conditional 23CS 180. Fall 2011. Week 28/29/2011 Arithmetic operators + - * / % Relational operators == < > <= >= != Boolean/conditional operators || && a+b*c-d a/b c%d a==b a<=b a!=b a==b||c<d a d a!=b &&c>d||p+1<q
24
Operators: bitwise 24CS 180. Fall 2011. Week 28/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 b a|b: logical OR of a and b a <<3: shift bit pattern of a left by 3 bits a>>2: shift bit pattern of a to the right by 2 bits
25
Names 25CS 180. Fall 2011. Week 28/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.
26
Constants 26CS 180. Fall 2011. Week 28/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”
27
Named Constants 27CS 180. Fall 2011. Week 28/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;
28
Variables 28CS 180. Fall 2011. Week 28/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.
29
Strings: basics A string is any sequence of Unicode characters 29CS 180. Fall 2011. Week 28/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”?
30
Strings: assignment You may assign a value to a string object. 30CS 180. Fall 2011. Week 28/29/2011 myDogsName=“Bently”; // Assuming that myDogsName has been declared 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.
31
Strings: Other operations You may apply a variety of operations to strings. Examples follow. 31CS 180. Fall 2011. Week 28/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
32
Strings: More operations There exist a variety of operations on strings. A few are given below. 32CS 180. Fall 2011. Week 28/29/2011 StatementOperation 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”
33
Declarations 33CS 180. Fall 2011. Week 28/29/2011 int age; float height, area; String name boolean iAmAlive; int x=1, y=0; String firstName=“Harry”;
34
Simple expressions 34CS 180. Fall 2011. Week 28/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!
35
Assignment statement 35CS 180. Fall 2011. Week 28/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!
36
Back to classes and objects 36CS 180. Fall 2011. Week 28/29/2011
37
Creating an object: Mom’s car 37CS 180. Fall 2011. Week 28/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;
38
Creating an object: Dad’s car 38CS 180. Fall 2011. Week 28/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;
39
Creating an object: Instance variables 39CS 180. Fall 2011. Week 28/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.
40
Creating an object: get and set instance variables 40CS 180. Fall 2011. Week 28/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);
41
Classes and Objects: Summary 41CS 180. Fall 2011. Week 28/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. Instance variables: Variables that become local to an object. get and set methods Used for getting data from and into an object. Constructor Used for creating objects.
42
Week 2: August 29-September 2, 2011 Hope you enjoyed this week! Questions? Contact your recitation instructor. Make full use of our office hours. 42CS 180. Fall 2011. Week 28/29/2011
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.