Try the full Juni experience for free
Take a free class to see if our program is right for your child.
Act now before it’s too late! Click here to get a free Self-Guided Python Course and learn Python in 8 weeks.
In this course, we introduce computer science fundamentals using Scratch's block-based programming environment. This course focuses on event listeners, loops, conditional statements, user input, Cartesian coordinates, variables, and message broadcasting. After completing this course, students are able to design and program their own games in Scratch, and are ready to advance to Scratch Level 2.
This course is for students who have completed Scratch Level 1 or equivalent. In this course, we expand upon the concepts introduced in Scratch Level 1 and introduce more advanced ideas, including nested loops, complex conditionals, cloning, string and mathematical operators, lists, and functions. After completing this course, students have full mastery of the Scratch environment, and are ready to advance to Python Level 1.
In this course, students learn Python basics with the Turtle programming library, with an emphasis on programmatically generating graphic art. This course dives into Python fundamentals: loops, variables, functions, conditional statements, and event listeners. By the end of this course, students have built complex computer-generated art and games in Python, and are ready to advance to Python Level 2.
In this course, students dive deeper into Python fundamentals with loops, variables, conditional statements, and functions, while also introducing more advanced topics such as lists, sets, dictionaries, and error checking. Students practice integrating these concepts in building a series of complex projects. This course also exposes students to several real-life applications for programming, including in music, ciphers, and predictive algorithms.
This course briefly reviews Python fundamentals and focuses on advanced topics in Python: recursion, searching and sorting algorithms, and big-O notation. The master project for this course requires students to rely on their analytical reasoning skills to recognize patterns, outline solutions to problems, and systematically develop algorithms that can handle rigorous testing. Students who excel in this course have a strong math background (Algebra 2 or higher recommended).
This course is designed with an emphasis on developing more sophisticated graphics-based games in Python, using the PyGame library. We cover key concepts that are foundational to game design, including gravity, platforms, projectiles, and enemy AI. This course also covers basic object-oriented programming in Python. The prerequisite for enrolling in this course is completion of Python Level 1 or equivalent. Students must have exposure to variables, loops, conditional statements, functions, and lists. After completing this course, students will be ready to learn more advanced non-graphics-based computer science skills in Python Level 2.
In this course, we build upon students’ Python knowledge to introduce Data Science, an interdisciplinary field that uses programming and statistics to draw insights from valuable datasets. Students learn how to read and clean data from a variety of sources including APIs, build visualizations, and answer key research questions about datasets. Students explore data from a variety of fields, including space, healthcare, and business, while learning real-world tools like the Python Pandas library and working with Colab Notebooks. At the end of this course, students perform an independent exploratory data analysis on a topic of their choosing. The prerequisite for this course is completion of Python Level 2 or equivalent.
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.
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.
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).
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.
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.
In this course, we cover specific techniques for performing machine learning, examining both classification and regression, including tactics such as neural networks and image classification. This course is taught in Python, and the prerequisite for enrolling in this course is completion of AI Level 1. By the end of this course, students will be able to take concepts learned in AI Level 1 and apply them to real data sets, in order to draw real conclusions. There are many exciting opportunities for individuals who understand how to apply machine learning techniques, including work on self-driving vehicles, social media algorithms, and robots!
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.
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.
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.
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.
Take a free class to see if our program is right for your child.