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. 

  • 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, Doubly Linked Lists)
    • 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
    • Divide and conquer principle
    • XML parsing
    • Misc Java features
      • Access modifiers
      • Value vs reference*
      • Lambdas and streams*
      • Swing