Computer Science

As part of our Mathematics Division, our Computer Science courses use hands-on experiences to reinforce theoretical foundations in a detail-oriented environment, developing cognitive skills while gaining practical knowledge. 

  • Introduction to C Programming

    Course Number 
    OC11A
    Level 
    High School
    Session 
    Fall Semester
    Prerequisites 
    Honors Intermediate Algebra (OM012)

    The first course in this series introduces the fundamentals of C Programming including basic syntax, data types, expressions, control statements, and interaction between the compiler and the hardware. The programming exercises are oriented towards learning how to construct an efficient algorithm to solve a problem and include computing the solutions of quadratic equations, finding prime or perfect numbers in a given range, and processing words in a passage of text. The basics of understanding and writing functions are studied.

  • Programming in C: Algorithms and Techniques

    Course Number 
    OC11B
    Level 
    High School
    Session 
    Spring Semester
    Prerequisites 
    Introduction to C Programming (OC11A)

    The second course in the C Programming series introduces more advanced topics including arrays, passing arrays to functions, sorting algorithms, user-defined types, and recursion. The programming exercises are oriented towards learning topdown design and structured programming. The concepts of a variable’s value and a pointer to a variable are introduced.

  • AP Computer Science

    Course Number 
    OCS01
    Instructor(s) 
    Level 
    High School
    Session 
    Year-long
    Prerequisites 
    Honors Precalculus with Trigonometry (OM013)
    Additional Recommendations 
    A placement exam is required for students who have not previously taken a Stanford OHS computer science course

    This course introduces students to the concept of object oriented programming. The basic and some advanced features of Java are studied including designing and building applications such as web applets. Core topics in the context of the Java programming language: fundamental data structures such as arrays and algorithms (especially those for sorting and searching) and the relationship between computer hardware and a compiled program. Much of the course is projectbased, with assignments stressing the design of classes and algorithms appropriate to a problem. This course prepares students to take the A level AP Computer Science Exam.

  • Data Structures and Algorithms in Java

    Course Number 
    OCS25
    Instructor(s) 
    Level 
    High School
    Session 
    Year-long
    Prerequisites 
    Honors Precalculus with Trigonometry (OM013)
    AP Computer Science (OCS01)
    Additional Recommendations 
    Score of 4 or 5 on AP Computer Science exam, a placement exam will be required for students who have not taken a Stanford OHS computer science course

    This year-long course continues and deepens students’ understanding and practice of object oriented programming. Students are expected to have familiarity with programming in Java at the AP Computer Science A level. Core topics in the context of the Java programming language include practical implementations of fundamental and more advanced data structures (linked lists, hash encoded storage, binary search trees—AVL, treaps, red-black trees, and heaps), algorithms for organizing and manipulating data (including sorting, searching, and traversal algorithms), and time complexity of algorithms in a problem-solving oriented context. In-depth exploration of standard Java libraries and features such as Java Collections, error handling, threads, and designing and building graphical user interface using AWT and Swing libraries is included. Much of the course is project-based, with assignments stressing the design of classes and algorithms appropriate to a particular problem.