CS 180 Problem Solving and Object Oriented Programming Fall 2010

Similar documents
CS 180 Problem Solving and Object Oriented Programming Fall 2011

CS 180 Problem Solving and Object Oriented Programming Fall 2011

CS 180 Problem Solving and Object Oriented Programming Fall 2011

CS 180 Problem Solving and Object Oriented Programming Fall 2011

CS 180 Problem Solving and Object Oriented Programming Fall 2011

CS 180 Problem Solving and Object Oriented Programming Fall 2011

Introduction to Programming Using Java (98-388)

Introduction to Computer Science Midterm 3 Fall, Points

Use the Scantron sheets to write your answer. Make sure to write your Purdue ID (NOT Purdue Login ID) and your name on the Scantron answer sheet.

CSC 111 Introduction to Computer Science (Section C)

Review Problems for Final Exam. 1. What is the output of the following program? #include <iostream> #include <string> using namespace std;

Announcements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop

Review: Object Diagrams for Inheritance. Type Conformance. Inheritance Structures. Car. Vehicle. Truck. Vehicle. conforms to Object

CSE 113 A. Announcements - Lab

CS 101, Spring 2016 March 22nd Exam 2

Lecture Transcript While and Do While Statements in C++

McGill University School of Computer Science COMP-202A Introduction to Computing 1

CS 180 Problem Solving and Object Oriented Programming Fall 2011

H212 Introduction to Software Systems Honors

You must pass the final exam to pass the course.

Repetition Structures

Computer Science II Data Structures

CSCI-1200 Data Structures Fall 2012 Lecture 5 Pointers, Arrays, Pointer Arithmetic

CS110D: PROGRAMMING LANGUAGE I

CS Computer Science I

Final Exam CS 152, Computer Programming Fundamentals December 9, 2016

Materials covered in this lecture are: A. Completing Ch. 2 Objectives: Example of 6 steps (RCMACT) for solving a problem.

CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 8 Assigned: October 26, 2016 Due: November 2, 2016 by 2:30pm

AP Computer Science Summer Work Mrs. Kaelin

CS 142 Style Guide Grading and Details

CS 161. SAMPLE FINAL Fall 2014

CSCI 355 Lab #2 Spring 2007

CS 180 Problem Solving and Object Oriented Programming Fall 2011

This exam is open book. Each question is worth 3 points.

CSCI 355 LAB #2 Spring 2004

Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Arrays: Higher Dimensional Arrays. CS0007: Introduction to Computer Programming

Introduction to Data Structures

Practice Midterm 1. Problem Points Score TOTAL 50

INF 315E Introduction to Databases School of Information Fall 2015

Example: Monte Carlo Simulation 1

CS31 Discussion 1E. Jie(Jay) Wang Week1 Sept. 30

Condition-Controlled Loop. Condition-Controlled Loop. If Statement. Various Forms. Conditional-Controlled Loop. Loop Caution.

Handout 4 Conditionals. Boolean Expressions.

Chapter 5. Repetition. Contents. Introduction. Three Types of Program Control. Two Types of Repetition. Three Syntax Structures for Looping in C++

University of Massachusetts Amherst, Electrical and Computer Engineering

a) Answer all questions. b) Write your answers in the space provided. c) Show all calculations where applicable.

Midterm Exam CS 251, Intermediate Programming October 8, 2014

CS 101 Fall 2005 Midterm 2 Name: ID:

while for do while ! set a counter variable to 0 ! increment it inside the loop (each iteration)

Week 2. Relational Operators. Block or compound statement. if/else. Branching & Looping. Gaddis: Chapters 4 & 5. CS 5301 Spring 2018.

Object Oriented Programming. Java-Lecture 6 - Arrays

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen

Practice Midterm 1 Answer Key

9/19/2018 Programming Data Structures. Polymorphism And Abstract

Programming with Java

EECS168 Exam 3 Review

AL GHURAIR UNIVERSITY College of Computing. Objectives: Examples: if Single-Selection Statement CSC 209 JAVA I. week 3- Control Statements: Part I

Final Exam Practice. Partial credit will be awarded.

Check out how to use the random number generator (introduced in section 4.11 of the text) to get a number between 1 and 6 to create the simulation.

Arrays. What if you have a 1000 line file? Arrays

16. Give a detailed algorithm for making a peanut butter and jelly sandwich.

Question: Total Points: Score:

CS 101 Fall 2006 Midterm 3 Name: ID:

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

Q1 Q2 Q3 Q4 Q5 Total 1 * 7 1 * 5 20 * * Final marks Marks First Question

Computer Science 210: Data Structures

CS 3360 Design and Implementation of Programming Languages. Exam 1

University of Utah School of Computing

CS 61B Data Structures and Programming Methodology. June David Sun

Announcements. 1. Forms to return today after class:

CS 302: Introduction to Programming in Java. Lecture 9

Student Performance Q&A:

Arrays 2 CS 16: Solving Problems with Computers I Lecture #12

CS18000: Problem Solving And Object-Oriented Programming

Question: Total Points: Score:

CS446: Machine Learning Fall Problem Set 4. Handed Out: October 17, 2013 Due: October 31 th, w T x i w

Programming with Arrays Intro to Pointers CS 16: Solving Problems with Computers I Lecture #11

Computer Programming

About this exam review

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

CS171:Introduction to Computer Science II

Loops and Files. of do-while loop

CS61BL. Lecture 1: Welcome to CS61BL! Intro to Java and OOP Testing Error-handling

BCIS 3630 Dr. GUYNES SPRING 2018 TUESDAY SECTION [JAN version] GRADER COURSE WEBSITE

APCS Semester #1 Final Exam Practice Problems

CS 580 FINAL EXAM. Fall April 29, 2014

Sprint 2017, Sul Ross State University

An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type.

Mathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen

Lecture 10. Daily Puzzle

Programming in Java Prof. Debasis Samanta Department of Computer Science Engineering Indian Institute of Technology, Kharagpur

ECSE 321 Assignment 2

FORM 2 (Please put your name and form # on the scantron!!!!)

Programming for Engineers Iteration

CS162 Computer Science I Fall 2018 Practice Exam 1 DRAFT (9 Oct.)

CS 216 Exam 1 Fall SOLUTION

5/23/2015. Core Java Syllabus. VikRam ShaRma

More Flow Control Functions in C++ CS 16: Solving Problems with Computers I Lecture #4

Transcription:

CS 180 Problem Solving and Object Oriented Programming Fall 2010 hmp://www.cs.purdue.edu/homes/apm/courses/cs180fall2010/ This Week: Notes for Week 7: Oct 4 8, 2010 Aditya Mathur Department of Computer Science Purdue University West LafayeMe, IN, USA 10/4 10/6 1. Exam 1: Performance 2. Project 1: Performance 3. Feedback for Week 6 4. Arrays 5. Demo 6. Incremental program development 7. MulW dimensional arrays 8. Visual depicwon of arrays

Readings and Exercises for Week 7 Readings: Chapter 6: 6.1, 6.2, 6.3, 6.4 Exercises: 6.3, 6.4, 6.5, 6.7 Aditya Mathur. CS 180. Fall 2010. Week 7 2

Special help session Thursday Oct 7, 5 7pm: Special help session in the B158 Sunday October 10: No help session. Enjoy your break! Aditya Mathur. CS 180. Fall 2010. Week 7 3

Special class Sunday October 17: 4 5:30pm For those who have not been able to perform well on Exam 1 and/or Project 1. Send me email if you wish to amend. Bring your laptops. Aditya Mathur. CS 180. Fall 2010. Week 7 4

Lunch meewng When: Thursday October 7, 2010. Noon 1:30pm Where: Ford Dining Hall Meet: Upstairs in the Ford dining hall AMendees: All who signed up for September 30 and October 7 Look forward to seeing you! Aditya Mathur. CS 180. Fall 2010. Week 7 5

Performance: Exam 1 Overall: Count: 231 Average: 393.3/480 Max Score: 480 obtained by 11 students Median: 417.6 Standard deviawon: 78.2 Part B: Count: 231 Average: 59.7 Max Score: 70/70 scored by 40 students Median: 63.0 Standard deviawon: 11.95 Aditya Mathur. CS 180. Fall 2010. Week 7 6

Performance: Exam 1: Histogram Aditya Mathur. CS 180. Fall 2010. Week 7 7

Exam 1: Common mistakes: Q1 Incorrect types for coordinates (int instead of float or double) 3 to 5 points Incorrect or forgomen formadng 3 points Code in main() method instead of in constructor 2 points Incorrect coding of the distance formula 10 to 20 points Aditya Mathur. CS 180. Fall 2010. Week 7 8

Exam 1: Common mistakes: Q2 Incorrect random number generawon ( 2 to 15 points) Minor syntax errors ( 1 to 2 points). Code in main() instead of constructor ( 3 points). Incorrect datatype for min, max ( 2 points) Incorrect class structure, like constructor inside main() ( 2 to 5 points) Not *reading* min and max from user ( 5 points) Incorrect if condiwons ( 2 to 5 points) Aditya Mathur. CS 180. Fall 2010. Week 7 9

Performance: Project 1 Total graded: 222 Average: 60.7 Max score: 64 by 81 students 59 63: 105 students Median: 62 Standard deviawon: 7.23 Aditya Mathur. CS 180. Fall 2010. Week 7 10

Robots in labs Please take a survey in this week s lab Please do not toast us! The robots were intended to give you some thrill and help in understanding the challenges of programming embedded systems. Unfortunately, the Ridge Sok robots turned out to be unreliable devices! Aditya Mathur. CS 180. Fall 2010. Week 7 11

Feedback for Week 6 Aditya Mathur. CS 180. Fall 2010. Week 7 12

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 6 lab Aditya Mathur. CS 180. Fall 2010. Week 7 13

Q2. The recitawon 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 6 recitawon Aditya Mathur. CS 180. Fall 2010. Week 7 14

Q3. The recitawon 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 6 recitawon Aditya Mathur. CS 180. Fall 2010. Week 7 15

Q4 Exam 1 was (a) Very easy (b) Somewhat easy (c) Somewhat tough (d) Tough (e) Very tough Aditya Mathur. CS 180. Fall 2010. Week 7 16

Q5. I have completed Project 2 (a) Yes (b) Nearly complete (c) Not started Aditya Mathur. CS 180. Fall 2010. Week 7 17

Q6. So far I am liking the course (a) A lot (b) Somewhat (c) Not sure Aditya Mathur. CS 180. Fall 2010. Week 7 18

Arrays Aditya Mathur. CS 180. Fall 2010. Week 7 19

Arrays: What are these? A homogeneous collecwon of variables or objects. All elements of an array are of the same type. Examples: Array of integers where each integer represents the age of a pawent. Array of cars where each element of the array denotes a specific car. Array of flowers where each element of the array denotes a flower. Aditya Mathur. CS 180. Fall 2010. Week 7 20

Arrays: When to use? When there is a need to retain data in memory for efficient processing. Data is created once and used many Wmes. Examples: Array of flights: Search for a specific flight Array of cars: Search for a specific car, or find the average price. Array of laptops: find the cheapest laptop Aditya Mathur. CS 180. Fall 2010. Week 7 21

Declaring an Array Indicates age is an array variable int [] age; /* age refers to an array of integers; e.g. age of people in a database*/ double [] weight; /* weight refers to an array of doubles; e.g. weights of items shipped*/ String [] name; /* name refers to an array of elements each of type String; e.g., names of people in a database*/ Aditya Mathur. CS 180. Fall 2010. Week 7 22

Declaring an Array: of objects Bird [] bird; /* Bird refers to a class; bird is an array where each element is an object of type Bird. */ Aircrak [] fleet; /* Aircrak refers to a class; fleet is an array where each element is an object of type Aircrak. */ Aditya Mathur. CS 180. Fall 2010. Week 7 23

CreaWng an Array int [] age=new int[10]; /* age is an array of 10 elements each of type int*/ double [] weight=new double[100]; /* weight is an array of 100 elements each of type double*/ String [] name=new String[15]; /* name is an array of 15 elements each of type String*/ Aircrak [] fleet=new Aircrak[150]; /* fleet is an array of 150 elements each of type Aircrak*/ Aditya Mathur. CS 180. Fall 2010. Week 7 24

Accessing an array element: general syntax Name of the array Index, starts from 0, must be an int Examples: name [expression] age[i]; // 0<=i<10 fleet[k]; // 0<=k<150 weight[i+j]; // 0<=(i+j)<100 Note: First element of an array is located at index 0. Aditya Mathur. CS 180. Fall 2010. Week 7 25

Accessing an array element int [] age=new int[10]; int p= age[5]; /* p gets element at index 5 of array age*/ double [] weight=new double[100]; double hisweight=weight[i]; /* hisweight gets the element of weight at index i*/ Aircrak [] fleet=new Aircrak[150]; Aircrak rental=fleet[k]/* rental gets the element of fleet located at index k */ Aditya Mathur. CS 180. Fall 2010. Week 7 26

Assigning a value to an array element int [] age=new int[10]; age[i]=15; /* (i+1) th element of age becomes 15. */ int [] age={ 15, 20, 30} // All elements iniwalized double [] weight=new double[100]; weight[k]=weight[k] 10; /* (k+1) th element of the weight is decremented by 10.*/ Aircrak [] fleet=new Aircrak[150]; fleet[i]=new Aircrak(); /* (i+1) th element of fleet gets a new Aircrak */ Aditya Mathur. CS 180. Fall 2010. Week 7 27

IteraWng through elements of an array In many problems we need to iterate through all or a few of the elements of an array. Such an iterawon is accomplished by using a for or a while loop. Aditya Mathur. CS 180. Fall 2010. Week 7 28

Problem: Find average int agesum=0; // IniWalize sum of all ages int [] age=new int[10]; // Create array of int to hold ages for( int i=0; i<age.length; i++){ agesum=agesum+age[i]; // Accumulate ages } double average=agesum/(double)age.length; Aditya Mathur. CS 180. Fall 2010. Week 7 29

Problem: Search in an array String [] wlist={"emilio", "Semion", "Osama"}; Scanner s=new Scanner (System.in); String wanted=s.next(); // Get name to be searched boolean found=false; // Not yet found int next=0; // Points to the first element in wanted list while(next<wlist.length &&!found) { if(wanted.equals(wlist[nextitem])) // Compare found=true; // If equal then we have found the wanted! else next++; // else point to the next item on the list }//End of loop Aditya Mathur. CS 180. Fall 2010. Week 7 30

Problem: Search in an array if(found) System.out.println(wanted+ " exists in database"); else System.out.println(wanted+ " not in database") } // End of program Aditya Mathur. CS 180. Fall 2010. Week 7 31

Problem: Statement A plant biology lab maintains a collecwon of leaves. The lab director wishes to create a simple database that contains several entries. Each entry is a plant name, type of its leaf, and a brief descripwon of the leaf in the collecwon. Example: WhitePine Needle NA Heather Compound NA Write a program that reads data from a file as menwoned above and allows a user to search for a tree in the database. Aditya Mathur. CS 180. Fall 2010. Week 7 32

Problem: Understanding A plant biology lab maintains a collecwon of leaves. From where can my program read the leaf data? If it is in a file, then what is the name of that file? The lab director wishes to create a simple database that contains several entries. How much data is available? Write a program that reads data from a file as menwoned above and allows a user to search for a tree in the database. In what form will the user input a request? Aditya Mathur. CS 180. Fall 2010. Week 7 33

Java program for plant biology lab. Incremental stepwise development! Aditya Mathur. CS 180. Fall 2010. Week 7 34

Tasks 1. Read plant collecwon data from a file 2. Provide search service to the user 3. Exit with a bye bye message when done. Aditya Mathur. CS 180. Fall 2010. Week 7 35

Let us assume. 1. LeafCollecWon class is available 2. It provides the following methods: createcollec?on() searchservice() 3. Leaf class is available. It provides the following methods: public void gettree(); public void getleaftype(); public void getdescrip?ontype(); Why did we make the above assumpwons? Aditya Mathur. CS 180. Fall 2010. Week 7 36

Overall design: Classes LeafCollecWonServer Main server Ini?ates ac?ons Uses LeafCollecWon public void createcollec?on(); public void (); Leaf private String parentplant; private String leaftype; private String leafdescripwon; public void gettree(); public void getleaftype(); public void getdescrip?ontype(); Uses Aditya Mathur. CS 180. Fall 2010. Week 7 37

LeafCollecWonServer Back to the Java program. Version 1.0. Aditya Mathur. CS 180. Fall 2010. Week 7 38

LeafCollecWon: Design This is a class. Provides two methods: createcollec?on() searchservice() But before we can write these methods we must have a way to read from a file and save in memory all the data about the collecwon! QuesWon: How should we store leaf collecwon data? Recall: For each leaf, we have its parent tree, its type, and its descrip?on. Aditya Mathur. CS 180. Fall 2010. Week 7 39

LeafCollecWon: Design QuesWon QuesWon: How should we store leaf collecwon data? Recall: For each leaf, we have its parent tree, its type, and its descrip?on. Answer:?? Aditya Mathur. CS 180. Fall 2010. Week 7 40

LeafCollecWon Back to the Java program. Version 2.0. Aditya Mathur. CS 180. Fall 2010. Week 7 41

Leaf: Design: AMributes Recall, for each leaf, we have the following available data: Name of parent tree Name of the leaf DescripWon Aditya Mathur. CS 180. Fall 2010. Week 7 42

Leaf: Design: Methods Recall, for each leaf, we have the following available data: public String getleafname(); public String gettreename(); public String getdsecripwon(); Aditya Mathur. CS 180. Fall 2010. Week 7 43

Leaf class Back to the Java program. Version 3.0. Aditya Mathur. CS 180. Fall 2010. Week 7 44

Arrays: Visual representawon Aditya Mathur. CS 180. Fall 2010. Week 7 45

Single dimensional array: Example 1 int [] cloudydays=new int [12] // average cloudy days/month Anchorage, Alaska 0 1 2 3 4 5 6 7 8 9 10 11 [19 18 18 18 20 20 22 21 21 21 20 21 ] Index Data cloudydays[0] cloudydays[5] cloudydays[11] Aditya Mathur. CS 180. Fall 2010. Week 7 46

Single dimensional array: Example 2: DeclaraWon Car [] carstock=new Car [5] // Cars at a dealership public class Car{ String make; // e.g. Ford String model; // e.g. Fusion int year; // e.g. 2011 long msrp; // e.g. US$23145 Picture carpic; } Aditya Mathur. CS 180. Fall 2010. Week 7 47

Single dimensional array: Example 2: Visual Car [] carstock=new Car[5] // Cars at a dealership CS180 Dealership in West LafayeMe 0 1 2 3 4 [ ] Index Object Reference {Ford, fusion, 2011, 23150 }... {Porsche, Boxster Spyder, 2011, 72000, } } carstock[0] carstock[4] Aditya Mathur. CS 180. Fall 2010. Week 7 48

Arrays: MulWdimensional Aditya Mathur. CS 180. Fall 2010. Week 7 49

Example 1 MEAN MONTHLY CLOUDY DAYS IN ARIZONA 0 1 2 3 4 0 1 J F 2 3 4 5 6 7 8 9 10 11 M A M J J A S O N D FLAGSTAFF 12 11 12 9 7 4 9 8 5 7 8 11 PHOENIX 10 9 8 6 3 2 4 4 3 4 6 9 TUCSON 10 9 9 6 4 3 9 7 4 5 6 10 WINSLOW 12 10 9 7 5 4 8 6 4 6 8 10 YUMA 9 6 6 4 2 1 3 3 2 3 5 8 rows columns int [][] cloudydays=new int [5][12] What is the value of cloudydays[1,8]? Aditya Mathur. CS 180. Fall 2010. Week 7 50

DeclaraWon Cars [] inventory=new Car [3][]; 3 rows and undefined number of columns Each row represents make of a car and column represents models 0 1 2 Chevy Honda Toyota 0 1 2 Avalanche Traverse Accord Fit Civic Camry Corolla Rav4 Aditya Mathur. CS 180. Fall 2010. Week 7 51

Arrays: Typical errors Index out of bounds [Run Wme error] int [] a=new int [10]; a[i]=x; // i is greater than 9 or less than 0 Element not iniwalized [Compile Wme error] String [] name; name[i]= Bob ; // element not iniwalized Aditya Mathur. CS 180. Fall 2010. Week 7 52

Week 7: October 4 8, 2010 Hope you enjoyed this week! QuesWons? Contact your recitawon instructor. Make full use of our office hours. Aditya Mathur. CS 180. Fall 2010. Week 7 53