Prerequisites (which can be covered in an extra 90 minute session the previous evening for experienced programmers in other languages):
To know a little about in the target language ...
variables
calculations
conditionals
loops
functions (definition and use)
Input and output
How to add comments to a program
How to run a program
On the day:
"Single Block, Structured, Object Oriented"
Then ... an explanation of OO, and of how you do a job in an OO way. The tutor will NOT start by using all these words that are part of the OO Jargon, but by the end of the day you'll see where each of them fits in.
Class, Object, Method
Constructor, Destructor
Properties or Attributes
Static and Dynamic
Muttable and Immutable
Associated Objects
Inheritanace
Subclasses, Base classes and Extended Classes
Overloading and overriding; Polymorphism
Overloading Operators
Public, Protected, Package, Private
Multiple Inheritance, Interfaces and Mixins
Transient and Serialisation
Exceptions
The demonstration will be done by taking some example data, and handling it using the approach of Object Orientation. A second demonstration will use a signifcant file of real data, showing the delegates how the principles demonstrated earlier make for real gains as the data volume and complexity increases, but you do not want to program to have a similar increase in its complexity.
Philosophy of OO Design
Design Patterns
Singleton Pattern
Factory Methods
Unified Modelling Language
Extreme Programming
What makes a programming language OO?
Things from some other code that should not happen in OO
"What is this"
Switch
Direct access
Wrong sort of operation / wrong sort of data
Repeated code
Cardinal Values