New Courses. New Skills.

Discover real skills for the world right now. Over 14 NEW courses are here at Juni.

AP Computer Science A

Prepare for the AP Computer Science exam with Juni. This course teaches Java fundamentals and is tailored to the exam in May. One-on-one help provides support outside of the classroom. Give them a great shot at college credit with this prep course.

First class free!
$62.50/ class
Billed Monthly
Total Billing $250
AP Computer Science A
Format
Private 1:1
Age
Ages 14-18
Duration
Duration 6-8 months
Class size
Personalized 1:1 Instruction

50-minute sessions available Monday-Sunday 7am-7pm PT

Juni Instructor Kara sitting on a couch

Get hand-matched with an instructor that meets your child’s schedule and learning style. To begin, click the button below and select 3 potential timeslots during the week that work for your family and share some details about your learner. We’ll match you and set up your first class!

What and how will you learn?

  1. Completion of Python Level 2 or Java Level 2
  2. Students who enter the course having completed Java Level 2 will be able to move through the course at an accelerated pace).

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. Variables-1: I know what a variable is and when to use a variable in my code

  2. Variables-2: I can initialize a variable in Java

  3. Variables-3: I can print out a variable in Java

  4. Variables-4: I know the difference between System.out.print and System.out.println in Java

  5. Variables-5: I know how to use escape characters in Java

  6. Variables-6: I know the difference between primative types and strings

  7. Variables-7: I can get user input in Java

  8. Variables-8: I can use string concatenation correctly in Java

  9. Variables-9: I understand and can use Math.random() correctly in Java

  1. Conditionals-1: I know the difference between == and .equals() and when to use each one in Java

  2. Conditionals-2: I know what a conditional statement is

  3. Conditionals-3: I understand when and how to use 'if' statements in Java

  4. Conditionals-4: I can use '&&' logically to check multiple conditions in Java

  5. Conditionals-5: I can use '||' logically to check multiple conditions in Java

  6. Conditionals-6: I understand when and how to use 'else if' statements in Java

  7. Conditionals-7: I understand when and how to use 'else' statements in Java

  8. Conditionals-8: I can write nested 'if' statements in Java

  1. Loops-1: I know what a loop is and when to use a loop in my code

  2. Loops-2: I know the difference between a for loop, an enhanced for loop, and a while loop and when to use each in my code

  3. Loops-3: I can write a for loop in Java with a specified starting point, ending point, and increment

  4. Loops-4: I can write a while loop in Java with a specified starting point, ending point, and increment

  5. Loops-5: I can correctly use combinations of loops to produce a desired output in Java

  6. Loops-6: I can write a nested loop in Java

  7. Loops-7: I understand how to find the total amount of times a line of code in one or more loops runs

  1. Exceptions-1: I can explain the difference between checked exception and unchecked exceptions

  2. Exceptions-2: I can identify and fix arithmetic exceptions

  3. Exceptions-3: I can identify and fix null pointer exceptions

  4. Exceptions-4: I can identify and fix syntax errors

  5. Exceptions-5: I understand the importance of semicolons at the end of a line in Java

  1. Classes-1: I know what objects and classes are and why they are useful in code

  2. Classes-2: I can create a class in Java

  3. Classes-3: I understand the purpose of and can define the instance variables of a class in Java

  4. Classes-4: I understand the purpose of and can define a constructor for a class in Java

  5. Classes-5: I understand and can use the new keyword in Java

  6. Classes-6: I understand the role of a class definition in relation to an instance of that class

  7. Classes-7: I understand privacy modifiers and their affect on my class

  8. Classes-8: I understand and can use the this keyword in Java

  1. Class Methods-1: I can create a method in a class in Java

  2. Class Methods-2: I can call a class method in the main method in Java

  3. Class Methods-3: I know how to define a getter method to access the value of an instance variable in Java

  4. Class Methods-4: I know how to define a setter method to modify the value of an instance variable in Java

  5. Class Methods-5: I understand and can use the static keyword in Java

  6. Class Methods-6: I can set a static variable in the main method in Java

  7. Class Methods-7: I understand the role of static classes

  8. Class Methods-8: I understand the role of method overloading and how to implement it in Java

  1. Inheritance-1: I understand class construction in an inheritance setting in Java

  2. Inheritance-2: I understand and can use the super keyword in Java

  3. Inheritance-3: I can override a method for a subclass in Java

  4. Inheritance-4: I can overload the constructor for a class in Java

  5. Inheritance-5: I can overload a method in a subclass context in Java

  6. Inheritance-6: I understand that subclasses can have their own functionality

  1. Polymorphism-1: I understand what polymorphism is, and the relationship between subclasses and superclasses

  2. Polymorphism-2: I understand method selection with shared attributes in Java

  3. Polymorphism-3: I understand behavior when a non-existent method is called in Java

  4. Polymorphism-4: I understand static lookup in Java

  5. Polymorphism-5: I understand downcasting in Java

  1. Design-1: I understand the role of a spec in software developement

  2. Design-2: I understand how to translate written spec into a programming plan

  3. Design-3: I can follow a spec and ask questions when unclear

  1. Arrays-1: I can use multiple instantiation methods for arrays in Java

  2. Arrays-2: I can set the elements of an array with a loop in Java

  3. Arrays-3: I understand enhanced for loop syntax with arrays in Java

  4. Arrays-4: I understand creation and instantiation of 2D arrays in Java

  5. Arrays-5: I can iterate through a 2D array in Java

  6. Arrays-6: I can identify and fix the ArrayIndexOutOfBounds exception

  7. Arrays-7: I can access and interact with each element in a 2D array in Java

  8. Arrays-8: I understand enhanced for loop syntax with 2D arrays in Java

  1. ArrayLists-1: I understand what an ArrayList is, and how it is different from an array.

  2. ArrayLists-2: I can use the add(loc, elem) method correctly in Java

  3. ArrayLists-3: I understand what an ArrayList can hold in Java

  4. ArrayLists-4: I can instantiate an ArrayList in Java

  5. ArrayLists-5: I understand how to correctly use .size(), .add(), or .set() with ArrayLists in Java

  6. ArrayLists-6: I can create a 2D ArrayList in Java

  7. ArrayLists-7: I can use the enhanded for loop syntax with ArrayLists in Java

  8. ArrayLists-8: I understand and prevent the concurrent modification error

  1. Wrapper Classes-1: I can explain the role of wrapper classes in Java

  2. Wrapper Classes-2: I can utilize number wrappers in Java

  3. Wrapper Classes-3: I understand autoboxing in Java

  4. Wrapper Classes-4: I can use the .intValue() method correctly in Java

  1. Runtime-1: I understand runtime analysis and the motivation behind it

  2. Runtime-2: I can analyze the runtime of nested for loops

  3. Runtime-3: I can analyze the runtime of interdependent nested for loops

  4. Runtime-4: I understand the impact of a return statement on runtime.

  5. Runtime-5: I understand the difference between the best-case and worst-case scenario in the context of runtime

  1. Recursion-1: I know what a recursive function is and its two key parts

  2. Recursion-2: I understand infinte recursion, and can identify when it will happen

  3. Recursion-3: I can analyze the runtime of recursive methods

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

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

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

  4. Sorting-4: I can analyze the runtime of a given sorting algorithm, taking into account best and worst cases

  1. Searching-1: I understand the difference between Sequential Search and Binary Search

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

  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.

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.

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