Month 1
Week 1: Java Basics
Lesson 1: Java Setup and Introduction
Installing JDK and IDE
Writing your first Java program (Hello World)
Lesson 2: Basic Java Syntax and Operators
Variables and Data Types
Operators (arithmetic, relational, logical)
Lesson 3 (Practical): Basic Programs
Simple calculations, getting input from users
Week 2: Using Operators and Decision Constructs
Lesson 1: Conditional Statements
if-else and switch-case statements
Lesson 2: Loops
for, while, do-while loops
Lesson 3 (Practical): Problems with Loops
Fibonacci sequence, factorial, prime numbers
Week 3: Java Arrays and Methods
Lesson 1: Arrays
One-dimensional and multi-dimensional arrays
Lesson 2: Methods
Defining and calling methods, parameters, return types
Lesson 3 (Practical): Problems with Arrays and Methods
Array sorting, search algorithms
Week 4: Java Arrays and Methods (Continued)
Lesson 1: Method Overloading and Recursion
Lesson 2: Advanced Problems with Arrays and Methods
Lesson 3 (Practical): Recursion and Advanced Array Operations
Recursion examples, advanced array operations
Week 5: Object-Oriented Programming (OOP)
Lesson 1: Classes and Objects
Class definition, creating objects, constructors
Lesson 2: Encapsulation
Getter and Setter methods, access modifiers (private, public, protected)
Lesson 3 (Practical): Applications with Classes and Objects
Creating a small class hierarchy
Month 2
Week 6: Object-Oriented Programming (OOP) (Continued)
Lesson 1: Inheritance and Polymorphism
Inheritance, super keyword, method overriding
Lesson 2: Inner Classes and Anonymous Classes
Lesson 3 (Practical): OOP Applications
Examples of inheritance and polymorphism
Week 7: Exceptions and Exception Handling
Lesson 1: Exception Handling
What is an exception, try-catch blocks
Lesson 2: Custom Exception Classes
Throwing exceptions, custom exceptions
Lesson 3 (Practical): Exception Handling Applications
Handling invalid input, writing custom exception classes
Week 8: Generics
Lesson 1: Introduction to Generics
Generic classes and methods
Lesson 2: Generic Types and Wildcards
Bounded types, generic methods
Lesson 3 (Practical): Applications with Generics
Creating generic classes and methods
Week 9: Collections
Lesson 1: Introduction to Collections Framework
List, Set, Map interfaces
Lesson 2: Using ArrayList, HashSet, HashMap
Basic methods and uses
Lesson 3 (Practical): Applications with Collections
Small projects using ArrayList, HashSet, and HashMap
Week 10: Collections (Continued)
Lesson 1: Iterator and Collections Utility Class
Lesson 2: Advanced Applications with Collections
Lesson 3 (Practical): Advanced Collections Applications
Month 3
Week 11: Lambda Expressions and Streams
Lesson 1: Lambda Expressions
Functional programming with lambda expressions
Lesson 2: Introduction to Stream API
Using Stream API, basic methods (filter, map, collect)
Lesson 3 (Practical): Applications with Lambda and Streams
Data processing projects using lambda expressions and Stream API
Week 12: Lambda Expressions and Streams (Continued)
Lesson 1: Parallel Streams and Performance
Using parallel streams and performance benefits
Lesson 2: Advanced Stream Operations
Lesson 3 (Practical): Advanced Stream Applications
Week 13: IO and File Processing
Lesson 1: Introduction to Java IO
InputStream and OutputStream classes
Lesson 2: File Operations
File class, reading/writing files
Lesson 3 (Practical): File Processing Applications
File reading/writing projects
Week 14: IO and File Processing (Continued)
Lesson 1: Serialization
Object serialization and deserialization
Lesson 2: Advanced File Processing
Lesson 3 (Practical): Serialization Applications
Week 15: Database (PostgreSQL)
Lesson 1: Introduction to JDBC
JDBC API, establishing a connection
Lesson 2: Using SQL and PostgreSQL
Basic SQL commands, connecting to PostgreSQL
Lesson 3 (Practical): Database Operations with PostgreSQL
CRUD operations, using PreparedStatement
Month 4
Week 16: Database (PostgreSQL) (Continued)
Lesson 1: Advanced JDBC Operations
Lesson 2: JDBC Performance Optimization
Lesson 3 (Practical): Advanced Database Applications
Week 17: Spring MVC
Lesson 1: Introduction to Spring MVC
MVC architecture, setting up Spring MVC
Lesson 2: Controller, Service, Repository Layers
Layered architecture, Spring annotations
Lesson 3 (Practical): Spring MVC Project
Developing a simple Spring MVC application
Week 18: Spring MVC (Continued)
Lesson 1: Form Handling and Data Validation
Spring form handling, validation
Lesson 2: Introduction to Spring Security
Authentication and authorization
Lesson 3 (Practical): Spring MVC and Security Applications
Week 19: Spring Boot
Lesson 1: Introduction to Spring Boot
What is Spring Boot, creating and configuring a project
Lesson 2: Spring Boot Applications
Spring Boot starters, application configuration
Lesson 3 (Practical): Spring Boot Project
Developing a simple Spring Boot application
Week 20: Unit Tests
Lesson 1: Introduction to Unit Tests
Unit testing with JUnit, mocking with Mockito
Lesson 2: Advanced Testing Techniques
Lesson 3 (Practical): Unit Test Applications
Writing tests with JUnit and Mockito, Spring Boot testing