Grade level
Grades 10-12
Prerequisites
Intro to Java or equivalent
Time to complete
About 20 hours (14 weekly lessons)
Cost
100% free

About this free Intermediate Java course

Intermediate Java is a free data structures and algorithms course for high school students who already know the basics of Java. It takes your skills to the next level and bridges the gap between an introductory course and college-level computer science. It covers the ideas that show up in AP Computer Science A, programming competitions like USACO, and technical interviews.

You'll deepen your object-oriented programming with interfaces and polymorphism and handle errors when working with files. Over 14 weekly lessons you'll also learn to measure an algorithm's efficiency, write recursive solutions, implement classic sorting and searching algorithms, and build the core data structures professional software relies on. Hands-on exercises throughout challenge both your creativity and your problem-solving.

Who this course is for

This course is for students in grades 10 through 12 who have completed Intro to Java or have equivalent experience. You should be comfortable with loops, arrays, ArrayLists, and writing your own classes before you start.

Course outline

  • Week 1: Interfaces. Defining contracts with interfaces and implementing them in your own classes.
  • Week 2: File handling. Reading from and writing to files with Java's I/O classes.
  • Weeks 3-4: Big O notation. Measuring time and space complexity and comparing algorithms.
  • Week 5: Recursion. Base cases, recursive calls, and solving problems by breaking them into smaller versions of themselves.
  • Weeks 6-7: Sorting algorithms. Selection sort, insertion sort, merge sort, and how their efficiencies compare.
  • Weeks 8-9: Searching algorithms. Linear search and binary search, and when to use each.
  • Weeks 10-11: Stacks and queues. LIFO and FIFO structures and their real-world uses.
  • Week 12: Maps. Storing key-value pairs with Java's Map interface and HashMap.
  • Week 13: Linked lists. Building nodes and links, and comparing linked lists with arrays.
  • Week 14: Hashing. Hash functions, collisions, and why hash tables are so fast.

What you'll learn

  • Analyze algorithms using Big O notation
  • Write recursive methods and trace how they run
  • Implement and compare classic sorting and searching algorithms
  • Build and use stacks, queues, maps, linked lists, and hash tables
  • Use interfaces and file I/O to structure larger Java programs

How long it takes

Plan on about 20 hours: roughly 90 minutes per weekly lesson, including time to code the examples yourself. Topics like recursion and Big O reward extra practice, so give yourself room to revisit them.

Frequently asked questions about Intermediate Java

Is Intermediate Java really free?

Yes. Intermediate Java is completely free, with no fees, subscriptions, or account required. STEM for Others is a 501(c)(3) nonprofit, and every course in our curriculum library is free for students, families, and teachers.

Is this course useful for USACO or coding interviews?

Yes. Big O analysis, recursion, sorting, searching, and data structures like stacks, queues, and hash maps are the foundation of competitive programming contests such as USACO Bronze and Silver, and of most technical interviews.

How do I start the course?

Click Begin Course at the top of this page to open the full slide deck in a new tab. You can also flip through the slides embedded above. Work through one unit at a time and try the practice questions before moving on.

Do I get a certificate?

The self-paced Intermediate Java materials don't include an official certificate. If you're taking the course through a STEM for Others chapter program, ask your chapter leader about recognizing your completion.

Can teachers and clubs use this curriculum?

Yes. Teachers, homeschool families, libraries, and after-school clubs are welcome to use the Intermediate Java materials with their students at no cost. STEM for Others volunteers also teach our curriculum in partner schools and libraries. You can find a chapter near you or start one at your school.

Related free courses

Related free webinar

Watch Cybersecurity & Digital Safety for Teens, a free STEM for Others webinar, to learn how to stay safe online and how cyberattacks work. Browse all free STEM webinars.

Graduation cap icon

Contributors to

Intermediate Java