Skip Navigation

Use code EARLYBIRD21 when enrolling in a LIVE or Problem-Based course today and save big!
Get $250 off any LIVE course, and $300 off any Problem-Based course. Hurry—this offer ends March 9th.

Advanced Java Programming

Arrow image that is used as button to enroll in courses. Enroll in this Course

Open to: Grades 9-12

Eligibility: CTY-level or Advanced CTY-level math score required

Prerequisites: Completion of Intro to Java or equivalent

Course Format: Individually Paced

Course Length: Typically 3 months

Recommended School Credit: One-half academic year

Course Code: AJA

Course Description


This course introduces students to intermediate and advanced features of the Java programming language. Students will learn about object-oriented programming concepts such as inheritance, interfaces, abstract classes, abstract methods, and polymorphism; will learn how to write and read Java primitive types to and from files; how to serialize objects, and how to implement graphical user interfaces using Java’s FX components. Typical assignments, exercises, and projects include using built-in and programmer-defined classes, implementing inheritance and runtime polymorphism, and implementing graphical user interfaces with components like buttons, check boxes, scroll bars, and lists. At the end of the course, students submit a comprehensive final examination.

Students who successfully complete this course will be prepared to advance into AP Computer Science A.

This course does not have any synchronous class meetings, but students may schedule one-on-one virtual meetings directly with the instructor to answer questions or concerns.

Students may be invited to interact in CTY community spaces that include students and instructors and potentially specially invited guests that are not enrolled in their course. Student contributions (e.g., projects, forum posts, etc.) may remain in the course after the student completes the course. These artifacts may be preserved to showcase student work or to continue important conversations.

Materials Needed

Students must purchase a textbook and will need a Java language compiler:

Introduction to Java Programming, Comprehensive Version, by Y. Daniel Liang (11th Edition)

ISBN: 0134670949

Detailed Course Information

Course Details

Inheritance - Part 1

  • Introduction to Inheritance
  • Inheritance & Class Visibility
  • Base Class Constructors
  • Method Overriding
  • Preventing Inheritance
  • Runtime Polymorphism

Inheritance - Part 2

  • Abstract Methods & Abstract Classes
  • The Object Superclass
  • Casting Objects
  • Inheritance Design Guidelines


  • Introduction to Interfaces
  • Defining & Using Interfaces
  • Interfaces & Polymorphism
  • Using Constants in Interfaces

Exception Handling

  • Introduction to Exceptions
  • The Java Exception Hierarchy
  • Handling Exceptions
  • Defining & Throwing Exceptions

File Input & Output - Part 1

  • Working With Files & Directories
  • Java Streams
  • Writing Text Files
  • Reading Text Files

File Input & Output - Part 2

  • Writing Binary Files
  • Reading Binary Files
  • Writing Random Access Files
  • Reading Random Access Files

Object Serialization

  • Writing Objects to Files
  • Reading Objects from Files
  • Some Serialization Issues

Java Collections & Generics

  • Collections & Generics
  • Working With The ArrayList Class
  • Working With The LinkedList Class
  • Working With Map Classes

Java Threads

  • Java Threads
  • Creating Threads
  • Manipulating Threads
  • Synchronizing Threads

Working With GUI Components - 1

  • Introduction to Java FX
  • Adding Labels & Text Fields
  • Adding Buttons
  • Working with Layout Managers

Working With More Swing Components

  • Handling Java Events
  • Working with Radio Buttons
  • Working with Check Boxes
  • Working with ListsView Control
  • Working with Combo Boxes

Technical Requirements

This course requires a properly maintained computer with high-speed internet access and an up-to-date web browser (such as Chrome or Firefox). The student must be able to communicate with the instructor via email. Visit the Technical Requirements and Support page for more details.

The student will need the Java Runtime Environment.

Zoom online virtual classroom
This course uses an online virtual classroom which can be used for instructor-student communication if the student has any questions about the course or curriculum. The classroom works on standard computers with the Zoom desktop client and also tablets or handhelds that support the Zoom Mobile app. Students will need a computer with the Zoom desktop client installed to watch any recorded meetings. The Zoom desktop client and Zoom Mobile App are both available for free download.

Most course lectures may be viewed on mobile devices, but in some cases assignments and quizzes must be completed on a desktop or laptop computer.

Chromebooks are not recommended due to required downloading of specialized software.

This course uses Respondus LockDown Browser proctoring software for designated assessments. LockDown Browser is a client application that is installed to a local computer. Visit the Respondus website for system requirements.

While Chromebook can be used to progress through the course, all exams must be completed on a PC or Mac.



CTY Online Programs Computer Science - Comments and Feedback from Students, Parents, and Teachers



"This is my son's 2nd course with this instructor and JHU, and our expectation was exceeded again with the instructor’s quick, timely responses, depth of knowledge and her dedication to help my son understand the material."

"The instructor helped my son learn how to independently complete the course successfully. She gave helpful and timely feedback and guidance to me and my son. By the end of the course, my son was corresponding with the instructor and managing the course all on his own-- what a great skill to learn above and beyond material she helped him through, which he loved. He can't wait to take the next course."

"When I kept asking questions about the topic, my instructor didn't get irritated. He was patient with me and gave me well thought out answers. When I called him, he picked and helped me out."