2021S1 4260 Page, Java With Topics

Course Outline 4260

This is a second exposure to Java. We will look at the fundamentals of java from a more advanced viewpoint than in an introductory class. We will take a very close look at the interaction between the stack and the heap during the execution of a program. We will then develop inheritance, interfaces, and functional interfaces so we can do event-driven application programming in a graphical environment with full user interaction.

  1. Java Programming Fundamentals
    1. Java and the JVM
    2. Using the REPL jshell
    3. Java's 8 Primitive Types
    4. Variables haveTypes
    5. Java Classes and the main method
    6. A review of conditional logic and basic looping
    7. Scoping and the Call Stack
    8. The Heap
    9. The Java Class and Type Hierarchies
    10. Arrays, Lists, and Strings
    11. The Wrapper Classes and Auto[un|]boxing
  2. State, Methods, and static
    1. Objects have state, identity and behavior
    2. Constructors
    3. Classes can know and do things too: static items
    4. The static block and proper initialization
    5. The greased wall and static etiquette
  3. Be like me: Interfaces
    1. Interfaces are contracts
    2. Interfaces are types: introducting types and subtypes
    3. Interfaces can be generic.
    4. Interfaces can be extended to create more specific interfaces
    5. Interfaces can have static constants.
    6. Polymorphism
    7. Default Methods: What is this?
    8. Functional Interfaces
  4. Be like me: Inheritence
    1. Extending classes
    2. Constructors and super
    3. Polymorphism and overriding methods
    4. Let's get to the root of my Objections!
    5. Types and subtypes
  5. Collections
    1. Iterators and Iterables
    2. Making a stack
    3. You get to make a list. Now check it twice.
    4. forEach
    5. The Stream API
    6. Say what you want and don't tell me how to do it!
  6. JavaFX and Making Widgets
    1. Stage and Scene
    2. The Scene Graph
    3. Fun with Mr. Ali: Widget Layout
    4. How do I make a button work?
    5. Old style event handling
    6. Event Handling with Functional Interfaces and Lambdas
    1. The Canvas Object
    2. Paint and Colors
    3. Handling Mouse Events
    4. Using Inner Classes