Skip to the content.

Unit Review (units 1-9)

  • Unit 1 - Primitive + Reference Types
  • Unit 2 - Using Objects
  • Unit 3 - Booleans
  • Unit 4 - Iteration
  • Unit 5 - Writing Classes
  • Unit 6 - Arrays
  • Unit 7 - ArrayLists
  • Unit 8 - 2D Arrays
  • Unit 9 - Java Inheritance
  • Reflection
Team Teach Home Link
Unit 1 Primitive/Reference Types
Unit 2 Using Objects
Unit 3 Booleans
Unit 4 Iteration
Unit 5 Writing Classes
Unit 6 Arrays
Unit 7 ArrayLists
Unit 8 Our team teach
Unit 9 Inheritance

Unit 1 - Primitive + Reference Types

  • Primitive Types: Basic data types (e.g., integers, booleans) that hold their values directly in memory. They are immutable.
  • Reference Types: Data types (e.g., objects, arrays) that store references to their values. Modifying one reference affects all variables pointing to that data.

Unit 2 - Using Objects

  • Java Objects: Objects in Java are instances of classes that encapsulate both data (attributes) and behavior (methods), allowing for organized and modular programming.
  • Class Definition: A class in Java serves as a blueprint for creating objects, defining the attributes (fields) and methods that represent the custom data type.
  • Instantiation: Instantiation is the process of creating an object from a class using the new keyword, which allocates memory for the new object.
  • Access Modifiers: Access modifiers, such as public, private, and protected, are keywords that define the visibility and accessibility of class members, controlling how they can be accessed from other classes.
  • Method Overloading: Method overloading allows multiple methods within a class to share the same name but differ in parameter types or counts, enhancing the flexibility and usability of the methods.
  • Constructor Methods: Constructors are special methods that initialize new objects when they are created, and multiple constructors can be defined to accommodate different initialization requirements.
  • </ul>

    Unit 3 - Booleans

    1. Boolean Values
      • Definition: A data type that can be either true or false.
    2. Boolean Expressions
      • Definition: Statements that evaluate to a Boolean value.
      • Example: 5 > 3 evaluates to true.
    3. Logical Operators
      • AND (&&): true if both operands are true.
      • OR (||): true if at least one operand is true.
      • NOT (!): Reverses the Boolean value.
    4. Relational Operators
      • Compare values and return Boolean results (e.g., ==, !=, >, <).
    5. Control Structures
      • If Statements: Execute code based on Boolean conditions.
      • If-Else Statements: Provide an alternative path if false.
    6. Boolean Variables
      • Definition: Variables that hold true or false.
    7. Short-Circuit Evaluation
      • Second operand not evaluated if the result can be determined from the first.
    8. De Morgan's Laws
      • Laws:
      • !(A && B) is equivalent to !A || !B
      • !(A || B) is equivalent to !A && !B

    Unit 4 - Iteration

  • Loops
    • For Loop: Used when the number of iterations is known.
    • While Loop: Executes as long as a condition is true; useful for unknown iterations.
    • Do-While Loop: Similar to while, but guarantees at least one execution.
  • Control Structures

    Control structures manage the flow of a program using loops based on specific conditions, allowing for dynamic responses to user input or data.

  • Nested Loops

    Nested loops are loops within loops, useful for complex tasks like processing multi-dimensional arrays or generating combinations.

  • Iteration vs. Recursion
    • Iteration: Uses loops for repeated operations, generally more memory efficient.
    • Recursion: Involves a method calling itself, which can be elegant but may lead to higher memory usage and stack overflow.
  • Common Use Cases
    • Traversing arrays and collections.
    • Generating sequences or patterns.
    • Data processing tasks like computing sums and averages.
  • </ol>

    Unit 5 - Writing Classes

    1. Classes and Objects:
      • A class is a blueprint for creating objects, encapsulating data and methods.
      • An object is an instance of a class.
    2. Attributes (Fields):
      • Variables that hold data for the object, defining its state.
    3. Methods:
      • Functions within a class that specify behaviors, manipulating object data or performing actions.
    4. Constructors:
      • Special methods to initialize new objects. They have the same name as the class and no return type.
    5. Encapsulation:
      • Restricting access to certain components of an object, exposing only necessary methods for interaction.
    6. Access Modifiers:
      • Keywords that set visibility for classes, methods, and attributes (e.g., public, private).
    7. Method Overloading:
      • Defining multiple methods with the same name but different parameter lists within the same class.
    8. Static Methods and Fields:
      • Static members belong to the class rather than a specific object instance, allowing shared access.
    9. Inheritance (introductory):
      • The ability to create new classes based on existing ones, enabling code reuse and extension.

    Unit 6 - Arrays

    Click to expand
    1. Array Declaration and Initialization
      Arrays are used to store multiple values of the same data type. They can be declared and initialized in various ways, allowing programmers to define how many elements will be held and what those elements will be.
    2. Array Length
      The length of an array indicates the number of elements it contains. This is a crucial property, as it determines the limits for accessing and manipulating the elements within the array.
    3. Accessing and Modifying Elements
      Each element in an array can be accessed using its index, which starts at 0. This allows for retrieving or changing the value of any specific element based on its position within the array.
    4. Iterating Through Arrays
      To process each element in an array, iteration techniques are commonly employed. Loops, such as for-loops or enhanced for-loops, are used to traverse the array and perform operations on its elements.
    5. Multidimensional Arrays
      Arrays can have more than one dimension, allowing for the creation of matrices or grids. These are used to represent more complex data structures and can be accessed similarly to one-dimensional arrays, but with additional indices.
    6. Common Array Algorithms
      Various algorithms are often implemented with arrays, such as searching (finding a specific element) and sorting (organizing elements in a specific order). Understanding these algorithms is essential for efficient data manipulation.
    7. Passing Arrays to Methods
      Arrays can be passed to methods as parameters. This allows for operations to be performed on the array elements within the method, providing a way to manage and modify arrays without returning them.
    8. Array Limitations
      Arrays have fixed sizes, meaning once they are created, their size cannot be changed. This limitation necessitates careful planning regarding the number of elements an array will need to accommodate.

    Unit 7 - ArrayLists

    • ArrayList Definition: A resizable array implementation of the List interface in Java, allowing dynamic storage of elements.
    • Key Methods:
      • add(element): Adds an element to the end.
      • get(index): Retrieves the element at the specified index.
      • remove(index): Removes the element at the specified index.
      • size(): Returns the number of elements.
      • clear(): Removes all elements.
      • contains(element): Checks for a specific element.
    • Performance:
      • Access: O(1)
      • Add/Remove: O(n) (due to potential resizing)
    • Type Parameterization: Can define specific types (e.g., ArrayList<String>).
    • Iteration: Can be traversed using loops or iterators.
    • Comparison to Arrays: Offers flexibility in size and complex operations unlike fixed-size arrays.

    Unit 8 - 2D Arrays

    1. Definition:

      A 2D array, or two-dimensional array, is a data structure that organizes data in a grid format, consisting of rows and columns. Each element can be accessed using two indices.

    2. Declaration and Initialization:

      2D arrays are declared by specifying the number of rows and columns.

      Example in Java/C++: int[][] array = new int[rows][columns];

    3. Accessing Elements:

      Elements in a 2D array are accessed using their row and column indices, e.g., array[row][column];

    4. Traversing a 2D Array:

      Involves iterating through each element, often using nested loops—one for rows and another for columns.

    5. Common Operations:

      Operations include searching for an element, inserting or deleting elements, and performing calculations (like summing values).

    6. Applications:

      2D arrays are used in various applications, including image processing (pixels), game boards, and mathematical matrices.

    Unit 9 - Java Inheritance

    • Inheritance: Mechanism allowing a subclass to inherit properties and methods from a superclass, promoting code reusability.
    • Superclass and Subclass:
      • Superclass: Class being inherited from.
      • Subclass: Class inheriting from the superclass.
    • extends Keyword: Declares a subclass in Java.
    • Method Overriding: Subclass provides a specific implementation of a method defined in the superclass.
    • Super Keyword: Used to call superclass methods or constructors from a subclass.
    • Polymorphism: Enables methods to be called on subclass objects via superclass references, allowing for multiple forms.
    • Abstract Classes and Interfaces:
      • Abstract Classes: Cannot be instantiated; may contain abstract methods.
      • Interfaces: Define contracts for implementing classes, enabling multiple inheritance.
    • protected Access Modifier: Grants access to subclass members and classes in the same package.

    These concepts are fundamental to object-oriented programming in Java, enabling structured and manageable code.

    Reflection

    I really enjoyed Unit 4’s lesson on nested iteration and their demonstration of the example of the use of nested iteration to print the diamond pattern. It was a very interesting application of iteration to see and stood out the most to me from their lesson. Another team teach that I took many lessons away from was Unit 7’s team teach and their lesson on different types of searching algorithms. Their use of the online card simulation was very helpful to gain a deeper understanding of how each of the algorithms worked and was a great model on how to create a more understandable team teach for more theoretical concepts.

    import java.util.Scanner;  // Importing Scanner class for user input
    
    // Create a Scanner instance for user input
    Scanner scanner = new Scanner(System.in);
    
    // Unit 1: Primitive Types
    // Demonstrates basic integer operations and user input
    public static void unit1_PrimitiveTypes() {
        System.out.println("\nUnit 1: Primitive Types");
        int x = 5;  // Declaring an integer variable x with value 5
        System.out.println("What is the value of x (an integer)?");
        int userAnswer = scanner.nextInt();  // Taking user input as an integer
        
        // Checking if the user's answer matches the value of x
        if (userAnswer == x) {
            System.out.println("Correct!");
        } else {
            System.out.println("Incorrect. The correct value is " + x);
        }
    }
    
    // Unit 2: Using Objects
    // Introduces the concept of objects, focusing on Strings
    public static void unit2_UsingObjects() {
        System.out.println("\nUnit 2: Using Objects");
        String word = "Java";  // Creating a String object with value "Java"
        System.out.println("Guess the word stored in the String object:");
        String userGuess = scanner.next();  // Taking user input as a String
        
        // Comparing the user's guess with the actual word using equals method
        if (userGuess.equals(word)) {
            System.out.println("Correct!");
        } else {
            System.out.println("Incorrect. The correct word is " + word);
        }
    }
    
    // Unit 3: Boolean Expressions and if Statements
    // Demonstrates boolean comparisons and conditional if statements
    public static void unit3_BooleanExpressions() {
        System.out.println("\nUnit 3: Boolean Expressions and if Statements");
        int a = 10, b = 20;  // Declaring two integer variables a and b
        System.out.println("Is a less than b? (true/false)");
        boolean userAnswer = scanner.nextBoolean();  // Taking user input as a boolean
        
        // Comparing the user's answer with the actual boolean expression
        if (userAnswer == (a < b)) {
            System.out.println("Correct!");
        } else {
            System.out.println("Incorrect.");
        }
    }
    
    // Unit 4: Iteration
    // Shows how to use a for loop to sum numbers
    public static void unit4_Iteration() {
        System.out.println("\nUnit 4: Iteration");
        int sum = 0;  // Initializing sum to 0
        // Loop from 1 to 5 and add each number to the sum
        for (int i = 1; i <= 5; i++) {
            sum += i;
        }
        // Output the sum of numbers from 1 to 5
        System.out.println("The sum of numbers from 1 to 5 is: " + sum);
    }
    
    // Unit 5: Writing Classes
    // Introduces creating classes and objects (in this case, a Dog class)
    public static void unit5_WritingClasses() {
        System.out.println("\nUnit 5: Writing Classes");
        // Creating a new Dog object with name "Rex" and age 3
        Dog myDog = new Dog("Rex", 3);
        // Accessing and displaying the name and age of the Dog object
        System.out.println("Created a Dog object. Name: " + myDog.getName() + ", Age: " + myDog.getAge());
    }
    
    // Unit 6: Arrays
    // Demonstrates working with arrays and accessing elements by index
    public static void unit6_Arrays() {
        System.out.println("\nUnit 6: Arrays");
        int[] numbers = {10, 20, 30, 40, 50};  // Initializing an array of integers
        System.out.println("What is the value of numbers[2]?");
        int userAnswer = scanner.nextInt();  // Taking user input as an integer
        
        // Checking if the user's answer matches the value at index 2 of the array
        if (userAnswer == numbers[2]) {
            System.out.println("Correct!");
        } else {
            System.out.println("Incorrect. The correct value is " + numbers[2]);
        }
    }
    
    // Unit 7: ArrayList
    // Shows how to use an ArrayList to store and retrieve elements
    public static void unit7_ArrayList() {
        System.out.println("\nUnit 7: ArrayList");
        java.util.ArrayList<String> fruits = new java.util.ArrayList<>();  // Creating a new ArrayList of Strings
        // Adding fruits to the ArrayList
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");
        
        System.out.println("What is the second fruit in the ArrayList?");
        String userAnswer = scanner.next();  // Taking user input as a String
        
        // Checking if the user's answer matches the second element in the ArrayList
        if (userAnswer.equals(fruits.get(1))) {
            System.out.println("Correct!");
        } else {
            System.out.println("Incorrect. The correct fruit is " + fruits.get(1));
        }
    }
    
    // Unit 8: 2D Arrays
    // Introduces 2D arrays and accessing elements with two indices
    public static void unit8_2DArrays() {
        System.out.println("\nUnit 8: 2D Arrays");
        // Initializing a 2D array (matrix) with 3 rows and 3 columns
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };
        
        System.out.println("What is the value at matrix[1][2]?");
        int userAnswer = scanner.nextInt();  // Taking user input as an integer
        
        // Checking if the user's answer matches the value at matrix[1][2]
        if (userAnswer == matrix[1][2]) {
            System.out.println("Correct!");
        } else {
            System.out.println("Incorrect. The correct value is " + matrix[1][2]);
        }
    }
    
    // Unit 9: Inheritance
    // Demonstrates the concept of inheritance with Animal and Dog classes
    public static void unit9_Inheritance() {
        System.out.println("\nUnit 9: Inheritance");
        // Creating an instance of the Animal class
        Animal myAnimal = new Animal();
        // Creating an instance of the Dog class, which inherits from Animal
        Dog myDog = new Dog("Buddy", 5);
    
        // Calling the sound method from Animal and Dog classes
        System.out.println("The Animal says: " + myAnimal.sound());
        System.out.println("The Dog says: " + myDog.sound());
    }
    
    // Supporting Classes for Writing Classes and Inheritance (Units 5 & 9)
    
    // Animal class with a sound method, used for demonstrating inheritance
    class Animal {
        // Returns a generic animal sound
        public String sound() {
            return "Generic animal sound";
        }
    }
    
    // Dog class that extends Animal, adding specific attributes and behavior
    class Dog extends Animal {
        private String name;  // Dog's name
        private int age;  // Dog's age
    
        // Constructor for initializing Dog objects
        public Dog(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        // Getter method for the dog's name
        public String getName() {
            return name;
        }
    
        // Getter method for the dog's age
        public int getAge() {
            return age;
        }
    
        // Overriding the sound method to return "Woof!" for dogs
        @Override
        public String sound() {
            return "Woof!";
        }
    }
    
    // Call each method to simulate the interactive game
    unit1_PrimitiveTypes();
    unit2_UsingObjects();
    unit3_BooleanExpressions();
    unit4_Iteration();
    unit5_WritingClasses();
    unit6_Arrays();
    unit7_ArrayList();
    unit8_2DArrays();
    unit9_Inheritance();
    
    
    Unit 1: Primitive Types
    What is the value of x (an integer)?
    Incorrect. The correct value is 5
    
    Unit 2: Using Objects
    Guess the word stored in the String object:
    Incorrect. The correct word is Java
    
    Unit 3: Boolean Expressions and if Statements
    Is a less than b? (true/false)
    Correct!
    
    Unit 4: Iteration
    The sum of numbers from 1 to 5 is: 15
    
    Unit 5: Writing Classes
    Created a Dog object. Name: Rex, Age: 3
    
    Unit 6: Arrays
    What is the value of numbers[2]?
    Incorrect. The correct value is 30
    
    Unit 7: ArrayList
    What is the second fruit in the ArrayList?
    Incorrect. The correct fruit is Banana
    
    Unit 8: 2D Arrays
    What is the value at matrix[1][2]?
    Incorrect. The correct value is 6
    
    Unit 9: Inheritance
    The Animal says: Generic animal sound
    The Dog says: Woof!
    

    game asking for user input

    image

    image

    Checklist Link