CS 101 E Exam 2 Review Spring 2007

  • Slides: 17
Download presentation
CS 101 E – Exam 2 Review Spring 2007 Michele Co

CS 101 E – Exam 2 Review Spring 2007 Michele Co

Announcements • Review Session • Tonight, 7/7: 30 p. m. , OLS 009 •

Announcements • Review Session • Tonight, 7/7: 30 p. m. , OLS 009 • Will be announced via email • In-class Exam • Wednesday • Lab Quiz 2 • Same time as Lab Quiz 1 • Quiz will become available on Sunday evening, 7: 00 p. m. • MUST electronically submit your solution by 8: 30 p. m. • Contact me by Wednesday noon if you need to take the lab quiz in lab on Thursday. (Let me know which section you’d like to attend. )

 • • • Textbook Chapters Chapter 3 – Decision structures Chapter 4 –

• • • Textbook Chapters Chapter 3 – Decision structures Chapter 4 – Looping constructs Halting problem Chapter 5 - Methods Chapter 6 – Classes

Chapter 3 – Decision Structures • logical expressions • logical and, logical or, logical

Chapter 3 – Decision Structures • logical expressions • logical and, logical or, logical not • De. Morgan’s Laws • truth tables • operator precedence • testing for object equality • string comparison • short circuit evaluation

Chapter 3 - Decisions • if statements • if, if-else-if • nested if statements

Chapter 3 - Decisions • if statements • if, if-else-if • nested if statements if(Expression) Action • ? : notation (x > y) ? x : y

Chapter 3 - Decisions • switch statements switch(Expression) { case Case. Expression: Action_1; case

Chapter 3 - Decisions • switch statements switch(Expression) { case Case. Expression: Action_1; case Case. Expression: Action_n; default: } Action_n+1;

Chapter 3 • break statement

Chapter 3 • break statement

Chapter 4 - Loops • while • do-while • for break vs. continue •

Chapter 4 - Loops • while • do-while • for break vs. continue • loop indexing • Syntax for each construct • Components of each • Differences between the constructs • for vs. while vs. do-while • How often, and when is the condition expression evaluated? • nested loops

Loop Design/Analysis • Questions to consider in loop design and analysis • What initialization

Loop Design/Analysis • Questions to consider in loop design and analysis • What initialization is necessary for the loop’s test expression? • What initialization is necessary for the loop’s processing? • What causes the loop to terminate? • What actions should the loop perform? • What actions are necessary to prepare for the next iteration of the loop? • What conditions are true and what conditions are false when the loop is terminated? • When the loop completes what actions are need to prepare for subsequent program processing?

Halting Problem • Given a Java program P, and input I • Let P

Halting Problem • Given a Java program P, and input I • Let P be a filename for a program file on a disk somewhere • Let I be a filename for a file that contains all the input the program takes in • Will the program P with input I ever terminate? • Meaning will program P with input I loop forever or halt? • Can a computer program determine this? • Can a human? • First shown by Alan Turing in 1936 • Before digital computers existed!

Halting Problem Proof Idea • Consider a program P with input I • Suppose

Halting Problem Proof Idea • Consider a program P with input I • Suppose that a method Oracle. Check. Halt(P, I) exists • Tests if P(I) will either “loop forever” or “halt” • A program is a series of bits • And thus can be considered data as well • Thus, we can call Check. Halt(P, P) • It’s using the bytes of program P as the input to program P

Halting Problem Proof (cont’d) • Consider a new program: public class Test { public

Halting Problem Proof (cont’d) • Consider a new program: public class Test { public static void main (String args[]) { if ( Oracle. Check. Halt(“Test. java”, “Test. java”) ) // if Test. java loops forever System. exit(); // then halt else // else if Test. java halts while (true) { } // then loop forever } }

Why is the Halting Problem Important? • It was the first algorithm that was

Why is the Halting Problem Important? • It was the first algorithm that was shown to not be able to exist by a computer • It’s much harder to prove that a program can never exist

Chapter 5 - Methods • Method syntax • Trace method execution • Refactoring •

Chapter 5 - Methods • Method syntax • Trace method execution • Refactoring • benefits • disadvantages • return keyword • return values • returning primitive types vs. returning objects

Chapter 5 - Methods • Parameters • How parameters are passed in Java •

Chapter 5 - Methods • Parameters • How parameters are passed in Java • When can changes occur? • Variable scoping • static • local variables • parameters

Chapter 6 - Classes • mutator • accessor • constructor • specific • default

Chapter 6 - Classes • mutator • accessor • constructor • specific • default • What set of actions occurs when Circle c = new Circle(); is executed? • What is the purpose of a constructor?

Miscellaneous • Using Scanner class to read in from a file • Object-oriented programming

Miscellaneous • Using Scanner class to read in from a file • Object-oriented programming benefits • ++i vs. i++ • When are variables automatically initialized in Java?