cs 115 object oriented programming i lecture 4_1 george koutsogiannakis copyright: 2015 illinois...

45
CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Upload: rodger-fitzgerald

Post on 03-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

CS 115

OBJECT ORIENTED PROGRAMMING ILECTURE 4_1

GEORGE KOUTSOGIANNAKIS

Copyright: 2015 Illinois Institute of Technology-George Koutsogiannakis

1

Page 2: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Previous Lecture Topics

• Data Types.• Variables. • Constants.• Type casting of Data Types.• Expressions. • Arithmetic Operators.• Precedence of Operators.

2

Page 3: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Lecture 4 Topics

• Mixed Type Arithmetic• Typecasting-Implicit/Explicit• Structure of a Java program• Classes – What is a class?• What is an object of a class?• How do we create objects of a class?• Constructors

3

Page 4: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Arithmetic Operators

• In Programming arithmetic expressions we use the following symbols. Each symbol is called an arithmetic operator:– / forward slash is used for division i.e 4/3– * asterisk is used for multiplication– +, - used for addition and subtraction. Notice that the + operator is

also used a symbol with a different meaning sometimes (this is called operator overloading).

– % modulus operator. Gives the remainder of a division.– ( , ) opening and closing parentheses.

4

Page 5: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Review of Precedence of Operators• Suppose we have the expression:

3*4/2+(6-3*2/2-1*(2+3-2*5/2))What is the result? How does the system (java run time system in the computer) calculate

the result?Answer:– First anything within a parenthesis gets calculated, starting with the innermost

parethensis. Parentheses are given priority. Each parenthesis is calculated by itself. Within a parenthesis the precedence of operators is followed i.e. multiplication and division first then addition and subtraction:

2+3-2*5/2• multiplication and division have equal precedence and they get applied

before + or –• therefore we apply the leftmost of the equal precedence operators first.

5

Page 6: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Review of Precedence of Operators• 2*5=10 first , then 10/2=5• Next we apply the + and then the - (+, - are of equal precedence but + comes first because it is the leftmost

of the two in the expression).• 2+3-5=0 (result of inner most parenthesis).

– Now let us calculate the next parenthesis (6-3*2/2-1*0)• Again multiplication is first ( multiplication and division come before addition and subtraction) starting left

to right and covering all operators of equal precedence. 6-6/2-1*0 Next the division 6-3-1*0 Next the last multiplication 6-3-0= 3

– Now the remainder of the expression 3*4/2+3 First the multiplication 3*4=12 then 12/2=6 and finally the subtraction

FINAL RESULT: 6+3=9

6

Page 7: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Modulus Operator

When two integers are divided:– the quotient is an integer data type– any fractional part is truncated (discarded)

• To get the remainder, use the modulus operator with the same operands: %

i.e 10%3=1 because the remainder of the division is 1

7

Page 8: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Division by Zero• Integer division by 0: Example: int result = 4 / 0; At run time, the Java Runtime System generates an ArithmeticException and

the program stops executing. Division by zero is not allowed.• Floating-point division by 0:

– If the dividend is not 0 as an integer, then the result is Infinity --i.e. 4.3/0.0=infinity.

– If the dividend and divisor are both 0, the result is NaN (not a number) ---i.e. 0/0=NaN

8

Page 9: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Operands

• Consider the following Expression: 2+3-5– An operator operates on Operands– + , –, *, / operators require 2 operands each.– + operator has the Operands 2 and 3 in our

example.

9

Page 10: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Mixed-Type Arithmetic– Conversions of Data Types

• There is a concern with data types when the operands of an operator are not of the same data type.

i.e. 2 * 2.3 WHERE SHOULD THE SYSTEM STORE THE RESULT IN MEMORY? As an int

memory space (4 bytes) or as a double memory space (8 bytes)? • Even if the data types of the operands are the same we could still have an

issue as to the data type of the result i.e.

3/2• Therefore rules are needed in the programming language (Java in this

case) to handle the results of this type of operations.

10

Page 11: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Mixed-Type Arithmetic– Conversions of Data Types

Implicit Type Casting• By “Implicit Type Casting” we mean that the Java Runtime

System changes a particular data type implicitly: in other words the programmer did NOT program the change to the data type with an explicit programming instruction.

• PROMOTION RULE– When performing calculations with operands of different

data types in an expression:• Lower-precision operands are promoted automatically

(implicitly) to higher-precision data types, then the operation is performed. That conversion of the data type is called Numeric Promotion.

11

Page 12: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Mixed-Type Arithmetic– Conversions of Data Types

Implicit Type Casting

– Promotion is effective only for expression evaluation; not a permanent change. In other words the operand after the calculation returns to its original data type.

– This is called implicit type casting because it is done by the syatem and not by the programmer.

• For example: any expression involving a floating-point operand will have a floating-point result.

12

Page 13: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Promotion

• Therefore the term numeric promotion refers to changing a data type variable (which has already been declared) in an expression from a lower precision to higher precision at compile time (in other words the compiler automatically adjusts the data types).– Promotion takes place, for instance, when we have an

arithmetic expression to be evaluated like the one below: Operand1 Operator Operand2 3 + 4.2 (as an example)

13

Page 14: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Promotion– Thus, the first operand will be promoted (remember the promotion is

temporary) so that we now have: 3.0 + 4.2

After the expression is calculated 3.0 returns to its original value 3 (an int data type)

14

Page 15: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Promotion– Another example: int x=3; double y=4.0; double z=0; z= x+y; In this case the variable x is temporarily promoted to a double (only

for the duration of the calculation of the expression by the program). The result is a double which is saved in identifier z. Notice that after the expression is calculated the identifier x remains

an int holding the value 3 (not 3.0).• Question: explain the meaning of the phrase “the variable x is

temporarily promoted to a double “ in terms of memory spaces in the computer.

15

Page 16: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Rules of Promotion

The compiler applies the first of these rules that fits:1. If either operand is a double, the other operand is

converted to a double. 2. If either operand is a float, the other operand is converted

to a float. 3. If either operand is a long, the other operand is converted

to a long. 4. If either operand is an int, the other operand is promoted

to an int5. If neither operand is a double, float, long, or an int, both

operands are promoted to int.

16

Page 17: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Assignment Conversion• The equal sign = is not called equal in programming languages. It is

instead called the assignment operator.• It is used to indicate that one variable’s value (one identifier’s value) is

transferred from its memory space to the other variables memory space i.e int c= 2/3+(3*25%2) means: calculate the expression and then assign its result (store the result) in the

memory space identified by the symbol c if type int (4 byte sreserved) i.e int d =5; int c=d In this case we want the value stored in the identifier d (memory spaced of

4 bytes) to ALSO be stored (assigned) in the memory space identified as c (also 4 bytes)

17

Page 18: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Assignment Conversion• Assignment conversion takes place when we are trying to assign one

particular data type identifier to another data type identifier.– For example – int x=3;– double y=0;– y=x;

• In other words take the value of x and assign it to the identifier y

• or another way of saying the same thing is:– Take the contents of memory location identified by x and place it in the memory

location identified by y.

• The above is valid conversion because a lower precision can be assigned to a higher precision identifier (the inverse is not true).– Remember that y is 8 bytes and x is 4 bytes. We can take 4 bytes of data and put it in a

memory space of 8 bytes but not the other way around.

18

Page 19: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Example Of Implicit Type castingpublic class TestPromotion{

public static void main(String[] args) {

double taxRate=0.5345;float salesTax=0.5f;//demotion is allowed. Therefore the following is allowed//where taxRate accepts a float;taxRate=salesTax;

//The following is not allowed. Compiler will produce a warning//Possible loss of precision message Identifier salesTax can not be promoted to a double

salesTax=0.9f;salesTax=taxRate;

}}

19

Page 20: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Example Of Implicit Type casting

• In this example salesTax represents a float (which takes 4 bytes of memory) and taxRate a double (which takes 8 bytes of memory).

• It is O.K. to try to store a float into a memory area greater than the float memory area.

• It is NOT O.K. to try to store a double (8 bytes) into a memory area less that 8 bytes ( a float has 4 bytes).

20

Page 21: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Another Example of Implicit Type Casting

public class TestPromotion1{

public static void main(String[] args) {

double taxRate=0.5345;float salesTax=0.5f;double result=taxRate+salesTax;System.out.println(“Thre result is”+result);

}}• Here float data type salesTax is implicitly type casted to a double temporarily so that the

expression taxRate+salesTaxc an be evaluated. • Output:• The result is:1.0345

21

Page 22: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Another Example of Implicit Type Casting

public class TestPromotion1{

public static void main(String[] args) {

double taxRate=0.5345;int salesTax=2;double result=taxRate+salesTax;System.out.println(“Thre result is”+result);

}}Output:The result is:2.5345The int data type salesTax was implicitly (without us asking for it via an instruction) type casted

to a double in order to be added with the double data type taxRate.

22

Page 23: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Type Casting -Explicit

• The programmer can write a programming instruction to explicitly ask that a data type be converted to a different data type. This is called explicit type casting.

• Explicit type casting is done by enclosing the new data type name in parenthesis in front of the data type that w eare changing i.e.– int a=(int)4.324;Ordouble d=4.324;int a=(int)d;

23

Page 24: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Structure of a Java programpublic class NameOfClass{ //instance variables or attributes of the class are declared here int a=0; char c=‘v’; double anotherd=3.64; // next the methods of the class public void firstMethod( ) {

//code for this method } public int secondMethod() { //code for second method

}} //end of class

24

Page 25: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Class-what is a class

• A class is a category. – i.e Student is a class. It represents a category of

people that share common characteristics – We call those common characteristics: attributes

• For example, every student has:– A first name.– A last name– A student Id– Is registered at a school– Takes certain courses etc.– Those are some of the attributes that we can come up. There are

other of course that we can add to the list.

25

Page 26: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Class-what is a class

• In Java we create classes as they are needed. That is why we start a Java program by declaring a class name:

• i.e public class Student {

//we declare the attributes// we write methods for the class

}

26

Page 27: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Class-what is a class• The attributes make up the data of the class• The methods manipulate the data.• Suppose someone says: “The student earns grades”. Come up with the data and

the methods for a class.• The noun in the sentence is the class name, the verb is a method. The attribute is:

grade.• i.e public class Student

{char grade=‘ ‘;public void setGrade(char agrade)

{grade=agrade;

} }

27

Page 28: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Object-Oriented Programming• Classes combine data and the methods (code) to manipulate the data• Classes are a template used to create specific objects.

– An object is a specific instance of a class– i.e In the class Student we may have a specific student (an object of class Student) with

specific values for the attributes that we gave to the class:• First Name is John• Last Name is Doe• Grade is A• Etc.

• All Java programs consist of at least one class.• Object Oriented Programming (OOP) refers to the usage of classes in our

programs.

28

Page 29: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Why Use Classes?• Usually, the data for a program is not simply one item. • Often we need to manage entities like students, books, flights, etc.• We need to be able to manipulate such entities as a unit. • Classes allow us to separate the data for each object, while using common

code to manipulate each object. • Student class

– Data: name, year, and grade point average– Methods: store/get the value of the data, promote to next year, etc.

• Student object Object name: student1 Data: Maria Gonzales, Sophomore, 3.5

29

Page 30: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Class Members• Members of a class

– the class's fields and methods. Fields is another name for attributes.• Fields

– instance variables and static variables (we'll define static later)– Instance variables

• variables defined in the class and given a value in each objectfields can be:– any primitive data type (int, double, etc.)– objects of the same or another class

• Methods– the code to manipulate the object data

30

Page 31: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Encapsulation• Instance variables are usually declared to be private, which

means that they cannot be accessed directly outside the class.

• Users (clients) of the class must reference the private data of an object by calling methods of the class.

• Thus the methods provide a protective shell around the data. We call this encapsulation.

• Benefit: the class’ methods can ensure that the object data is always valid

31

Page 32: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Objects

• Object reference– an identifier of the object

• Instantiating an object– creating an object of a class; assigns initial values

to the object data– Objects need to be instantiated before being used

• Instance of the class– an object after instantiation

32

Page 33: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Naming Conventions

• Class names: start with a capital letter• Object references: start with a lowercase

letter• In both cases, internal words start with a

capital letter• Example: class: Student, PetAnimal objects: marcusAustin,

myBoaConstrictor

33

Page 34: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Example of a Classpublic class Student{

//let us declare 4 attributes (fields) and initialize them String firstName=“ “;

String lastName=“ “; int studentID=0; double gradeAverage=0.0; // next we create a method called the constructor method. public Student(String fn, String ln, int id, double gradaver) {

firstName=fn; lastName=ln; studentID=id; gradeAverage=gradaver;

} // The constructor initializes the attributes (or some of the attributes) to specific values requested by a

user. The constructor in the above example is called a non default constructor. We will show later another type of constructor method called default constuctor.

34

Page 35: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Example of a Classpublic String getFirstName(){

return firstName;}

//The above method is called an Accessor method because it accesses the value of an attribute

public void setfirstName(String finam){

firstName=finam;}

//The above method is called a Mutator method because it can change the value of an attribute.

35

Page 36: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Example of a Class

• The previous class is called a template class. It is a template of Student category (class).

• Notice that it ha sno main method although it has other methods such as– Constructor methods– Accessor methods– Mutator methods

• Another Java program called the client program can utilize this class.

36

Page 37: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Reusability of Classes

• Reuse– class code is already written and tested– you build a new application faster– the application will be more reliable

Example: A Date class could be used in a calendar program, appointment-scheduling program, online shopping program, etc

37

Page 38: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

How to Reuse a Class

• You don't need to know how the class is written or see the code of the class

• You do need to know the application programming interface (API) of the class

• The API is published and tells you:– how to create objects– what methods are available– how to call the methods

38

Page 39: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

API

• Documentation of the Java API is available on the Internet by going to site:

http://java.sun.com/javase/6/docs/api

39

Page 40: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Client Class

• Suppose we have written the program for the class Student.

• Another class, let us call it: StudentClient, needs to use the student class.

public class StudentClient {

// This class is going to have a main method // inside the main method we are going to create a Student class object (the term is: instantiate a

student class object // The student object will allow us to manipulate the data of the class (the values of the attributes) by

using the accessor and mutator methods of the template class Student. }

40

Page 41: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Back to Student Template Classpublic class Student{

//let us declare 2 attributes (fields) and initialize themString lastName=“ “;

int studentID=0; // next we create a method called the default constructor method. public Student()

{lastName=Joe;studentID=10;

} public Student(String ln, int id) {

lastName=ln; studentID=id;

}

41

Page 42: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Back to Student Template Classpublic String getLastName(){

return lastName;}public void setLastName(String ln){

lastName=ln;}public int getStudentID(){

return studentID;}public void setStudentID(){

return studentID;} THERE ARE TWO ERRORS IN THE LAST METHOD!! IDENTIFY THE ERRORS.

42

Page 43: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Constructors

• Initialize the fields (attributes)• A class can have a number of different

constructors.• Two types:– Default constructor takes no arguments. Initializes

the fields to specific values.– Non Default constructor takes arguments.

Initializes the fields to what values the arguments have.

43

Page 44: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Constructors

• Notice that constructors MUST HAVE THE SAME NAME AS THE CLASS

• Notice that constructors do not return any data type, NOT EVEN VOID.

44

Page 45: CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 4_1 GEORGE KOUTSOGIANNAKIS Copyright: 2015 Illinois Institute of Technology- George Koutsogiannakis 1

Study Guide

• Chapter 2– All of section 2.4

• Chapter 3– 3.1, 3.2

45