The final is on 14 December 2000, 10:30 AM -- 2:30 PM, in Wilson 112.
is comprehensive, drawing from material presented in-class during
the entire semester.
The final is open-notes: bring anything you like to the exam.
- The exam is a standard, 2-hour final. However, four
hours are scheduled so that time will not be an issue in taking this exam.
- It would be a good idea to review the Quiz material.
- If you have a conflict with the scheduled time for the final exam,
you must make arrangements with the instructor at least
72 hours in advance.
- Here is a final exam given previously.
- Object definition (class)
- Object instance
- Instance variable
- Local variable
- Loop invariant
- Loop termination condition
- Static method
- Linked list
- Heap (where instances are allocated)
- Stack (where local variables are allocated)
- Stack ADT
- Queue ADT
- Subclass, superclass
- Abstract class
- Write an expression for an arithmetic formula
- Tree representation of an expression
- Substitution to evaluate an expression
- Be able to explain what a method does
- Be able to write a method to compute something
- Be able to use the substitution model to show what a method computes
- Be able to use the data flow model to show what a method computes
- Be able to find and to fix errors in a method
- Be able to write a method from its specification
- Be able to write the specification for a given method
- The role and obligations of a constructor
- Method calls on an instance
- Use of instance variables
- Objects as containers
- Abstract methods and classes
- See "Recursion" (just kidding)
- Base cases
- Substitution model to trace evaluation
- Data flow model to show evaluation
- Determining valid input parameters for a method
- Write a recursive method to do something
- Pattern of an interative
- Trace what an interative loop does
- Write an interative loop to compute something
- Identify a useful loop invariant
- Identify a loop's termination condition
- Complete a loop based on a given loop invariant
- Data Structures
- Know the following ADTs covered in class:
- Understand that multiple representations can support the same ADT
- Understand the relative time complexity for an operation
across different reprsentations.
- Be able to implement one ADT based on another.
- Conversion of a number from one base to another
- Binary search -- arrays
- Binary search tree insertion/deletion
- Stable matching
Last modified 13:35:12 CST 26 November 2000
by Ron K. Cytron