Java is one of our most advanced course at CodeSimba.  As a complex language with many uses, we make learning JAVA easy AND fun program. This course is designed for students ages 14+. 

We understand kids, so we understand that each one is different and has a different learning style and pace.  Our instructors are experts at working with diverse ability levels and backgrounds.  

CodeSimba is passionate about making our courses accessible to every child, and our billing system reflects that.  We understand that commitments change and that life can be unpredictable.  The curriculum below lists the content that will be covered over the full 7-month course. 

Course Details

An Introduction to Java Programming

  • History of Java
  • Java’s Past, Present, and Future
  • Writing your first program
  • Saving and opening programs

Object-Oriented Programming and Java

  • Thinking in Objects: An Analogy
  • Objects and Classes
  • Behavior and Attributes
  • Inheritance, Interfaces, and Packages
  • Creating a Subclass

Java Basics

  • Statements and Expressions
  • Variables and Data Types
  • Comments 
  • Literals
  • Expressions and Operators
  • String Arithmetic 

Working with Objects

  • Creating New Objects
  • Accessing and Setting Class and Instance Variables
  • Calling Methods
  • References to Objects
  • Casting and Converting Objects and Primitive Types 
  • Odds and Ends
  • The Java Class Libraries
  • Summary 

Arrays, Conditionals, and Loops

  • Arrays
  • Block Statements
  • if Conditionals
  • switch Conditionals
  • for Loops
  • while and do Loops
  • Breaking Out of Loops 

Creating Classes and Applications in Java

  • Defining Classes
  • Creating Instance and Class Variables
  • Creating Methods
  • Creating Java Applications
  • Java Applications and Command-Line Arguments 

More About Methods

  • Creating Methods with the Same Name, Different Arguments
  • Constructor Methods
  • Overriding Methods 
  • Finalizer Methods
  • Summary

Java Applet Basics

  • How Applets and Applications Are Different
  • Creating Applets
  • Including an Applet on a Web Page
  • More About the <APPLET> Tag
  • Passing Parameters to Applets 

Graphics, Fonts, and Color

  • The Graphics Class 
  • Drawing and Filling
  • Text and Fonts 
  • Color 

Simple Animation and Threads

  • Creating Animation in Java
  • Threads: What They Are and Why You Need Them
  • Reducing Animation Flicker

More Animation, Images, and Sound

  • Retrieving and Using Images
  • Creating Animation Using Images
  • Retrieving and Using Sounds
  • Sun’s Animator Applet
  • More About Flicker: Double-Buffering

Managing Simple Events and Interactivity

  • Mouse Clicks
  • Mouse Movements 
  • Keyboard Events
  • The AWT Event Handler

The Java Abstract Windowing Toolkit

  • An AWT Overview 
  • The Basic User Interface Components
  • Panels and Layout
  • Handling UI Actions and Events 
  • Nesting Panels and Components
  • More UI Components 

Windows, Networking, and Other Tidbits

  • Windows, Menus, and Dialog Boxes


  • Method and Variable Access Control
  • Class Variables and Methods
  • The final Modifier  
  • abstract Methods and Classes

Packages and Interfaces


  • Programming in the Large 
  • Programming in the Small
  • The Limitations Placed on the Programmer
  • The finally Clause


  • The Problem with Parallelism
  • Thinking Multithreaded
  • Creating and Using Threads
  • Knowing When a Thread has Stopped
  • Thread Scheduling


  • Input Streams
  • Output Streams
  • Related Classes 

Native Methods and Libraries

  • Disadvantages of native Methods 
  • The Illusion of Required Efficiency
  • Writing native Methods 
  • A Native Library  

Under the Hood

  • The Big Picture
  • The Java Virtual Machine 
  • Bytecodes in More Detail
  • The .class File Format
  • Method Signatures 
  • The Garbage Collector
  • The Security Story