Exam Structure -------------- a. The exam will take 50 minutes exam and will be held in discussion session (not in lecture). Lecture will still take place on Monday. b. The exam will be closed book/closed notebooks. No calculators are allowed. (We recommend using a pencil and eraser, rather than a pen.) c. Format: i. Short answer questions. (This includes for example, multiple choice, True/False and fill-in-the-blank type quesitons.) ii. Code analysis questions. (We will give a short segment of code and you may be asked to identify syntax and logical errors, or to generate code output) iii. Write a program/code snippets to solve a few given problems. (You should be prepared to give a complete program, including full class heading and main method, but we may also ask you to provide just a single method or a fragment.) Midterm #2 Topics ----------------- Disclaimer: Everything that has been covered in lecture, in discussion, or on homeworks is fair play. The following is a list of topics to help in studying. (We have tried to be complete, but we might have forgotten a few topics. If you don't see your favorite topic here, please check with us, since it may just be an oversight.) Java-Specific Elements: ----------------------- - Pass by value - Return values - Strings (including conversion to/from primitive types) - Variables (instance, parameter, local, shadowing) - Loops (while, for, do-while), nested loops - switch statement - break and continue statements - Interfaces - Arrays (of primitives and of references), passing as parameters and returning arrays from methods - Packages - Javadoc General Progamming Issues: -------------------------- - Program Design - Testing - Debugging - Model-View-Controller design pattern (for GUI programming) - Event-driven programming and callbacks - Shallow/Deep copying - Privacy leaks - Program documentation - Call stack and Heap Java Class Library: ------------------- You should know how to use the following classes, and what their general capabilities are, but you do not have to memory the specific methods or their signatures. If you need them, we will provide them to you. - String - JOptionPane - Wrappers for primitive types - Random - StringBuffer - Stack Reading in Lewis and Loftus --------------------------- You are not responsible for material from Lewis and Loftus that has not been discussed in lecture, but it is a good idea to review this material and the exercises in the back of each chapter, since this will provide you with a more complete understanding of the material. Older chapters: (2.7, 3.3, 3.8) Chapt 5 (5.0-5.2 and 5.5) Chapt 6 (6.0, 6.1, and 6.3) Parts of Appendices G and M.