The VR School
Financial LiteracyGive
Enroll
CS
All Courses
UC A-G Section CMathematicsWASC AccreditedHonors Course

Computer Science
Honors Java Programming

Object-Oriented Design · Data Structures · Algorithms

Build real Java programs from the ground up. Master object-oriented design, arrays, ArrayLists, 2D arrays, inheritance, and recursion — guided by Dr. Kai Nakamura and SofAI. UC A-G Section C approved, Honors weighted.

Start with Dr. Kai
Course Resources
💻
Honors
Quick LinksCS Awesome Free Textbook CodingBat Java Practice AP CS A Course (Advanced)
UC A-G · Honors · 1 Year
Course Blueprint

Four Pillars of Java Programming

☕

Java Fundamentals

Types · Operators · Objects · Methods
Foundation
  • › Primitive types, operators, and type casting for precise computation
  • › String and Math class methods for real-world processing tasks
  • › Writing and calling methods with parameters and return values

Dr. Kai's Tip: Java is strict about types — every variable has a declared type and every method has a declared return type. Learning to read and write type-correct Java from day one sets up all the OOP work to come.

🏗

Object-Oriented Design

Classes · Encapsulation · Inheritance · Polymorphism
Core OOP
  • › Design classes with private fields, constructors, and public methods
  • › Apply inheritance with extends/super to model real-world hierarchies
  • › Use polymorphism to write flexible, reusable programs

Dr. Kai's Tip: OOP is not just syntax — it's a design philosophy. Ask yourself: what data should this object own? What behaviors should it expose? Writing your own classes from scratch is the single best way to build this intuition.

📋

Data Structures

Arrays · ArrayLists · 2D Arrays · Algorithms
Data Mastery
  • › Traverse arrays and ArrayLists with correct loop bounds and element access
  • › Implement search, filter, and aggregation algorithms on 1D and 2D arrays
  • › Choose between fixed-size arrays and dynamic ArrayLists for the right task

Dr. Kai's Tip: Ninety percent of data structure bugs come from wrong loop bounds or off-by-one errors. Before writing any loop, ask: what index do I start at, what's the last valid index, and do I want the element or the index?

🔃

Algorithms & Recursion

Iteration · Recursion · Binary Search · Tracing
Algorithmic Thinking
  • › Trace iterative and recursive algorithms step by step on concrete inputs
  • › Implement recursive methods with clear base cases and recursive cases
  • › Analyze binary search and understand how it halves the problem at each step

Dr. Kai's Tip: Recursion clicks the moment you stop trying to trace the whole call stack at once and instead trust the structure: define the base case, define what a single recursive call does, and let the math take care of the rest.

Honors-Level Skills

Four Mastery Areas

Students who complete all four mastery areas are fully prepared for AP Computer Science A and college-level programming courses.

☕
Java Syntax Mastery
Write type-correct Java with proper method headers, return statements, and operators
🏗
OOP Design
Design classes with encapsulation, constructors, and well-defined public interfaces
📋
Array/ArrayList Skills
Implement traversal, search, and modification algorithms on 1D, 2D, and dynamic lists
🔃
Algorithm Thinking
Trace code by hand, identify edge cases, and implement recursive solutions

Honors Learning Goals

What you will be able to build and explain by year end

☕

Write syntactically correct Java programs from scratch without IDE assistance

🏗

Design multi-class programs with proper encapsulation and inheritance hierarchies

📋

Implement array and ArrayList algorithms correctly on the first attempt

🔲

Traverse 2D arrays with nested loops for any row/column algorithm

🔃

Write and trace recursive methods, identifying base and recursive cases

Progressive Java Curriculum

Ten Computer Science Units

🔢
UNIT 12–5%

Primitive Types

Expand ›

Key Topics

  • int, double, boolean, char data types
  • Arithmetic operators and integer division/modulo
  • Type casting (widening and narrowing)
  • String literals and basic String operations
  • Math.random() and type promotion

Key Terms

primitive type
basic data type stored by value (int, double, boolean, char)
integer division
dividing two ints truncates the decimal (7/2 == 3)
modulo (%)
returns the remainder of division (7 % 2 == 1)
type casting
explicit conversion between types, e.g. (double) anInt
overflow
when an int exceeds its maximum value and wraps around
compound assignment
shorthand operators like +=, -=, *=, /=, %=
Programming Practice Prompt

Project: Write a static method int countDigits(int n) that returns the number of digits in the positive integer n. For example, countDigits(4523) returns 4 and countDigits(7) returns 1. Use only arithmetic operations (division and modulo). Trace your method for n = 100.

Practice with Dr. Kai →

Curated Video Lessons

Java Primitive Data Types — AP CS A
content

Java Primitive Data Types — AP CS A

AP CS A Review9 min
Java Operators and Expressions
content

Java Operators and Expressions

CS Awesome11 min
Type Casting in Java — AP CS A Review
review

Type Casting in Java — AP CS A Review

Coding with John8 min
📦
UNIT 25–7.5%

Using Objects

Expand ›

Key Topics

  • Constructing objects with new keyword
  • Calling instance methods and static methods
  • String class methods (substring, indexOf, length, equals, compareTo)
  • Math class methods (Math.abs, Math.pow, Math.sqrt, Math.random)
  • Null references and NullPointerException

Key Terms

object
instance of a class that stores state and exposes behavior
constructor
special method that initializes a new object
null
reference that points to no object; causes NullPointerException if dereferenced
immutable
object whose state cannot change after creation (e.g., String)
String concatenation
joining strings with + operator; converts non-Strings automatically
static method
method called on a class, not an instance (e.g., Math.abs())
Programming Practice Prompt

Project: Write an expression that produces a random integer from 1 to 6 inclusive (simulating a die roll) using Math.random(). Then write a method String abbreviate(String s) that returns the first 3 characters of s followed by '...' if s.length() > 3, otherwise returns s unchanged.

Practice with Dr. Kai →

Curated Video Lessons

Java String Methods — AP CS A
content

Java String Methods — AP CS A

AP CS A Review13 min
Math Class Methods — AP CS A
content

Math Class Methods — AP CS A

CS Awesome8 min
Objects and Classes — Java Basics
overview

Objects and Classes — Java Basics

Coding with John12 min
🔀
UNIT 315–17.5%

Boolean Expressions and if Statements

Expand ›

Key Topics

  • Boolean expressions (==, !=, <, >, <=, >=)
  • Logical operators (&& and || and !)
  • De Morgan's Laws for simplifying boolean expressions
  • if, if-else, if-else-if chains
  • Nested conditionals and short-circuit evaluation

Key Terms

boolean expression
expression that evaluates to true or false
short-circuit evaluation
&&: stops at first false; ||: stops at first true
De Morgan's Laws
!(A && B) == (!A || !B); !(A || B) == (!A && !B)
nested conditional
an if statement inside another if statement
equality vs. identity
== on objects checks reference; .equals() checks content
dangling else
ambiguity when else matches innermost if by default
Programming Practice Prompt

Project: Write a method boolean isLeapYear(int year) that returns true if the year is a leap year. A year is a leap year if it is divisible by 4, EXCEPT for years divisible by 100, which must also be divisible by 400. Trace your method for years 1900, 2000, and 2024.

Practice with Dr. Kai →

Curated Video Lessons

Boolean Expressions — AP CS A
content

Boolean Expressions — AP CS A

AP CS A Review10 min
if Statements and Conditionals — Java
content

if Statements and Conditionals — Java

CS Awesome12 min
De Morgan's Laws — AP CS A Practice
review

De Morgan's Laws — AP CS A Practice

Barron's AP CS A7 min
🔁
UNIT 417.5–22.5%

Iteration

Expand ›

Key Topics

  • while loops and infinite loop prevention
  • for loops (initialization, condition, update)
  • for-each (enhanced for) loops over arrays and ArrayLists
  • Nested loops and their time complexity
  • String traversal using charAt and substring

Key Terms

while loop
repeats a block while condition is true; may execute zero times
for loop
compact iteration with init; condition; update in one line
for-each loop
iterates over each element in an array or Iterable
off-by-one error
loop runs one too many or too few times; common boundary mistake
nested loop
loop inside another loop; total iterations = outer × inner
loop invariant
condition that remains true before and after each iteration
Programming Practice Prompt

Project: Write a method String removeVowels(String s) that returns a new string with all vowels (a, e, i, o, u — both upper and lower case) removed. For example, removeVowels('Hello World') returns 'Hll Wrld'. Then write a second version using a for loop that iterates by index.

Practice with Dr. Kai →

Curated Video Lessons

while and for Loops — AP CS A
content

while and for Loops — AP CS A

AP CS A Review14 min
For-Each Loops in Java
content

For-Each Loops in Java

CS Awesome9 min
Nested Loops and String Traversal
advanced

Nested Loops and String Traversal

Coding with John11 min
🏗
UNIT 55–7.5%

Writing Classes

Expand ›

Key Topics

  • Instance variables with private access modifier
  • Constructors (default and parameterized)
  • Accessor methods (getters) and mutator methods (setters)
  • The this keyword for disambiguation
  • Encapsulation principles and toString method

Key Terms

encapsulation
hiding internal state with private fields, exposing behavior via public methods
instance variable
variable declared in a class, unique to each object
accessor (getter)
public method that returns the value of a private field
mutator (setter)
public method that changes the value of a private field
this keyword
reference to the current object; disambiguates field from parameter
toString()
method that returns a String representation of an object
Programming Practice Prompt

Class Design Project: Design a class BankAccount with a private String owner, private double balance, and private int transactionCount. Write a constructor, getters for all three fields, a deposit(double amount) method that adds to balance and increments the count, and a toString() method. Then add a method boolean withdraw(double amount) that returns true and updates balance only if sufficient funds exist.

Practice with Dr. Kai →

Curated Video Lessons

Writing Java Classes — AP CS A
content

Writing Java Classes — AP CS A

AP CS A Review15 min
Encapsulation — Private Fields and Getters/Setters
content

Encapsulation — Private Fields and Getters/Setters

CS Awesome11 min
The this Keyword in Java
review

The this Keyword in Java

Coding with John7 min
📋
UNIT 610–15%

Array

Expand ›

Key Topics

  • Array declaration, initialization, and default values
  • Accessing and updating array elements by index
  • Traversal algorithms: find min/max, sum, average, reverse
  • Partial arrays and tracking meaningful elements
  • Arrays passed as parameters (reference semantics)

Key Terms

array
fixed-length ordered collection of elements of the same type
index
integer position in array; 0-based (first element is index 0)
ArrayIndexOutOfBoundsException
thrown when accessing an index outside [0, length-1]
reference semantics
array variable stores a reference; passing an array passes the reference
default value
int → 0, double → 0.0, boolean → false, object → null
partial array
array where only first k of n slots hold meaningful data
Programming Practice Prompt

Algorithm Project: Write a method int[] removeDuplicates(int[] arr) that returns a new array containing only the first occurrence of each value from arr. For example, removeDuplicates(new int[]{3, 1, 3, 2, 1}) returns [3, 1, 2]. Trace your algorithm step by step for the example input.

Practice with Dr. Kai →

Curated Video Lessons

Java Arrays — AP CS A Review
content

Java Arrays — AP CS A Review

AP CS A Review14 min
Array Traversal Algorithms
content

Array Traversal Algorithms

CS Awesome12 min
Common Array Algorithms — AP CS A FRQ
practice

Common Array Algorithms — AP CS A FRQ

Barron's AP CS A10 min
📝
UNIT 72.5–7.5%

ArrayList

Expand ›

Key Topics

  • ArrayList<E> declaration and instantiation
  • add(E), add(int index, E), remove(int index), get(int index), set(int index, E), size()
  • Traversal with enhanced for-loop and indexed for-loop
  • Removing elements while traversing (iterate backwards or use iterator)
  • ArrayList vs. array trade-offs

Key Terms

ArrayList
resizable array-based list in java.util; size grows/shrinks dynamically
generic type parameter
type in angle brackets, e.g. ArrayList<String>, ensures type safety
autoboxing
automatic conversion between primitive (int) and wrapper (Integer)
ConcurrentModificationException
thrown when modifying ArrayList while iterating with for-each
wrapper class
class that wraps a primitive: Integer, Double, Boolean
list interface
ArrayList implements List<E>, a contract for ordered collections
Programming Practice Prompt

Algorithm Project: Write a method void removeOdds(ArrayList<Integer> list) that removes all odd numbers from the list in place. For example, if list contains [1, 2, 3, 4, 5], after the call it contains [2, 4]. Explain why iterating forward with a for-each loop would fail, and write the correct solution iterating backwards.

Practice with Dr. Kai →

Curated Video Lessons

ArrayList in Java — AP CS A
content

ArrayList in Java — AP CS A

AP CS A Review13 min
ArrayList Methods and Traversal
content

ArrayList Methods and Traversal

CS Awesome10 min
Removing from ArrayList — Traversal Pitfalls
advanced

Removing from ArrayList — Traversal Pitfalls

Coding with John9 min
🔲
UNIT 87.5–10%

2D Array

Expand ›

Key Topics

  • Declaration and initialization of 2D arrays
  • Row-major order traversal with nested for loops
  • Accessing elements with arr[row][col]
  • Column-major traversal and diagonal traversal
  • Common 2D array algorithms: row sums, column sums, search

Key Terms

2D array
array of arrays; elements accessed with two indices [row][col]
row-major order
traversing all columns in one row before moving to the next row
arr.length
number of rows in a 2D array
arr[0].length
number of columns in a 2D array (assumes rectangular)
ragged array
2D array where rows can have different lengths
nested loop
outer loop over rows, inner loop over columns for 2D traversal
Programming Practice Prompt

Grid Project: Write a method int[] rowSums(int[][] grid) that returns a 1D array where element i is the sum of all values in row i of grid. Then write a method boolean isDiagonallySymmetric(int[][] grid) that returns true if grid[i][j] == grid[j][i] for all valid i and j. Trace both methods on a 3×3 example.

Practice with Dr. Kai →

Curated Video Lessons

2D Arrays in Java — AP CS A
content

2D Arrays in Java — AP CS A

AP CS A Review12 min
Nested Loops and 2D Array Traversal
content

Nested Loops and 2D Array Traversal

CS Awesome11 min
2D Array FRQ Strategies — AP CS A
practice

2D Array FRQ Strategies — AP CS A

Barron's AP CS A10 min
🧬
UNIT 95–10%

Inheritance

Expand ›

Key Topics

  • extends keyword and IS-A relationship
  • Calling superclass constructors with super()
  • Method overriding and @Override annotation
  • Polymorphism: superclass reference to subclass object
  • Abstract classes vs. concrete classes, instanceof operator

Key Terms

inheritance
subclass acquires fields and methods of its superclass
extends
keyword declaring a class as a subclass of another
super()
call to superclass constructor; must be first statement in subclass constructor
method overriding
subclass provides its own implementation of a superclass method
polymorphism
ability to treat objects of different subclasses through a common superclass type
abstract class
class that cannot be instantiated; may contain abstract methods
Programming Practice Prompt

Inheritance Project: Given a superclass Shape with a constructor Shape(String color) and method double area(), write a subclass Circle that adds a private double radius field, calls the superclass constructor, overrides area() to return π × radius², and overrides toString() to return 'Circle[color=X, radius=Y]'. Then explain what getClass() returns for a Circle object stored in a Shape variable.

Practice with Dr. Kai →

Curated Video Lessons

Inheritance in Java — AP CS A
content

Inheritance in Java — AP CS A

AP CS A Review14 min
Polymorphism and Method Overriding
content

Polymorphism and Method Overriding

CS Awesome12 min
Abstract Classes and Interfaces — AP CS A
advanced

Abstract Classes and Interfaces — AP CS A

Coding with John10 min
🔃
UNIT 105–7.5%

Recursion

Expand ›

Key Topics

  • Base case and recursive case structure
  • Tracing recursive calls with a call stack
  • Recursive methods on integers (factorial, Fibonacci, digit sum)
  • Recursive methods on Strings (reverse, palindrome check)
  • Binary search as a recursive algorithm

Key Terms

recursion
method that calls itself to solve a smaller version of the same problem
base case
condition that stops recursion without a further recursive call
recursive case
the part of the method that makes a recursive call toward the base case
call stack
stack of active method frames; grows with each recursive call
stack overflow
error when recursion is infinite and call stack exceeds memory
binary search
O(log n) search that halves the search space at each step
Programming Practice Prompt

Recursion Project: Write a recursive method int sumDigits(int n) that returns the sum of the digits of the non-negative integer n. For example, sumDigits(423) returns 9. Identify the base case and recursive case. Then trace the call stack for sumDigits(423), showing every intermediate call and return value.

Practice with Dr. Kai →

Curated Video Lessons

Recursion in Java — AP CS A
content

Recursion in Java — AP CS A

AP CS A Review13 min
Tracing Recursion — Call Stack
content

Tracing Recursion — Call Stack

CS Awesome11 min
Binary Search — Recursive Implementation
advanced

Binary Search — Recursive Implementation

Coding with John9 min
Honors Assessment

Three Assessment Types

Every assessment measures real programming ability — not memorization. You will write code, trace code, and design programs that actually run.

Practice with Dr. Kai →
💻

Programming Project

Design and implement a working Java program from a written specification. Projects include class design, array algorithms, and recursive solutions. Graded on correctness, style, and edge-case handling.

Grading Criteria
· Correct Java syntax and compilation
· Implements all specified methods and behavior
· Handles edge cases (empty input, zero, boundary values)
· Clean, readable code with meaningful variable names
Dr. Kai's Tip

Write the method header and expected behavior first as a comment, then implement. Trace your code on a concrete example before submitting.

🔍

Code Tracing & Analysis

Read provided Java code and determine its output, identify bugs, or explain its behavior. Covers all unit topics including loops, recursion, array traversal, and object interaction.

Grading Criteria
· Correctly traces output of iterative code
· Correctly traces recursive call stacks
· Identifies and explains logic errors
· Predicts behavior for boundary or edge-case inputs
Dr. Kai's Tip

Trace one line at a time and write down variable values as you go. Never skip steps — most tracing mistakes happen when students assume they know what a loop does without working through it.

🧠

Algorithm Design

Given a problem description, design and write a Java method or class that solves it. Problems range from array manipulation to OOP class hierarchies to recursive algorithms.

Grading Criteria
· Correct method signature (return type, name, parameters)
· Control flow handles all cases correctly
· Returns the correct value for typical and edge inputs
· OOP design uses appropriate encapsulation and structure
Dr. Kai's Tip

Identify whether the problem calls for iteration, recursion, or a class. Write pseudocode first, then translate to Java. Check your solution on at least two concrete examples.

Expert Insight

Six Success Tips from Dr. Kai

☕

Write syntactically correct Java every session. Java is unforgiving — wrong method headers, missing return statements, or using = instead of == will break your program. Practice writing Java by hand without an IDE so you catch these errors before they catch you.

🔍

Trace code before you run it. When you read or write a method, trace through a concrete example first. This prevents off-by-one errors in loops, catches recursive base-case mistakes, and builds the mental model that makes debugging fast.

🏗

Design your class on paper before typing. List the private fields, then the constructor, then the public methods. This systematic approach prevents missing fields, ensures the constructor initializes everything, and makes the code flow naturally.

📋

Know your loop bounds cold. Arrays go from 0 to arr.length - 1. ArrayLists go from 0 to list.size() - 1. For-each loops handle bounds automatically. Memorize these and your traversal code will almost always be correct on the first try.

🔃

Trust the recursion structure. For every recursive method, identify: (1) what is the base case, (2) what does one recursive call accomplish, (3) how does the recursive case reduce toward the base case. If all three are clear, the code writes itself.

✅

Test every method on an edge case. After your method works on a normal input, test it on: an empty array, a list of one element, zero, a negative number, or the exact boundary value. Edge cases are where bugs hide and where strong programmers distinguish themselves.

Curated for Java Mastery

Practice Resources & Tools

🏛
OFFICIALFREE

CollegeBoard AP CS A

Official CED, unit guides, sample FRQs, and scoring guidelines. The definitive source.

Open resource
📂
OFFICIALFREE

Past AP CS A FRQs (2013–2024)

Every past FRQ with scoring guidelines. Completing 3+ sets under timed conditions is the single highest-leverage activity.

Open resource
💻
HIGHLY RECOMMENDEDFREE

CodeHS AP CS A

Complete AP CS A curriculum with interactive coding exercises, video lessons, and auto-graded Java problems. Excellent pacing.

Open resource
📚
FREE TEXTBOOKFREE

Runestone Academy — CS Awesome

The official free AP CS A textbook with embedded coding exercises. Written by AP CS A teachers, aligned to the CED.

Open resource
🎯
DRILL PRACTICEFREE

CodingBat Java Practice

Hundreds of Java practice problems organized by difficulty. Perfect for drilling method writing until it's automatic.

Open resource
📖
COMPREHENSIVEFREE

Fiveable AP CS A

Complete course review, unit summaries, FRQ practice, and live study sessions with expert teachers.

Open resource
🎓
FREE PRACTICEFREE

AP CS A on Khan Academy

Free practice questions and video explanations for all major AP CS A topics. Good for concept reinforcement.

Open resource
📝
PRACTICE MCQ

Albert.io AP CS A

High-quality AP-style multiple choice questions with explanations. Mimics the actual exam difficulty and style.

Open resource
AI-Powered Progress

16-Week Java Mastery Plan

Weeks 1–3

Phase 1: Java Foundations — Primitives, Objects, Conditionals

  • Complete Units 1–3: primitives, String/Math methods, boolean logic
  • Write 10 short methods per week on CodingBat
  • Daily: one code-tracing exercise (trace without running the code)
  • Programming project: build a utility method library with 5+ working methods
Weeks 4–7

Phase 2: Core OOP — Iteration, Classes, Arrays

  • Deep dive: Units 4–6 — master all loop types and array traversal
  • Write a complete class from scratch each week (Unit 5)
  • Practice 5 array algorithm problems per session (sum, min, max, search, reverse)
  • Class project: design and implement a BankAccount or Student class with full OOP structure
Weeks 8–11

Phase 3: Data Structures + Advanced OOP — ArrayList, 2D Arrays, Inheritance

  • Complete Units 7–9: ArrayList operations, 2D array traversal, inheritance hierarchies
  • Write nested loop code every day — 2D arrays require repetition to master
  • Practice full inheritance chains: write Animal → Dog → GuideDog examples
  • Algorithm project: implement a data filtering and analysis program using ArrayList
Weeks 12–16

Phase 4: Recursion Mastery + Portfolio Capstone

  • Master Unit 10: trace recursion call stacks, implement binary search recursively
  • Capstone project: design a program that integrates OOP, arrays, and recursion
  • Code review sessions with Dr. Kai — analyze and improve your own programs
  • Final portfolio: submit three polished Java programs demonstrating class design, data structures, and recursion
Your Next Course

Where This Course Takes You

🏆
Level Up

AP Computer Science A

Take your Java skills to the AP level. Same language, same OOP — with exam-focused FRQ mastery and a path to college credit.

Explore AP CS A →
🌐
Breadth Option

AP Computer Science Principles

Explore computing's societal impact, data, networks, and cybersecurity — a broader CS perspective alongside your Java skills.

Explore AP CSP →
⭐
Student Exemplar

AP Seminar Exemplar by Jiang

See the standard every VRS student aspires to — and the path to getting there.

View Exemplar →
Agentic AI Tutoring

Your Java Programming Tutor

Dr. Kai Nakamura is your Java programming coach — classes, loops, arrays, recursion, and every OOP concept in between. SofAIconnects Computer Science to every other subject you're studying.

🏗 Help me design a Java class for a Student with grades — walk me through the full OOP structure📋 I keep making off-by-one errors in array loops — help me fix this once and for all🔃 Trace this recursive method step by step and explain the call stack🔲 Give me a 2D array problem and check my nested-loop solution
🚀 Next Level

Ready for AP Computer Science A? Your Java Foundation Is Already Built.

This Honors CS course covers every major AP CS A topic. Students who complete it are fully prepared for AP Computer Science A — the same Java, the same OOP, the same algorithms — plus exam-focused FRQ practice and a path to college credit.

Explore AP CS ABrowse All Courses →
☕
💻

Ready to Build Real Java Programs?

Enroll in Honors Computer Science — WASC accredited, UC A-G Section C approved, Honors weighted. Build the Java foundation that carries you through AP CS A and beyond.

Browse All Courses

WASC Accredited · UC A-G Approved · Honors Weighted · 1 Year Course

Financial literacy should belong to everyone

Help California students build money confidence.

Give to the endowment →Open financial literacy hub
VR
The VR School

The world's first accredited Spatial Intelligence school. WASC-accredited. UC A-G approved. 402+ students. 20+ countries.

520 Lasuen Mall #200, Stanford, California, CA 94309
(650) 422 9180
admissions@thevrschool.org
WASC Accredited

Fully Accredited for Grades 6–12 by ACS WASC

Code: 43 46070 999Grades 6–12

World Labs Partner ✦

Spatial Intelligence · Marble · Spark.js

School

  • About Us
  • Staff
  • Accreditation
  • School Profile
  • Endowment
  • Corporate Giving
  • Careers

Programs

  • UC A-G Courses
  • California Personal Finance
  • CVC Dual Enrollment
  • CVC Pathway OS
  • iBuildme
  • iBuildme App
  • iTeachXR LMS
  • AP Seminar Studio
  • Credentials
  • AI Program
  • VR Labs
  • VR Experiences
  • VR Network

Spatial Intelligence

  • Spatial Lab ✦
  • Moonshots TV
  • World Labs Marble ↗
  • The School That Shouldn't Exist
  • Website Evolution Archive
  • Media & Stories
  • VR Explorer

Support

  • Help & Support
  • Contact
  • Blog
  • Headset Safety
  • Privacy Policy
  • Terms of Service

© 2026 The VR School · All rights reserved · Spatial Intelligence Lab ✦

402+ students · Stanford · Palo Alto · China · Singapore

91% Math · 89% Science · 86% ELA · WASC · UC A-G