Teaching Java

Teaching progamming techniques in classes usually raises a 'skill conflict'. Some students have more experience than others and every one has different interests. Different people prefer different approaches and have different prerequisites to software development. The book provides a practical guideline to deal with these differences and to make sure that every student can participate with his full capacity. While the instructor should know the book, the students can stick to the The ROAF Tutorials online as a guideline.

This page should provide a rough idea of the teaching order.

Part I: From Vision to Mission

This first part (chapters 1 to 3) is a general introduction to objects in software derived from devices and applied to real objects. The modelling techniques OOA&D and UML can be presented to the class before coding anything in Java. After introducing The ROAF Vision every one can write down his common understanding of modeling the world and his expectations of what 'the system' should be able to do. It should be interesting to keep these notes until the end of the class project.

Please share your thoughts and expectations online!

Chapter 13: The Real Object Reference Application

The mission of the book is to provide a reference application as the proof of concept for the ROAF. The reader can follow and experience the making of the game London Chase, which is kind of a skeleton of the famous Scotland Yard Board Game. LondonChase is a client-server application with the clients representing players populating a server application (game) with a map scenario (game board) and a ruleset (controller). The reference application marks the end of the initial coding from scratch and the beginning of an evolutionary life cycle development. 

In a classroom it can be boring to start from scratch without really getting the whole picture. For a class it is much more exiting - after the introduction and making notes - to jump directly to the end of the book and play with the reference implementation. Developers can work on different details of one application with the common constraint to keep it up and running.

Chapter 13 'Mission accomplished: time to play' provides instructions how to set up the distributed application 'out of the box' and allow the students to 'enter' the scenario with their own implementation of a Real Object, in this case being a London Chase Player. The personal real object serves as the personal programming environment receiving external information, which can be processed by internal program flow. Implementations can range from very simple code all the way to artificial intelligence, depending on individual knowledge, skills and interests. Testing and verification implicitly takes place by interacting online with other (students) objects.

Ideally the class takes place with a PC pool, one PC running the server and projecting the server GUI to the wall with a beamer. Every student can install his personal Real Object Client connect to the server and watch his personal Real Object on the screen. Then he can leave the scenario, improve the client implementation and re-enter the scenario, which is represents the development cycle of the client program.

Chapters 4, 5 and 6 - Entry Level

Chapter 4 of the book begins with a simple implementation of a GeoPoint and extracting an interface for general usage. This part is suited for program beginners to understand the basics of classes, objects and interfaces. From these simple classes the book proceeds with the introduction of object collections to create GPS routes and traces.

Chapter 5 introduces the idea of a framework by demonstrating how to create a mapping GUI with the Java Swing Framework. A team could be pointed out to be responsible for the graphical frontend/s of the application.

Chapter 6 combines the implementations from the 2 preceding chapters to show how to 'run' objects and observe them on a mapping frontend.

Chapters 7, 8 and 9 - Spatial Data Excursion

Chapters 7 and 8 provide a very detailed introduction to the processing of digital maps. Depending on the time constraints these chapters can be excluded from the ROAF curriculum. Or they can be used in a class about spatial data, digital maps and navigation to create a dedicated map compiler.

Anyhow chapter 9 combines all components developed in Chapters 4 to 8 in one application: the Navigator. With the Navigator the development groups (GPS, GUI and Spatial Data) can be brought back together to discuss how to improve or modify the application. 

Please visit the roaf.de/forum and roaf.de/wiki to share your discussions and make proposals! It would also be welcome to setup TODO lists to make sure that every one is working on one ROAF and avoid redundant implementations.

Part IV: Real Object Applications

At this point the class should have a good understanding of The ROAF Vision, OO methodologies and programming with Java. This part goes through modeling a server architecture in well defined layers to separate technical implementations from the semantics of the actual scenario.

Note that it does not make much sense to only read Part IV in the book.
It is rather designed to install the reference implementation before reading or teaching.

Part V: Evolution

The final part of the book is meant as a transition from the result of the book, being the ROAF v1.0 with the reference application, to this website. With a number of Real Object Applications the programming of the Framework around them begins to make sense. The book provides some design rules and a general direction of ROAF paradigms, which should suffice to establish a common development in the ROAF community while leaving enough freedom to implement your own ideas - which were written down and shared online in the first classroom session (see above)!