Summer coding bootcamps are here!

Available for beginner to more advanced. Flexible options to fit your families summer plans.

Java Level 3: Advanced Java

4.8 (63 ratings)
|
Taken by 256 students

Introduce them to college-level programming courses with an emphasis on the technical aspect of computer science (the skills sought after in technical interviews!). This course focuses on software development, program design, model creation, documentation, and debugging.

Private 1:1
Format
Age 14-18
Learners
Weekly
Classes
50 minutes
Per class
Java Level 3: Advanced Java

About this Course

Java Level 3 is our culimating Java course. Students explore search and sorting algorithms along with basic data structures. At the end of the course, students work alongside their personalized instructor to build an app similar to Google Maps. After this course, students often advance to our AP CS or USACO courses.

Billed as

$250 / month

4 classes / month × $62.50 / class
First class free!
  • First class free!
  • Cancel anytime

1:1 classes are 50 minutes long and can be scheduled anytime Monday-Sunday from 7am to 7pm PT. To begin, select Try a Free Class to signup. Our team will then match you and set up your first class!

  • Course duration
    4-6 months
  • Lesson
    50 minutes
  1. Recursion-1: I know what a recursive function is and its two key components

  2. Recursion-2: I can write a basic recursive function in Java

  3. Recursion-3: I can write more complex recursive functions involving multiple self calls in Java

  4. Recursion-4: I can predict the outcome of a recursive function

  1. Time-1: I know what Big-O analysis is

  2. Time-2: I am able to identify the time complexity of a function

  3. Time-3: I understand the difference between the best-case and worst-case scenario of an algorithm

  4. Time-4: I am able to identify the time complexity of an algorithm with loops

  5. Time-5: I am able to identify the time complexity of a recursive function

  1. Linear-1: I understand and can explain the process by which the linear search algorithm searches for a piece of data

  2. Linear-2: I can implement a Linear Search algorithm in Java

  3. Linear-3: I know the time complexity of Linear Search

  1. Binary-1: I understand and can explain the process by which the Binary Search algorithm searches for a piece of data

  2. Binary-2: I can implement a Binary Search algorithm in Java

  3. Binary-3: I know the time complexity of Binary Search

  1. Selection-1: I understand and can explain the process by which the Selection Sort algorithm sorts data

  2. Selection-2: I can implement a Selection Sort method in Java

  3. Selection-3: I know the time complexity of Selection Sort

  4. Selection-4: I know the difference between in-place and out-of-place algorithms

  1. Insertion-1: I understand and can explain the process by which the Insertion Sort algorithm sorts data

  2. Insertion-2: I can implement an Insertion Sort method in Java

  3. Insertion-3: I know the time complexity of Insertion Sort

  4. Insertion-4: I can explain the key differences between insertion and selection sort

  1. Bubble-1: I understand and can explain the process by which the Bubble Sort algorithm sorts data

  2. Bubble-2: I can implement a Bubble Sort method in Java

  3. Bubble-3: I know the time complexity of Bubble Sort and how it’s performance compares to other sorting algorithms

  1. Merge-1: I understand and can explain the process by which the Merge Sort algorithm sorts data

  2. Merge-2: I can implement a Merge Sort method in Java

  3. Merge-3: I know the time complexity of Merge Sort and how it’s performance compares to other sorting algorithms

  1. Sustainable-1: I know what a nested class is

  2. Sustainable-2: I know the difference between an inner class and a static nested class

  3. Sustainable-3: I can write a simple nested class in Java

  4. Sustainable-4: I understand what generics are and when to use them

  5. Sustainable-5: I can write a generic class in Java

  6. Sustainable-6: I know what exceptions are and why they’re useful

  7. Sustainable-7: I understand the basic format of a “throw” statement in Java

  8. Sustainable-8: I understand the basic format of a try-catch block in Java

  9. Sustainable-9: I can handle exceptions in meaningful ways

  1. LinkedList-1: I know what a linked list is

  2. LinkedList-2: I can implement the inner node class for a singly linked list in Java

  3. LinkedList-3: I can implement the basic functionality of a linked list in Java

  4. LinkedList-4: I know what a doubly-linked list is

  5. LinkedList-5: I can implement the inner node class for a doubly linked list in Java

  6. LinkedList-6: I can implement the basic functionality of a doubly linked list in Java

  1. Stacks-1: I know what a stack is

  2. Stacks-2: I know how to push to a stack in Java

  3. Stacks-3: I know how to pop from a stack in Java

  4. Stacks-4: I know which data structures in Java can be used to implement a stack

  5. Stacks-5: I know when it is appropriate to use a stack to solve a problem

  1. Queue-1: I know what a queue is

  2. Queue-2: I know how to enqueue to a queue in Java

  3. Queue-3: I know how to dequeue from a queue in Java

  4. Queue-4: I know which data structures can be used to implement a queue in Java

  5. Queue-5: I know what a priority queue is and how it differs from a regular queue

  6. Queue-6: I can add to a Java PriorityQueue

  7. Queue-7: I can remove from a Java PriorityQueue

  8. Queue-8: I can identify when it would be useful to use a queue or priority queue

  1. Map-1: I know what a map is and that it consists of key-value pairs

  2. Map-2: I can add key-value pairs to a Map in Java

  3. Map-3: I can iterate through a Map in Java

  4. Map-4: I can retrieve a value in a Map using a key in Java

  5. Map-5: I can check whether a key is in a Map in Java

  6. Map-6: I know that keys must be unique, but values can have any value and be of any type

  7. Map-7: I can identify when it would be useful to use a map

  1. BST-1: I know what a Binary Seach Tree (BTS) is and how it works

  2. BST-2: I understand the basic terminology used to describe BSTs

  3. BST-3: I know the difference between pre-order, in-order, and post-order depth first search

  4. BST-4: I can insert a new node to a BST in Java

  5. BST-5: I can delete a node with 0-1 children in Java

  6. BST-6: I can delete a node with 2 children in Java

  7. BST-7 I can identify when it’s useful to use a BST

  1. HashTables-1: I know what a hash table is and how it works

  2. HashTables-2: I can write a simple hash function in Java

  3. HashTables-3: I understand what a load factor is and when it’s appropriate to rehash a hashtable

  4. HashTables-4: I understand the difference between separate chaining and open addressing in the context of collisions

  5. HashTables-5: I can identify when it’s useful to use a hash table

  1. Graph-1: I know what a graph is

  2. Graph-2: I understand the basic terminology used to describe graphs

  3. Graph-3: I know how to represent a graph as an adjacency list

  4. Graph-4: I know how to represent a graph as an adjacency matrix

  5. Graph-5: I can reason about when it’s best to use an adjacency list vs an adjacency matrix

  6. Graph-6: I understand what Dijkstra’s algorithm is used for and how it works

  7. Graph-7: I can identify when it’s useful to use a graph

  1. I use spacing and logical variable names to improve my code's readability

  2. I regularly comment my code to improve my code's readability

  3. I appropriately and frequently test my code

  4. I can independently debug my code

  5. I can independently determine which classes and objects best meet the goals of a project

  1. Joyful Collaboration

    1. I practice listening to my instructor and sharing my ideas to co-create understanding.
    2. I attempt tasks independently and ask my instructor questions when I need help.
  2. Unlimited Curiosity

    1. I take ownership of my learning by asking meaningful questions both when I need clarification and when I want to know more about a topic.
  3. Nimble Determination

    1. I practice resilience when I am frustrated that I have not yet achieved mastery of a new concept or skill; instead of complaining about challenges, I try new approaches and creative solutions.
  4. Invest in Excellence

    1. I arrive to class on time and prepared to learn, with my computer set up with a strong internet connection.
    2. I complete my homework on time, and if I cannot complete my homework due to other obligations, I honestly communicate the reasons for late homework to my instructor.
    3. I do my best to stay present and on task for the whole session. I support my focus by putting away any distracting technology and setting notifications on my device to “do not disturb” mode.

Instructors will assign students roughly 60 minutes of project related homework at the end of each session. Homework is designed to complement the class experience and ensure the student continues to gain practical experience outside of the session.

  1. Completion of Java Level 2 (or evidence of mastery of key concepts from Java Level 2)

  2. Familiarity with exponetial and logarithmic functions is recommended

Who are Juni’s Instructors?

Our instructors are subject matter experts from top US universities. Instructors are highly-vetted and background checked prior to joining and undergo extensive training before ever teaching on our platform.

Upon signing up, parents are asked a series of questions that allow us to match your child with an optimal instructor based on their unique needs and interests. Factors that are considered in our matching process include Learning Style, Personality, Personal Experience, and Academic & Career Aspiration.

Headshot for Puja D
Puja D
I really like bringing a strong energy to my classes, and sharing excitement with my students about learning new topics.

More Courses You Might Like

Real Reviews from Real Parents

4.9 out of 5

Trustpilot

Ray

My 3 sons ages, 10 1/2, 9 and 7 started using Juni in early June 2020 and absolutely love it. The instructors are college age kids and they relate to my boys very well. My oldest is doing both the coding and math tracks and I feel like he will be way ahead of his 5th grade class come the fall. Once the other two are old enough I will certainly be enrolling them in math as well.

Tarun Mehta

Juni has been amazing for my daughter. She is a reluctant learner when it comes to Computer Languages, but the Juni instructors have been engaging to her at a level where she feels comfortable with them and they manner in which they present the curriculum. They understood my ask that I Wanted her to start liking computer languages, and they are presenting the information in a way that is fun and relatable. I am very happy with my Juni experience and my daughter's journey with Juni so far!

Pooja

I have two boys taking classes and the Juni takes the time to match the right instructor for my children. They are patient and very consistent in their teaching. The boys are thoroughly enjoying their class and love accomplishing and learning new things!

Start Learning with Juni

Turn your child’s passion into a professional skill