week 91 introduction to programming ms. knudtzon c period quarter 2 – lecture 20 monday, november...
TRANSCRIPT
![Page 1: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/1.jpg)
Week 9 1
Introduction to Programming
Ms. KnudtzonC Period
Quarter 2 – Lecture 20Monday, November 1st
![Page 2: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/2.jpg)
Week 9 2
Debugging and Testing
• What is debugging?
• What is testing?
![Page 3: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/3.jpg)
Week 9 3
Testing
• Is used to find out whether a piece of code (a method, class, or entire program) produces the intended behavior
• Testing well is not easy because there is a lot to think about when testing a program
• Unit testing refers to a test of individual parts of an application (can be done before an application is complete)
![Page 4: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/4.jpg)
Week 9 4
Debugging
• Debugging generally comes after testing
• Is the attempt to pinpoint and fix the source of an error
![Page 5: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/5.jpg)
Week 9 5
Debugger
• A debugger is a software tool that helps in examining how an application executes. It can be used to find bugs.– Lets you execute an application one step at a
time– Lets you start and stop a program at selected
points in the source code, and to examine the value of variables
![Page 6: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/6.jpg)
Week 9 6
Why is an error called a BUG?
• ‘The first computer bug’ – was found inside the Mark II computer by Grace Murray Hopper in 1945– (Can be seen at the
National Museum of American History)
![Page 7: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/7.jpg)
Week 9 7
Debuggers
• Can vary in complexity
• Those for professional developers are much more complex than the simple version we will use in BlueJ
• BlueJ’s debugger is good for novice programmers, and can give a lot of information that can be useful in understanding how the program works
![Page 8: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/8.jpg)
Week 9 8
The this keyword• Used for name overloading – the same name is used for two
different entities– this can be used in methods or in constructors
• Example: (From the Car.java program)String make;public void setMake(String make){
this.make = make;}
• Note: the parameter (make) and the class variable or field (make) share the same name, but are two different containers
• Java specification says that the definition from the closest enclosing block {} will always be used
• The this keyword refers to the current object – so this.make refers to the class variable make, not the parameter make
• Used to make the code more readable
![Page 9: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/9.jpg)
Week 9 9
In class Lab (Teams of 2)
• \\bonebox\users\Knudtzon\Java\mail-system– Exercise 3.31– Exercise 3.33– Exercise 3.34 – Then follow directions and exercises
on pages 73-76
– Time permitting: Add a subject line for an email to MailItems in the mail-system project. Make sure printing messages also prints the subject line. Modify the mail client accordingly. (Exercise 3.43)
![Page 10: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/10.jpg)
Week 9 10
Introduction to Programming
Ms. KnudtzonC Period
Quarter 2 – Lecture 21Thursday, November 4th
![Page 11: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/11.jpg)
Week 9 11
Schedule
• (Went over asterisks program from homework 9)
• Will come back to testing in more detail later this quarter, for now it suffices to test by calling individual methods through the BlueJ object bench
• Was going to begin covering Java API, but since there is no school tomorrow, will first cover arrays
![Page 12: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/12.jpg)
Week 9 12
Grouping objects• Fixed-sized collections
– When you know in advance how many items will be stored in a collection (and that stays fixed for the life of the collection)
– A fixed-sized collection is an array• It’s kind of like a tray of cups – each cup can hold an object
or a primitive data type• Note: the array itself is an object
• Flexible-sized collections– When you don’t know in advance how many items
you will need to store– Will go into more details about this when we look at
the Java API
![Page 13: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/13.jpg)
Week 9 13
Arrays
• An array is a group of variables (called elements or components) containing values that all have the same data type
• To refer to a particular element in an array, use the array’s name and the position number of the element in the array
54
32
2
9
4
3453
34
3
-423
int array called c
c[0]
c[3]
c[4]
c[5]
c[6]
c[7]
c[8]
c[1]
c[2]
![Page 14: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/14.jpg)
Week 9 14
Anatomy of an array
• Array names are the same as any other variable name
• An array with 9 elements (or variables)
• First element has index zero (the zeroth element)
• ith element of array c is c[i -1]• Index must be a positive integer (or
an integer expression that can be promoted to an int)
54
32
2
9
4
3453
34
3
-423
int array called c
c[0]
c[3]
c[4]
c[5]
c[6]
c[7]
c[8]
c[1]
c[2]
![Page 15: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/15.jpg)
Week 9 15
Advantages to using arrays
• It is easy to access individual items in an array (and it’s efficient)
• Arrays are able to store objects or primitive type values (int, double, float, etc)– (We’ll see later that the flexible-sized
collections can only store objects)
![Page 16: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/16.jpg)
Week 9 16
Declaring and creating arrays
• Array objects occupy space in memory. All objects in Java must be created with a keyword new
• When you declare an array you must tell Java the type of the array elements and the number of the elements that will appear in the array
• Example declaration for an integer array called hourArray:
int hourArray[] = new int[24]; // declares and creates an array to hold 24 int
elements
![Page 17: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/17.jpg)
Week 9 17
An array
hourArray
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
:int[ ]
![Page 18: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/18.jpg)
Week 9 18
Other kinds of arrays
• How would you create an array to hold 20 student names?
int jesseArray[] = new int[20];
String nameArray[] = new String[20];
![Page 19: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/19.jpg)
Week 9 19
How do we fill an array?
• All values are initially set to zero when we initialize an array
• One way to fill the array is to use an array initializer, a comma-separated list of expression enclosed in braces: int n[] = {10, 23, 34, 235, 234};
– The array length is automatically determined by the number of elements in the initializer list
![Page 20: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/20.jpg)
Week 9 20
Class Exercise
• Write code to declare and initialize an array to hold the months of a year
String month[] = {“jan”, “feb”, “march”, “april”, “may”};
• Write code to declare and initialize an array to hold the number of days in each month of the year
int monthDays[] = {31,28,31,30};
![Page 21: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/21.jpg)
Week 9 21
How else do we fill an array?
• Arrays and for-loops go together like peanut butter and jelly!
• We could use a for loop and access each array element to set a value to it:int myArray[] = new int[10];
for(int i =0; i < myArray.length; i++){
myArray[i] = 5 * i;
}
![Page 22: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/22.jpg)
Week 9 22
Exercise• Suppose we wish to print out the names and lengths of each of the
months • To do this for each of the twelve months, we place this statement in
the body of a for loop that counts off all the monthsString monthNames[] =
{"January","February","March","April", "May","June","July","August", "September","October","November","December"};
int monthDays[] = {31,28,31,30,31,30,31,31,30,31,30,31};
for(int j = 0; j < 12; j++){System.out.println(“Month: “ + monthNames[j] +
“ has “ + monthDays[j] + “ days”); }
![Page 23: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/23.jpg)
Week 9 23
Histogram Program
• ArrayEx
![Page 24: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/24.jpg)
Week 9 24
Mistakes
• It is not uncommon to make a programming mistake that causes the bounds of a loop to be mis-defined and the loop index variable to stray beyond the range of the array.
• For example, what if in your for loop you wrote:for(int i = 0; i <= array.length; i++){
System.out.println(array[i]);
}
![Page 25: Week 91 Introduction to Programming Ms. Knudtzon C Period Quarter 2 – Lecture 20 Monday, November 1 st](https://reader035.vdocuments.mx/reader035/viewer/2022062301/56649ed85503460f94be6c0e/html5/thumbnails/25.jpg)
Week 9 25
Homework 10
• Will be posted today on the webpage
• Due date to be determined (Probably November 12)– Get started this weekend!