====== Due 11/3/08 (in class) ====== You don't need to hand anything in, just be prepared to discuss. - Study the Amazon.com interview questions. You might want to... - Try making a simple program with two threads that deadlocks the Ninjas. - After you figure out what the inner class one prints, type it in and run it. - Identify your single most time-consuming Project 3 bug. - What failure did it cause (e.g., what output did you see)? - What was the error? - How did you fix it? ====== Due 10/8/08 (in class) ====== - Print the "What makes a good program?" set of rules (from lecture [[http://www.cs.purdue.edu/homes/cs190m/fall08/notes/2008-10-06/|2008-10-06]], file ''programming-style.pdf''). Mark each rule as supporting one or more of the principles of Simplicity ("S"), Clarity ("C"), and/or Generality ("G"). - Add a junit test module to your project (Project 2B). Submit hardcopy of your test class (e.g., ''PuzzleSolverTester'') and include with project submission on regular due date. //Questions for class time discussion (nothing to be handed in, just be prepared to discuss): // - To what noun does the adjective "polymorphic" apply? - Distinguish between dynamically bound methods and statically bound data members. - On what syntactic structure is a "cast" applied? - Do casts generate compile time or runtime errors? - What is "Hoare's rule of consequence" and how does it apply to exceptions and subclass methods? - What is multiple inheritance? - What approach (keyword) in Java is used in place of multiple inheritance? - With what syllable do ''interface'' names frequently end? - Name two Java techniques to determine the class of an object. - What is the alternative way to implement a thread without subclassing Thread? - Variables may be of primitive type, class type, array type, and what fourth type?