IPL / Mr. Hansen

Name: __________________________




Final Exam Study Guide



Quickly skim back through the assigned reading material. Do not reread everything, since goodness knows, you don’t have time to do all of that. This is where your reading notes can help you. When you first read the assigned reading, you made reading notes in which you wrote down some of the most important things that needed to be remembered from each section. Review your reading notes in depth, and you should be able to skim quickly over the actual reading material.

Assigned reading material during the semester:


·        Java textbook, beginning through §13.5 (pp. 1-156)

·        Python textbook, Chapters 1-3 and 5-10 (pp. 1-26 and 39-100)

·        The “Big Idea” of IPL (see 1/24/2011 calendar entry; this will be on the exam)

·        Sections 01-04 of the Become an XCoder Objective-C textbook (this will not be on the exam)

·        Mr. Hansen’s handout on forward and backward chaining (this will be on the exam)

·        The “Object Model” article


Important: Note that no language-specific features of Objective-C will be covered on the final exam.




Review all the terminology you are responsible for knowing on the final exam:


·        Everything in the “Object Model” article: messaging, classes, modularity, reusability, abstraction, encapsulation, polymorphism, inheritance, hierarchies, subclasses/subclassing, dynamism, dynamic typing, dynamic binding, and dynamic loading, all of which you should be able to define, recognize via fill-in-the-blanks, or use in a sentence

·        Java textbook, glossaries from Chapters 1, 2, 3, and 8

·        Python textbook, glossaries from Chapters 1, 2, and 10

·        Anything discussed in class or given as assigned supplementary reading, including such concepts as analysis, refactoring, operator overloading, OOP, Moore’s Law, DLL hell, spaghetti code, GPS (general problem solver), forward and backward chaining, and the “Big Idea” of IPL.


Whew! Luckily, even though you are responsible for a lot of terminology, you may limit your glossary review to the chapters listed above.




Practice reading and writing programs in Java and Python. In some cases, you may be asked to solve a problem by writing a recursive method, a looping method, or both. Comments will be required for all programs and program stubs on the final exam. Here are some examples of the difficulty level of programs that you are expected to be able to read and write:


  • Java: see calendar entries for 3/17/2011 and 4/14/2011
  • Java: see Exercises 10.4 and 10.5 (p. 127 of Java textbook)
  • Python: see Exercises 6.3 and 6.7 (p. 55 and p. 61, respectively, in the Python textbook)




You are not expected to memorize the following Java syntax for creating a class and a main method within that class:

public class FinalExamClass {

      public static void main(String[] args) {




Instead, this code will be provided for you as a “wrapper” that you can fill in.




You are expected, however, to know how to access and use built-in math functions in Java (for example, Math.floor and Math.pow) and Python (import math, then math.pi, math.pow, etc.). Minor syntax errors will be graded leniently. For example, if you forget the “import math” line in your Python program, that will be only a 1-point deduction.




Review your marked-up Big Quiz from May 26. This will be scanned and e-mailed to you on Memorial Day. If you have any questions regarding grading or scoring, be sure to e-mail Mr. Hansen right away. Mr. Hansen will also be available in MH-102 for in-person meetings before the exam on Tuesday, from approximately 9:00 a.m. onward. (Check the refectory during lunch if necessary.)




The exam is in MH-102 on Tuesday, May 31, from 2:00 to 4:00 p.m. Be sure to get plenty of sleep the night before!