| D.1.1 | 
                Outline the general nature of an object. | 
                
                    Lessons
                 | 
            
            
            
                | D.1.2 | 
                Distinguish between an object (definition, template or class) and instantiation. | 
                
                    Lessons
                 | 
            
            
            
                | D.1.3 | 
                Construct unified modelling language (UML) diagrams to represent object designs. | 
                
                    Lessons
                 | 
            
            
            
                | D.1.4 | 
                Interpret UML diagrams. | 
                
                    Lessons
                 | 
            
            
            
                | D.1.5 | 
                Describe the process of decomposition into several related objects. | 
                
                    Lessons
                 | 
            
            
            
                | D.1.6 | 
                Describe the relationships between objects for a given problem. | 
                
                    Lessons
                 | 
            
            
            
                | D.1.7 | 
                Outline the need to reduce dependencies between objects in a given problem. | 
                
                    Lessons
                 | 
            
            
            
                | D.1.8 | 
                Construct related objects for a given problem. | 
                
                    Lessons
                 | 
            
            
            
                | D.1.9 | 
                Explain the need for different data types to represent data items. | 
                
                    Lessons
                 | 
            
            
            
                | D.1.10 | 
                Describe how data items can be passed to and from actions as parameters. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.1 | 
                Define the term encapsulation. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.2 | 
                Define the term inheritance. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.3 | 
                Define the term polymorphism. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.4 | 
                Explain the advantages of encapsulation. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.5 | 
                Explain the advantages of inheritance. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.6 | 
                Explain the advantages of polymorphism. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.7 | 
                Describe the advantages of libraries of objects. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.8 | 
                Describe the disadvantages of OOP. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.9 | 
                Discuss the use of programming teams. | 
                
                    Lessons
                 | 
            
            
            
                | D.2.10 | 
                Explain the advantages of modularity in program development. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.1 | 
                Define the terms: class, identifier, primitive, instance variable, parameter variable, local variable. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.2 | 
                Define the terms: method, accessor, mutator, constructor, signature, return value. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.3 | 
                Define the terms: private, protected, public, extends, static. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.4 | 
                Describe the uses of the primitive data types and the reference class string. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.5 | 
                Construct code to implement assessment statements D.3.1–D.3.4. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.6 | 
                Construct code examples related to selection statements. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.7 | 
                Construct code examples related to repetition statements. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.8 | 
                Construct code examples related to static arrays. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.9 | 
                Discuss the features of modern programming languages that enable internationalization. | 
                
                    Lessons
                 | 
            
            
            
                | D.3.10 | 
                Discuss the ethical and moral obligations of programmers. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.1 | 
                Define the term recursion. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.2 | 
                Describe the application of recursive algorithms. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.3 | 
                Construct algorithms that use recursion. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.4 | 
                Trace recursive algorithms. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.5 | 
                Define the term object reference. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.6 | 
                Construct algorithms that use reference mechanisms. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.7 | 
                Identify the features of the abstract data type (ADT) list. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.8 | 
                Describe applications of lists. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.9 | 
                Construct algorithms using a static implementation of a list. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.10 | 
                Construct list algorithms using object references. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.11 | 
                Construct algorithms using the standard library collections included in JETS. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.12 | 
                Trace algorithms using the implementations described in assessment statements D.4.9–D.4.11. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.13 | 
                Explain the advantages of using library collections. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.14 | 
                Outline the features of ADT’s stack, queue and binary tree. | 
                
                    Lessons
                 | 
            
            
            
                | D.4.15 | 
                Explain the importance of style and naming conventions in code. | 
                
                    Lessons
                 |