Advanced Java Programming

Open to: Grades 9-12

Prerequisites: Qualifying math score and completion of Intro to Java or equivalent

Course Format: Individually Paced

Course Length: Typically 3 months

Recommended School Credit: 0.5 credit

Course Code: JV2

Course Description

Description

This course introduces students to advanced features of the Java programming language. Students will learn how to use inheritance, interfaces, exception handling, file input and output, and generic types, and how to incorporate graphical user interfaces (GUIs) into their programming applications. Students will also learn how to apply object-oriented design and programming principles to their programs. Typical assignments and projects include using built-in and programmer-defined classes to develop full-featured, easy-to-use programs. At the end of the course, students submit a comprehensive final examination.

Students are expected to be familiar with standard computer operations (e.g., login, cut & paste, email attachments, etc.). Students are strongly encouraged to take a free, online placement test before enrolling in this course.

Materials Needed

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

Introduction to Java Programming, Comprehensive Version, by Y. Daniel Liang [8th Edition, Prentice Hall, 2011]

The recommended compiler is the Java Development Kit, version 1.6, available from Sun Microsystems at no charge

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

Interfaces

  • 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 the Map Classes

Multithreading

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

Introduction to Swing

  • Introduction to Swing Classes
  • Adding Components to Panels & Frames
  • Using the Flow Layout Manager
  • Using the Border Layout manager
  • Handling Button Events

Working With More Swing Components

  • Working with Text Areas & Scoll Panes
  • Working With Check Boxes
  • Working With Radio Buttons
  • Working With Combo Boxes
  • Working With Lists

Event Handling & Data Validation

  • Handling Java Events
  • Implementing Event Listeners
  • Data Validation Tips

Back to top

System Requirements

All CTYOnline courses require a properly maintained computer with Internet access and a recent version web browser (such as Explorer 6, Firefox, or Safari).

CTYOnline Computer Science - Comments and Feedback from Students, Parents, and Teachers

Reviews

Quotes:

"CTYOnline has put together a wonderful introduction to web design course. The instructor was very responsive and patient. The course was clear and well thought out. My son has had a whole new world opened up to him. I believe it has changed him for the better, specifically as a thinking person, especially in relationship to computers."

"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."

"My son’s instructor has a great ability to interact with kids. He was able to teach a technical subject to my son amazingly well. He kindled interest in the subject. He is very dedicated and provided good feedback."

"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."

"My instructor was very helpful throughout my course with all the different concepts. He was very knowledgeable, and funny! I enjoyed working with his help."

"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."