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 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 C++ and app development (JavaScript, HTML, and CSS). 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 Computer Science course sequence

For Beginners

GS

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.

Learn More
Arrow

GM

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.

Learn More
Arrow

Our Core Curriculum: Python

GrS

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.

Learn More
Arrow

PS

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.

Learn More
Arrow

AM

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

Learn More
Arrow

Java Programming

JS

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.

Learn More
Arrow

JM

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 enroll in either Java Level 3 for more advanced Java topics, or in an accelerated version of AP Computer Science A.

Learn More
Arrow

AJ

Java Level 3

Advanced Java

Ages 14-18

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

Learn More
Arrow

APCS

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.

Learn More
Arrow

PyGame and C++ Programming

PyG

PyGame

Python Game Development

Ages 11-18

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.

Learn More
Arrow

CPPF

C++ Level 1

C++ Fundamentals

Ages 14-18

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.

Learn More
Arrow

Web Programming

JSS

JavaScript Level 1

JavaScript Superstar

Ages 12-18

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.

Learn More
Arrow

JSM

JavaScript Level 2

JavaScript Master

Ages 14-18

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.

Learn More
Arrow

For Advanced Students

UB

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.

US

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.

UG

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

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.