Juni offers a full computer science curriculum for kids ages 8-18. Our youngest students start with our Scratch courses, that use block-based programming to build programming fundamentals and problem solving skills. Our core Python curriculum covers up to college-level topics in algorithms and data structures. Our Java courses prepare students for the AP Computer Science A exam. We also offer electives like Artificial Intelligence, C++ programming, and app development (JavaScript, HTML, and CSS). Each course typically takes 3-6 months to complete. Our most advanced students progress to our USACO Training Program for competitive programming against students around the country.

For Beginners

Python Programming

Java Programming

  • Java Superstar

    Ages 12-18

    Java Level 1

    In this course, students learn the fundamentals of Java, focusing on variable types, conditionals, loops, methods, and one- and two-dimensional arrays. This course also incorporates programmatically generating graphic art with Java. By the end of this course, students are ready to advance to Java Level 2, which focuses on object-oriented programming. It is highly recommended that students complete our Python Level 1 and/or Python Level 2 courses before enrolling in Java Level 1.

  • Java Master

    Ages 14-18

    Java Level 2

    This course focuses on on object-oriented programming in Java, covering classes & objects, subclasses, and inheritance. Students have the opportunity to build console-based projects and graphics-based games utilizing these principles. By the end of this course, students have a solid grasp of Java fundamentals and are well-prepared to enroll in either Java Level 3 for more advanced Java topics, or in an accelerated version of AP Computer Science A.

  • Advanced Java

    Ages 14-18

    Java Level 3

    In this course, students briefly review Java fundamentals and focus on advanced topics in Java: recursion, searching and sorting algorithms, big-O notation, and advanced data structures. The data structures discussed include linked lists, stacks, queues, priority queues, maps, trees, and graphs. This course goes beyond the scope of AP Computer Science A and covers material typically seen in a college-level data structures and algorithms course in Java. Students who excel in this course have a strong math background (Algebra 2 or higher recommended).

  • AP Computer Science A

    Ages 14-18

    This course guides students through learning Java, with an emphasis on object-oriented programming. Students build a variety of complex projects while learning about objects, classes, scope, and inheritance. This course also covers basic searching and sorting algorithms in Java. This course prepares students for the AP Computer Science A exam, which is administered in May of each year. Aspects of the course are specifically focused on AP test preparation, so students who do not plan to take the AP exam should enroll in our Java Levels 1, 2, and 3 course sequence instead.

JavaScript Programming

  • JavaScript Superstar

    Ages 12-18

    JavaScript Level 1

    In this course, students learn JavaScript, HTML, and CSS basics to create their own websites. This course emphasizes JavaScript fundamentals, including variables, operators, loops, and conditional statements. This course is geared toward students who enjoy art and design. By the end of this course, students have created their own web portfolios including interactive mini-projects, such as e-commerce or arcade splash pages and SVG graphics animated with JavaScript.

  • JavaScript Master

    Ages 14-18

    JavaScript Level 2

    In this course, students dive deeper into JavaScript with functions, arrays, and object-oriented programming. Students apply their learning toward programming classic arcade games like Asteroids and Breakout. This course also covers important concepts for building full-stack web applications, including APIs and databases (SQL and NoSQL). By the end of this course, students have developed their own complex web applications, such as a news aggregator that fetches articles from an API and displays a customized feed to the user.

For Advanced Students

  • Foundations of Artificial Intelligence

    Ages 14-18

    AI Level 1

    In this course, we set a foundation for studying artificial intelligence and machine learning through concepts like object-oriented programming, graphs, trees, and searching. This course focuses more heavily on AI concepts including formulating search problems, adversarial games, uninformed searching, and informed searching. Students will use these skills to build programs that solve complex problems and puzzles. This course is taught in Python, and the prerequisite for enrolling in this course is completion of Python Level 3.

  • C++ Fundamentals

    Ages 14-18

    C++ Level 1

    In this course, students learn the fundamentals of C++, focusing on variable types, loops, control statements, functions, and one- and two-dimensional arrays. These topics are introduced at an accelerated pace, as students should already have familiarity with these topics in Java. Then, this course covers intermediate topics such as object-oriented programming, memory manipulation, and dynamic arrays. By the end of the course, students will have a solid understanding of the essential components of C-based programming languages, and be prepared to learn more advanced data structures and concepts in C++. The prerequisite for enrolling in this course is completion of Java Level 2, AP Computer Science A, or equivalent.

USACO Training Program

  • USACO Bronze

    By Invitation Only

    Students in our USACO (USA Computing Olympiad) Training Program participate in the four online contests held per year. All students start in the Bronze division and can be promoted to upper divisions based on their contest scores. Students who start in our USACO Bronze course should have excelled in our Python Level 3 or AP Computer Science A course. Thus, the bulk of preparation for Bronze is adjusting to the format of USACO-style problems and learning how to tackle and debug problems with mostly brute force or greedy algorithm approaches. Depending on the student, we also spend time on reading comprehension for complex problems and time management for test taking. Our USACO Bronze course is offered in Python or Java. Please contact us regarding the tuition for this program.

  • USACO Silver

    By Invitation Only

    Our USACO Silver course covers these algorithms, techniques, and data structures: • Graphs and trees • Stacks, queues, and priority queues • Binary search • Depth-first search and breadth-first search • Floodfill • Sliding window • Prefix sums Additional emphasis is placed on time and memory complexity analysis to ensure that our programs run within the time and memory bounds for each test case. Please contact us regarding the tuition for this program.

  • USACO Gold

    By Invitation Only

    Our USACO Gold course covers these algorithms, techniques, and data structures: • Dynamic programming • Dijkstra's, Prim's, and Kruskal's algorithms • Minimum spanning trees • Disjoint sets • Binary indexed trees Students who are able to pass the Gold level of USACO are generally working at an advanced undergraduate level with computer science algorithms. Please contact us regarding the tuition for this program.

Try the full Juni experience for free

Get 2 weeks of membership free to see if our program is right for your child. If you’re not satisfied, cancel your membership at no cost.