Intermediate Java Programming

About This Course

This course is designed for students who have learned fundamental Java programming knowledges and skills and yearn to further solidify their learning and sharpen programming skills.  The course will teach more advanced Java topics, with an emphasis on hands-on practices and projects.  It will prepare students to be more confident and successful in the AP Computer Science A course, or the USACO Bronze course.


Students should possess beginner level Java knowledge and skills. A suitable student should have successfully completed our Fundamental Java Programming course or equivalent.

Students should already be familiar and comfortable with the following basic Java language concepts:

  • variables
  • data types
  • basic math and logical operations
  • conditional flow
  • iterations
  • arrays
  • String
  • functions

What do we teach? — Lots! (See some cool works!)

The class will follow a rigorous Java language curriculum, check out the scope and topics that will be covered at course plan.  We thoughtfully designed the curriculum so that the sequence of concepts makes the most sense and also develops spirally, and allow students to have more opportunities to practice previously learned knowledge to build a solid foundation.

  • Review fundamental key concepts and skills
  • 2-D Array (Matrix)
  • ArrayList
  • Object oriented programming with Inheritance
  • Graphics and Event-based Programming 
    • work with drawing on the screen
    • work with color and shapes
    • work with images and sounds
    • handle mouse clicks and keyboard input
  • 3~4 fun interactive projects
  • Final project — at the end of the courses students will design and create their own fun-packed project and stride in huge pride with a big grin! (Look at some student proposals!)

Class Structure

This course focuses more on hands-on programming with multiple fun and engaging projects, it will be a mix of lab and lectures for each lesson.


  • No textbook needed

Required Equipment

Yes, students need to have their own laptop (and charger 🙂 with an IDE (we recommend IntelliJ) properly installed. Students should try to complete the setup per instruction here prior to the first class.


Yes. There will be homework, of various length, most of the homework would be continuation from class practices plus extra tasks. Students will spend different amount of time on homework depending on how much progress they made from class. On average, expect to spend a couple of hours on homework weekly.

Should I take or skip this class?

The Intermediate Java course is for students who have learned the fundamental Java knowledge but not in a hurry to tackle the APCS or USACO yet. The students want to spend more time to further solidify their understanding of the important concepts, and sharpen their programming skills with fun projects and more hands-on practices. 

For students who already feel confident for the challenge of APCS or USACO courses,  they can skip this course and move on to APCS or USACO course right away.

What classes can students take after completion of this course?

Upon successful completion of the Intermediate Java course, students will be much better prepared to either take on competitive programming with our USACO course series, starting from the USACO Bronze course, or continue to take the APCS course.  Since they used this course to build themselves a stronger foundation in Java programming and problem solving, they are well equipped to pursue either path, or even both at the same time as some of our students do to fully test and explore your potential!

Where is this course in your ascending path

Fundamental Java Programming –> Intermediate Java Programming –> USACO Bronze or AP Computer Science A

Provide your comment/review: