This project provides a step-by-step approach in instruction and will equip you with fundamental concepts of using abstraction in Java Programming, from the ground up. Using jGRASP development environment, you will create a Java project that creates students' records such as name, registration number, subjects, and learning costs. By the end of this project, you will be able to write a Java program using abstract classes and interfaces. If this is the first time you are learning about abstraction you will benefit from writing programs from templates as well as a blank sheet to a fully functioning program. If you already have programming experience, this is an opportunity to refresh your skills in abstraction. No matter your level, you will be able to apply the skills obtained from this course in real-life programming exercises. To provide you with support outside the course, you will find a pool of additional notes and exercises that you can try at home. If you ever wanted to build on your object-oriented skills in Java that you already possess and become better at using inheritance, this project is the right place to start!