Skip to content

Projects Overview

Apply your Java OOP knowledge through progressive building projects. Each sprint focuses on specific concepts, building from simple applications to complex systems that showcase your programming skills.

Sprint 1 - Early Concepts

Build your first object-oriented application

Create a simple program using classes, objects, and basic collections. Focus on proper class design, object creation, and managing data with arrays or ArrayList. This sprint reinforces foundation concepts through practical coding.

You'll build: A basic application like a student management system, library catalog, or inventory tracker using fundamental OOP concepts

Sprint 2 - OOP Principles

Design with inheritance and polymorphism

Expand your application using inheritance hierarchies, method overriding, and polymorphic behavior. Implement proper encapsulation with access modifiers and create abstract classes or interfaces for flexible design.

You'll build: An extended version of your Sprint 1 project with class hierarchies, specialized subclasses, and polymorphic method calls

Sprint 3 - Advanced Integration

Handle real-world challenges

Add robust error handling with exceptions and persistent data storage using file I/O. Integrate multiple advanced concepts to create a complete, professional application that handles unexpected situations gracefully.

You'll build: A full-featured application with exception handling, file persistence, and advanced OOP design patterns

Final Project

Showcase your mastery

Design and implement a comprehensive Java application that demonstrates all course concepts. Include modern Java features like generics, lambdas, and optionally a graphical interface. This capstone project shows your complete OOP programming skills.

You'll build: A substantial application of your choice that incorporates the full range of Java OOP techniques learned throughout the course


Start here: Begin Sprint 1 after completing the Foundations section. Work through each sprint in order, as they build upon previous work. Take time to plan your application design before coding—good planning makes implementation smoother and more successful.