| 0 | Define the scope of variables | Lessons | 
            
            
                | 1 | Define the structure of a Java class | Lessons | 
            
            
                | 10 | Use Java operators; use parentheses to override operator precedence | Lessons | 
            
            
                | 11 | Test equality between Strings and other objects using == and equals () | Lessons | 
            
            
                | 12 | Create if and if/else and ternary constructs | Lessons | 
            
            
                | 13 | Use a switch statement | Lessons | 
            
            
                | 14 | Declare, instantiate, initialize and use a one-dimensional array | Lessons | 
            
            
                | 15 | Declare, instantiate, initialize and use multi-dimensional arrays | Lessons | 
            
            
                | 16 | Create and use while loops | Lessons | 
            
            
                | 17 | Create and use for loops including the enhanced for loop | Lessons | 
            
            
                | 18 | Create and use do/while loops | Lessons | 
            
            
                | 19 | Compare loop constructs | Lessons | 
            
            
                | 2 | Create executable Java applications with a main method; run a Java program from the command line; produce console output | Lessons | 
            
            
                | 20 | Use break and continue | Lessons | 
            
            
                | 21 | Create methods with arguments and return values; including overloaded methods | Lessons | 
            
            
                | 22 | Apply the static keyword to methods and fields | Lessons | 
            
            
                | 23 | Create and overload constructors; differentiate between default and user defined constructors | Lessons | 
            
            
                | 24 | Apply access modifiers | Lessons | 
            
            
                | 25 | Apply encapsulation principles to a class | Lessons | 
            
            
                | 26 | Determine the effect upon object references and primitive values when they are passed into methods that change the values | Lessons | 
            
            
                | 27 | Describe inheritance and its benefits | Lessons | 
            
            
                | 28 | Develop code that makes use of polymorphism; develop code that overrides methods; differentiate between the type of a reference and the type of an object | Lessons | 
            
            
                | 29 | Determine when casting is necessary | Lessons | 
            
            
                | 3 | Import other Java packages to make them accessible in your code | Lessons | 
            
            
                | 30 | Use super and this to access objects and constructors | Lessons | 
            
            
                | 31 | Use abstract classes and interfaces | Lessons | 
            
            
                | 32 | Differentiate among checked exceptions, unchecked exceptions, and Errors | Lessons | 
            
            
                | 33 | Create a try-catch block and determine how exceptions alter normal program flow | Lessons | 
            
            
                | 34 | Describe the advantages of Exception handling | Lessons | 
            
            
                | 35 | Create and invoke a method that throws an exception | Lessons | 
            
            
                | 36 | Recognize common exception classes (such as NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException) | Lessons | 
            
            
                | 37 | Manipulate data using the StringBuilder class and its methods | Lessons | 
            
            
                | 38 | Create and manipulate Strings | Lessons | 
            
            
                | 39 | Create and manipulate calendar data using classes from java.time.LocalDateTime, java.time.LocalDate, java.time.LocalTime, java.time.format.DateTimeFormatter, java.time.Period | Lessons | 
            
            
                | 4 | Compare and contrast the features and components of Java such as: platform independence, object orientation, encapsulation, etc. | Lessons | 
            
            
                | 40 | Declare and use an ArrayList of a given type | Lessons | 
            
            
                | 41 | Write a simple Lambda expression that consumes a Lambda Predicate expression | Lessons | 
            
            
                | 5 | Declare and initialize variables (including casting of primitive data types) | Lessons | 
            
            
                | 6 | Differentiate between object reference variables and primitive variables | Lessons | 
            
            
                | 7 | Know how to read or write to object fields | Lessons | 
            
            
                | 8 | Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection) | Lessons | 
            
            
                | 9 | Develop code that uses wrapper classes such as Boolean, Double, and Integer | Lessons |