Java Programming Fundamentals
Learn Java from scratch by building a Library Management System. Covers core syntax, OOP, collections, and interfaces through 16 paired teaching and coding lessons.
View badge details
About This Course
Course Curriculum
16 Lessons
Hello World & Java Setup
Learn what Java is, how the JVM works, how Maven projects are structured, and how to write your first Java program. Covers the main method, System.out.println, string concatenation, printf formatting, and Java comments.
Hello World - Lab Exercises
Hands-on coding exercises to run your first Maven project, print a welcome banner using System.out.println and printf, and declare your first Java variables for a Book object.
Variables, Types & Operators
Learn Java primitive types (int, long, double, boolean, char), String as a reference type, variable declaration and initialization, arithmetic and string operators, type casting, and common type-related errors.
Variables - Lab Exercises
Hands-on exercises to add typed fields to the Book class, instantiate Book objects in Main, and practice String operations and type casting in the Library Management System.
Control Flow
Learn if/else if/else, switch statements (traditional and arrow syntax), while and do-while loops, for and for-each loops, break and continue, and Scanner for console input. All examples build toward the Library Management System menu.
Control Flow - Lab Exercises
Hands-on exercises to add a getStatusLabel() method to Book using if/else, build a do-while menu loop in Main with switch, and add input validation with while and for loops.
Methods & Functions
Learn method declaration anatomy, static vs instance methods, parameters and return values, method overloading, scope, local variables, and the this keyword — all in the context of the Library Management System.
Methods - Lab Exercises
Hands-on exercises to extract a printBookDetails method, add input helper methods (promptForString, promptForInt), and add static ISBN formatter and validator methods to Book.
Object-Oriented Programming — Classes & Objects
Learn the four pillars of OOP (encapsulation, inheritance, polymorphism, abstraction), encapsulation with private fields and public accessors, constructor overloading, and the Java trinity: toString(), equals(), and hashCode().
OOP - Lab Exercises
Hands-on exercises to encapsulate the Book class with private fields and getters/setters, build the Patron class with constructors and equals/hashCode, and implement the BookCatalog class with ArrayList-backed CRUD operations.
Inheritance & Interfaces
Learn inheritance with extends, abstract classes, interfaces as capability contracts, polymorphism, method dispatch, abstract vs interface trade-offs, and common casting errors.
Inheritance & Interfaces - Lab Exercises
Hands-on exercises to make Book extend LibraryItem abstract class, implement the Loanable interface on Book, and wire the Library class to use Loanable for checkout operations.
Collections & Generics
Learn the Java Collections hierarchy, ArrayList vs LinkedList, HashMap for O(1) lookups, HashSet for uniqueness, generics for type safety, bounded type parameters, wildcards, and ConcurrentModificationException.
Collections - Lab Exercises
Hands-on exercises to upgrade Library catalog from ArrayList to HashMap keyed by ISBN, implement the Loan class with LocalDate fields and isOverdue(), and add getOverdueLoans() to Library with a new menu option.
Capstone Briefing
Review the complete Library Management System architecture, all concepts taught in the course, and explain the capstone project requirements: completing the loan creation logic, overdue detection, patron lookup, full menu integration, and error handling.
Capstone Project
Build the complete Library Management System. Complete loan creation logic, implement overdue detection with getDaysOverdue(), integrate all 5 menu options with try-catch error handling, and verify the full application works end-to-end.