Hi There!

I'm Dan Schlegel, an Associate Professor in the Computer Science Department at SUNY Oswego

Final Exam Study Guide

Bolded items have not been covered on previous exams and will be the emphasis of the final, though the exam is cumulative and all of the topics are fair game. I’ve put asterisks next to a couple pain points from previous exams. I would expect these to be re-evaluated. Items from the labs are also fair game for the exam and I would expect at least one question to come from them.

  • Object Orientation: Be able to explain the concepts, write code using the concepts, and explain what code using the concepts does.
    • Abstraction
    • Inheritance
    • Polymorphism
    • Encapsulation
    • Generics
  • Data Structures: Be able to explain how each of these works, and derive methods from your understanding for the various operations.
    • Expandable (dynamic) array
    • Linked lists (including variants)
    • Stacks
    • Queues
    • Trees
    • Binary Search Trees (Insert, remove, search)
  • Sorting Algorithms: Be able to explain how the algorithm works, and do it step-by-step on example input.
    • Selection sort
    • Insertion sort
    • Merge sort
    • Quick sort
  • Misc Topics
    • Asymptotic analysis
    • Methods of tree traversal
    • Binary search (in general)
    • Recursion*
    • Event-driven programming
    • XML parsing
    • Misc Java features
      • Access modifiers
      • Value vs reference*
      • Lambdas and streams