D—Object-oriented programming


D.1 Objects as a programming concept (6 hours)

The paradigm of object-oriented programming should be introduced through discussion and example.

Extra resource: Java, Java, Java by Ralph Morelli & Ralph Walde. (CC BY 4.0)
A great college level open source license textbook to aid you.

Extra Code Examples
for "Read Before Write" and Tracing, from past papers

May 2014 - Genus and Species Project
Nov. 2014 - Rolling Stock & Trains Project
May 2015 - Library Bookloans Project
Nov. 2015 - Health Clinic Project
May 2016 - Hotels Project
Nov. 2016 - Train Routes Project
IntelliJ Project with all of the above code


And add introductory point that:

Encapsulation, inheritance, polymorphism match up with:
Security, efficiency, and flexibility

Outline the general nature of an object.

D.1.2 Distinguish between an object (definition, template or class) and instantiation. ......:

And so here is a good time for the second spiral of an OOP template class.

         Additional Needed Coding Notes "D.1.2-A": OOP - Template Class Structure

         Additional Optional Coding Notes "D.1.2-B": OOP - Much More Info, in fact maybe more than you need...

Construct unified modelling language (UML) diagrams to represent object designs.

D.1.4 Interpret UML diagrams.

D.1.5 Describe the process of decomposition into several related objects. ......:

A multi-class project, such as Pond, or other examples from D.1.5 notes.

Describe the relationships between objects for a given problem.

D.1.7 Outline the need to reduce dependencies between objects in a given problem.

D.1.8 Construct related objects for a given problem. ......:

Another multi-class project, this time with sorting and searching added in too.

Explain the need for different data types to represent data items.

D.1.10 Describe how data items can be passed to and from actions as parameters.

D.2 Features of OOP (4 hours)

Students should be able to describe the features of OOP that distinguish it from other approaches to computer programming.

Define the term encapsulation.

D.2.2 Define the term inheritance.

D.2.3 Define the term polymorphism.

Looking back on all projects in D.1
And a new project with inheritance and overloaded constructors.
         Netbeans/IntelliJ Projects To Look at: Bank project for Theory and Terms
         SuperHero Game project especially for Inheritance

D.2.4 Explain the advantages of encapsulation.

D.2.5 Explain the advantages of inheritance.

D.2.6 Explain the advantages of polymorphism.

D.2.7 Describe the advantages of libraries of objects.

GUI Introduced - and note, not until here!!!!!! ...or thereabouts

D.2.8 Describe the disadvantages of OOP.

D.2.9 Discuss the use of programming teams.

D.2.10 Explain the advantages of modularity in program development.

Advanced GUI poject (but no tables yet.)

D.3 Program development (20 hours)

Define the terms: class, identifier, primitive, instance variable, parameter variable, local variable.

D.3.2 Define the terms: method, accessor, mutator, constructor, signature, return value.

D.3.3 Define the terms: private, protected, public, extends, static.

D.3.4 Describe the uses of the primitive data types and the reference class string.

D.3.5 Construct code to implement assessment statements D.3.1–D.3.4.

A to-be GUI project, starting with new template class which will include all of the above.

**** For the following, D.3.6 to D.3.10 assume construction of these pieces within OOP.****

Construct code examples related to selection statements.

Taking this GUI project and adding some functionality to it - inputting data, conditional on radio buttons, for example.

Construct code examples related to repetition statements.

GUI table introduced in this project, and for loops used.

Construct code examples related to static arrays.

Arrays of objects... if this is not too big a step.

Discuss the features of modern programming languages that enable internationalization.

D.3.10 Discuss the ethical and moral obligations of programmers.

Now the stage-by-stage GUI Search and Sort of Array of Objects project (made in 2014.) Insta-GUI-OOP-Sort-and-Search project.


***OOP Extension***

***OOP (& Topic 5) Recursion***



go to Stage F (In Topic 5, HL Programming Extension)