Midterm 3, Friday, April 14 (in-class) Closed-notes, closed-book, paper exam (no computer) Topics: The exam is cumulative so you'll have to know the previous topics as well. Though, the exam will feature new topics. OLD TOPICS: 1) The major ideas about the java compilation and execution process. 2) Main ideas about the format of java programs - main parts of a program - getting user input 3) Data types - integers, doubles, char, binary number system + conversions 4) Decisions - if statement and switch statement - nested if's 5) Loops - parts of a loop - while - for - nested loops - practice loop gymnastics 6) Strings - methods: especially charAt(), length(), equals() - using loops to process characters - basics of Objects vs primitive types (memory picture and references) along with why .equals is necessary instead of == - practice String gymnastics 7) Arrays - declare and initialize - accessing elements - with loops, especially for-loops - Multidimensional arrays (2D arrays as tables) New Items 8) Methods - naming - parameters, pass by value, pass by reference - command-line arguments - return values - variable scope - overloading (methods of the same name) 9) Classes - design philosophy and terminology - instance variables - private vs public - constructors - methods and accessing elements 10) Searching - sequential search - binary search - running times (# comparisons) Nothing on the exam about Sorting This midterm will feature more code segments and small programs for you to write instead of short-answer questions, matching, and true-false questions.