We're giving out 500 FREE Courses!

Act now before it’s too late! Click here to get a free Self-Guided Python Course and learn Python in 8 weeks.

Computer Science Courses

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

  • Game Superstar

    Ages 8-11

    Scratch Level 1

    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.

  • Game Master

    Ages 9-12

    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.

Python Programming

  • Graphics Superstar

    Ages 11-18

    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.

  • Problem Solver

    Ages 12-18

    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.

  • Algorithms Master

    Ages 14-18

    Python Level 3

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

  • Python Game Development

    Ages 11-18

    PyGame

    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.

  • Data Science in Python

    Ages 12-18

    Data Science

    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.

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.

  • Machine Learning

    Ages 14-18

    AI Level 2

    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!

  • 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

Take a free class to see if our program is right for your child.