Week 1

Java Fundamentals

  • Be aware of the memory requirements and value ranges for primitive types
  • Use increment and decrement operators
  • Explain how pre- and post- increment/decrement operators differ in functionality


Week 2


  • Define aggregation
  • Define composition
  • Read and understand UML class diagrams


Week 3

Inheritance and Polymorphism

  • Create an abstract method; describe the purpose of abstract methods
  • Describe the differences between an abstract class and an interface

Week 4

GUI Components

  • Differentiate between layout panes such as: GridPane, FlowPane, HBox, and VBox
  • Use the layout panes listed above to arrange components on a scene

Event-Driven Programming

Week 5

GUI Components

  • Be able to use SceneBuilder with IntelliJ
  • Use SceneBuilder to create an FXML file describing a GUI layout

FX Markup Language

Exception Handling

Week 6

Exception Handling

  • Inspect a call stack trace displayed by an unhandled exception to determine what caused the exception to be thrown

Week 7

Files and Directories

  • Create a Java Path object and associate it with a file on disk
  • Determine if a file exists on disk
  • Determine if a Java Path object is associated with a file or a directory
  • Convert between Path and File objects
  • Use the Files class to obtain input and output streams

Input and Output (I/O)

Weeks 8 and 9

Documentation and Distribution

  • Generate HTML documentation using the Javadoc tool
  • Generate executable JAR files

Functional Programming

  • Make use of the Iterable.forEach() method
  • Be familiar with the following methods from the Stream interface: collect(), count(), distinct(), filter(), map(), max(), min(), limit(), skip(), sorted(), toArray(), and toList()

Week 10

Secure Software Development