We will cover the following topics:

  • General principles:
    • Abstraction
    • Recursion
    • Inheritance
    • Polymorphism
  • Java language features:
    • User-defined types
    • Interfaces
    • Recursive functions
    • Abstract classes and subclasses
    • Generics
    • GUI programming with even-driven code
    • Assertions
    • JUnit test framework
  • Some important algorithms:
    • Sorting
    • Searching
  • Some important data structures:
    • Arrays
    • Lists
    • Stacks
    • Queues
    • Binary trees