Juni Computer Science

Juni Computer Science student portal

Our Curriculum

Juni Computer Science

Juni offers a full computer science curriculum for students ages 8-18. Our youngest students start with our Juni Jr and Scratch courses. These courses use block-based programming to develop their fundamental programming concepts and problem solving skills.

Our core curriculum covers the programming languages Python and Java, with additional coding courses offered in web programming and app development (HTML, CSS, and Javascript). Through three levels of Python, we cover up to college-level topics in algorithms and data structures. 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.

Juni Learning course catalog

For Beginners


Juni Jr

Ages 5-7

Juni Jr provides a fun introduction to programming for our youngest students. In Juni Jr, students learn about logic, sequencing, loops, and events. They also practice fundamental skills like basic algebra, reading, and public speaking. Together, we build games, solve puzzles, and design art.

Juni Jr sessions are 25 minutes long and priced differently than our other courses. Please contact us for more information.


Scratch Level 1

Game Superstar

Ages 8-11

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. Read about why Scratch is the best beginning programming language for kids.

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.


Scratch Level 2

Game Master

Ages 9-12

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.

Our Core Curriculum: Python


Python Level 1

Graphics Superstar

Ages 11-18

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.


Python Level 2

Problem Solver

Ages 12-18

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.


Python Level 3

Algorithms Master

Ages 14-18

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

Java Programming


Java Level 1

Java Superstar

Ages 12-18

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 Level 2

Java Master

Ages 14-18

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 enrolled in an accelerated version of AP Computer Science A.


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.

Web Programming


Web Level 1

Web Superstar

Ages 12-18

In this course, students learn HTML, CSS, and Javascript to create their own websites.

This course is geared toward students who enjoy art and design. By the end of this course, students have created their web portfolios including interactive mini-projects, like a photo filtering website.


Web Level 2

App Master

Ages 14-18

This course guides students through building and deploying websites and web applications. Both frontend (HTML, CSS, Javascript, and JQuery) and backend development (APIs and databases) are covered.

By the end of this course, students are able to develop a web application that fetches news articles from an API and displays a customized news feed to the user.

For Advanced Students


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.



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

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