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.

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 Coding Notes: OOP Template Class Part 1

         Additional Coding Notes: OOP - Objects

         Additional Coding Notes: OOP - Template Class Part 2

         Additional Coding Notes: 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.

         Additional Coding Notes: OOP - Encapsulation

D.2.2 Define the term inheritance.

D.2.3 Define the term polymorphism.

         Netbeans Project To Look at: Bank Project for Theory and Terms
         (We did this in class, so do a Spotlight search for it.)

Looking back on all projects in D.1
And a new project with inheritance and overloaded constructors.

D.2.4 Explain the advantages of encapsulation.

D.2.5 Explain the advantages of inheritance.

D.2.6 Explain the advantages of polymorphism.

         Additional Coding Notes: Encapsulation & the Reasons for Encapsulation

         Additional Coding Notes: Polymorphism & Examples (aside from overloaded constructors)

         Additional Coding Notes: Inheritance Implementation

         Additional Coding Notes: Inheritance Example

         (Note that abstract and interface etc. is not in the curriculum.)
          + Morelli For inheritance and polymorphishm, do use the Morelli textbook: pages: 133-136 and 350-353 for overriding and 355-356 for overloading

D.2.7 Describe the advantages of libraries of objects.

GUI Introduced - and note, not until here!!!!!!

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.

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.


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



HL Extension

D.4 Advanced program development (15 hours)

Code-Camp-Day 2: Recursion Again

Define the term recursion.

D.4.2 Describe the application of recursive algorithms.

D.4.3 Construct algorithms that use recursion.

D.4.4 Trace recursive algorithms.

Code-Camp-Day 2: Referential Classes

D.4.5 Define the term object reference.

D.4.6 Construct algorithms that use reference mechanisms.


***For the rest of this D section, don't forget the main stuff on ADTs is in Topic 5, not just here.

Code-Camp-Day 2: Full List Implementation

D.4.7 Identify the features of the abstract data type (ADT) list.

D.4.8 Describe applications of lists.

D.4.9 Construct algorithms using a static implementation of a list.

D.4.10 Construct list algorithms using object references.

Code-Camp-Day 2: Collections

D.4.11 Construct algorithms using the standard library collections included in JETS.

D.4.12 Trace algorithms using the implementations described in assessment statements D.4.9–D.4.11.

D.4.13 Explain the advantages of using library collections.

Code-Camp-Day 2: Last Bits

D.4.14 Outline the features of ADT’s stack, queue and binary tree.

D.4.15 Explain the importance of style and naming conventions in code.


go to Stage H (Back to Topic 4 for Algorithms and Pseudocode)