AP Computer Science A

4.7 (92 ratings)
|
Taken by 470 students

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.

Private 1:1
Format
Age 14-18
Learners
Weekly
Classes
50 minutes
Per class
AP Computer Science A

About this Course

Whether your learner is aiming for a 5, or feeling like they need extra support, Juni’s AP Computer Science course is a great solution. Students are first paired with a personalized 1:1 instructor who has received a 5 on the AP exam. With their guidance, students then work through our custom, exam-focused curriculum.

Billed as

$275 / month

4 classes / month × $68.75 / class
  • Cancel anytime

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

  • Course duration
    4-6 months
  • Lesson
    50 minutes
  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.

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 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).

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.7 out of 5(92 ratings)
5 stars
4 stars
3 stars
2 stars
1 stars
We are two working parents with multiple kids
Mark K
Mar 9, 2022
We are two working parents with multiple kids. There are often things that come up (doctors appts, sports ) for the kids that sometimes make it necessary to cancel our session and reschedule. One of the best things is the flexibility the Juni team has been. It has been hard to cancel before 24 hours every time, but still the Juni team allowed us to make up the class. this is valuable for us. also the easy interface to make changes to the schedule via the portal, the UX is nice, again making it easy for the parents. The response rate to our emails (when we do email contact to support email) is very fast. These things make it nice for the parents. Thanks for the flexibility. Also, our child has enjoyed the 2 different teachers because they are engaged , very sweet to the kids, patient and smart. Keep bringing on great teachers!
Lucas is so excited to be back and to be able to have his same instructor
Sheila P
Jan 30, 2022
Lucas is so excited to be back and to be able to have his same instructor! Hannah does a wonderful job teaching in a way that makes Lucas feel excited, successful and above all - curious!

Start Learning with Juni

Turn your child’s passion into a professional skill