Author: BLARD
Objective: Establish a solid grounding in Java syntax, control flow constructs, and method fundamentals to enable structured problem-solving using core language features.
- Java Module 001
- Java Module 002
- Java Module 003
- Java Module 004
- Java Module 005
- Java Module 006
- Java Module 007
- Java Module 008
- Java Module 009
- Java Module 010
- Java Module 011
- Java Module 012
By the end of Month 1, learners should be able to:
- Configure a functional Java development environment.
- Write, compile, and execute Java programs from the command line or IDE.
- Apply variables, data types, operators, and expressions effectively.
- Implement conditional logic and iterative control structures.
- Design and invoke reusable methods with appropriate parameters and return types.
Focus: Environment configuration, syntax fundamentals, and primitive data handling.
-
Day 1: Understand Java architecture (JDK, JRE, JVM); install the JDK; create and run
HelloWorld.java.
Practice: Print your name and a welcome message. -
Day 2: Study comment styles (
//,/* */); explore primitive data types (int,double,char,boolean).
Practice: Declare and print variables of each primitive type. -
Day 3: Introduce non-primitive types (
String); understand variables and constants (final).
Practice: Concatenate multiple strings and utilize a constant value. -
Day 4: Learn arithmetic operators (
+,-,*,/,%).
Practice: Implement a program that calculates the area of a rectangle. -
Day 5: Examine comparison (
==,!=,>,<) and logical operators (&&,||,!).
Practice: Determine whether a number is both positive and even. -
Weekend Review: Consolidate Week 1 concepts by developing a program that performs calculations and comparisons between two numbers.
Focus: Decision-making constructs and logical branching.
-
Day 1: Implement
if,else if, andelsestatements.
Practice: Classify a number as positive, negative, or zero. -
Day 2: Explore nested conditional logic.
Practice: Categorize age groups (child, teen, adult). -
Day 3: Introduce the
switchstatement for structured branching.
Practice: Map numbers (1–7) to corresponding day names. -
Day 4: Integrate
ifandswitchfor menu-driven workflows.
Practice: Create a console menu to perform arithmetic operations. -
Day 5: Validate logical conditions and handle edge cases.
Practice: Implement a grading system with input validation (A–F). -
Weekend Review: Build a simple quiz simulator that evaluates answers using conditional logic.
Focus: Looping mechanisms and iterative problem solving.
-
Day 1: Learn the
forloop and iteration patterns.
Practice: Print numbers from 1 to 10 and compute their sum. -
Day 2: Understand the
whileloop and condition-driven repetition.
Practice: Print all even numbers up to 20. -
Day 3: Study the
do-whileloop and its execution semantics.
Practice: Prompt the user repeatedly until valid input is provided. -
Day 4: Use loop control statements (
break,continue).
Practice: Terminate a loop at a specific value and skip odd numbers. -
Day 5: Combine loops with conditionals for dynamic logic.
Practice: Generate a multiplication table for a given number. -
Weekend Review: Develop a program to compute prime numbers up to 50 using loops and conditional checks.
Focus: Modular programming and method abstraction.
-
Day 1: Define methods, return types, and invocation patterns.
Practice: Implement a method to compute the square of a number. -
Day 2: Work with parameterized methods.
Practice: Create a method that adds two numbers. -
Day 3: Introduce method overloading.
Practice: Overload a method to support bothintanddoubleinputs. -
Day 4: Understand variable scope and lifecycle.
Practice: Experiment with local versus class-level variables. -
Day 5: Emphasize clean method design and reusability.
Practice: Implement a method that determines if a number is prime. -
Weekend Project:
Build a console-based Simple Calculator that performs arithmetic operations using conditionals, loops, and modular methods. Include robust input validation and clear user prompts. -
Monthly Milestone:
Deliver a functional calculator application demonstrating structured control flow, reusable methods, and defensive input handling.
Objective: Master core OOP principles and utilize Java’s collection framework for structured data management.
Focus: Object modeling, constructors, and encapsulation.
-
Day 1: Define classes, attributes, and object instantiation.
Practice: Create aBookclass withtitleandauthorfields. -
Day 2: Implement default and parameterized constructors.
Practice: Extend theBookclass with appropriate constructors. -
Day 3: Apply the
thiskeyword for context reference.
Practice: Usethiswithin constructors and instance methods. -
Day 4: Enforce encapsulation using private fields and getters/setters.
Practice: Encapsulate all attributes of theBookclass. -
Day 5: Model object interactions.
Practice: Instantiate multipleBookobjects and display their details. -
Weekend Review: Develop a mini library manager to handle multiple book records.
Focus: Hierarchical design and dynamic behavior.
-
Day 1: Implement inheritance using
extends.
Practice: Create aVehiclesuperclass and aCarsubclass. -
Day 2: Apply method overriding to demonstrate polymorphism.
Practice: Override adescribe()method in theCarclass. -
Day 3: Understand access modifiers (
public,private,protected, default`).
Practice: Refactor class members using appropriate visibility levels. -
Day 4: Organize code with packages.
Practice: Structure classes into logical packages. -
Day 5: Expand class hierarchies.
Practice: Add aTrucksubclass extendingVehicle. -
Weekend Review: Simulate a vehicle showroom system using inheritance and polymorphism.
Focus: Structured data storage and collection manipulation.
-
Day 1: Work with one-dimensional arrays.
Practice: Store and print five numbers. -
Day 2: Introduce multi-dimensional arrays.
Practice: Create and display a 2×3 matrix. -
Day 3: Use
ArrayListfor dynamic collections.
Practice: Manage a list of student names. -
Day 4: Iterate using enhanced
for-eachloops.
Practice: Traverse and print elements of anArrayList. -
Day 5: Ensure uniqueness with
HashSet.
Practice: Store unique city names. -
Weekend Review: Build a student-grade manager using arrays and
ArrayList.
Focus: Key-value data structures and collection interoperability.
-
Day 1: Implement
HashMapfor key-value storage.
Practice: Map student IDs to names. -
Day 2: Combine multiple collection types.
Practice: Associate students with grades usingHashMapandArrayList. -
Day 3: Iterate through maps and complex structures.
Practice: Print all key-value pairs in aHashMap. -
Day 4: Utilize collection utility methods (
size(),contains()).
Practice: Validate element existence within collections. -
Day 5: Apply collections to real-world scenarios.
Practice: Simulate an inventory management system. -
Weekend Project:
Develop a console-based Student Management System using OOP and collections to manage student records (name, ID, grades). -
Monthly Milestone:
Deliver a modular system employing encapsulation, inheritance, and Java Collections Framework.
Objective: Implement robust error handling, persistent storage, and functional-style operations using Streams and Lambdas.
Focus: Runtime stability and defensive programming.
-
Day 1: Implement
try,catch, andfinally.
Practice: Safely handle division-by-zero errors. -
Day 2: Use
throwandthrowsfor controlled error propagation.
Practice: Validate numeric input and throw exceptions for invalid values. -
Day 3: Create custom exception classes.
Practice: Define and use anInvalidAgeException. -
Day 4: Combine loops with exception handling.
Practice: Continuously prompt until valid input is received. -
Day 5: Differentiate checked vs unchecked exceptions.
Practice: Handle multiple exception types in one program. -
Weekend Review: Implement a user input validator leveraging custom exceptions.
Focus: Persistent data storage and retrieval.
-
Day 1: Write data using
FileWriter.
Practice: Persist a list of names to a text file. -
Day 2: Read data using
FileReaderandBufferedReader.
Practice: Load and display file contents. -
Day 3: Perform combined read/write operations.
Practice: Append new records to an existing file. -
Day 4: Handle file-related exceptions robustly.
Practice: Wrap all I/O operations with appropriate exception handling. -
Day 5: Apply file handling to practical use cases.
Practice: Log user inputs to a persistent file. -
Weekend Review: Build a simple contact list manager with file persistence.
Focus: Functional programming constructs and project tooling.
-
Day 1: Use Streams API (
filter,map).
Practice: Extract even numbers from a list using streams. -
Day 2: Implement lambda expressions for concise behavior definitions.
Practice: Sort a list using lambda-based comparators. -
Day 3: Combine Streams with lambdas for transformations.
Practice: Filter and square numbers greater than five. -
Day 4: Introduce Maven/Gradle fundamentals and project structure.
Practice: Initialize and build a simple Maven project. -
Day 5: Refactor previous work into a build-managed project.
Practice: Convert an earlier project to Maven structure. -
Weekend Review: Enhance a previous application using Streams and lambdas.
Focus: End-to-end application design integrating all learned concepts.
-
Day 1: Design a console-based Banking Application (accounts, transactions).
-
Day 2: Implement account lifecycle operations (create, deposit, withdraw).
-
Day 3: Persist transaction history using file I/O.
-
Day 4: Integrate exception handling and Streams for validation and filtering.
-
Day 5: Refine UX prompts and perform comprehensive testing.
-
Weekend Capstone:
Finalize the Banking Application, ensuring integration of OOP, collections, file handling, exception management, and Streams. -
Final Milestone:
Deliver a robust, modular console application demonstrating full-spectrum Java proficiency across three months.
- Daily Coding Discipline: Reinforce concepts through consistent implementation.
- Debugging Practices: Use structured logging and step-through debugging tools.
- Authoritative References: Consult official Java documentation and standard language specifications.
- Project-Centric Learning: Prioritize practical implementations over passive reading.
- Periodic Reviews: Revisit weak areas weekly and solve incremental coding challenges to validate mastery.