Advanced Java, 2022

This is the Advanced Java Class. The daily pages will contain the code being worked on that day in its finished state for the day.

Tutorials Tutorials will begin during the second week of class. take place in the Library Mezzanine in the evening.

An Outline of What is to Come

  1. Part 0, Algorithmic Warmup
  2. Part I, Data Structures From the Inside. Here you learn how to build a data structure and you see that the same structure can be built with different internal mechanisms.
    • Stacks: Two Implementations, one interface
    • Implementing Iterable
    • Project: Two Implementations of A List
    • Project: Building a Heap and HeapSort
  3. Part II, Introducing JavaFX This is Java's modern GUI framework.
    • Subclassing Application
    • The Application life cycle
    • Buttons and Event Handling
    • Making a Scene: javafx.scene.layout
    • Making Menus and Handling Selections
    • Case Study: the HiPPoPotamus Calculator, Stacks, and RPN logic. We will use our Stack class for the calculator's logic.
  4. Part III, Interacting with the File System: Text Files We will be using java.nio.file classes and we will learn how to trigger their action from a GUI. We will also learn about the serialization of object and how to save state in a file.
    • Writing a simple text editor
    • Working with file choosers and dialogs
  5. Part IV: Graphics, the Canvas Object, and Serialization
    • Drawing in the Canvas Object
    • Colors and Paint
    • Sliders and Color Mixing
    • Case study:: a paint program
    • Saving graphical objects in a file

Weltanschauung for this Course By the time you straggle into this class, I expect you have signficant coding skill. You should be able to read the Java API guide and understand its contents.

We wil do some case studies in this class and I expect you to contribute to discussions on their design and implementation. You will see lots of highwire live coding and you will participate in the enterprise.

There will be two types of projects. One is an etude: these are small programs that ask you to solve a pretty specific probleem. The other is the building of some sort of working application. Forget tests and quizzes: everything depends on writing working code.

You will end up applying lots of things you learned in Procedural. This is where the rubber meets the road.

Driving Everyone will "drive." So, install the Airtame app on your lappy so you can have your day in at the rostrum! You can call on your classmates or me for assistance! You will learn about coding in front of others. It's an adventure. Only the foolish or the terminally insouciant will find it anything less than terrifying. When you drive, I will sit on your pod and bedevil your hapless classmates.