Computer Science

OC11A - Introduction to C Programming (Directed study with discussion: 3.33 units)
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.

OC11B - Programming in C: Algorithms and Techniques (Directed study with discussion: 3.33 units)
The second course in the C Programming series introduces advanced topics including arrays, functions, passing arrays to functions, sorting algorithms, user-defined types, and recursion. The programming exercises are oriented towards learning top-down design and structured programming. At the end of the course there is a final project that involves implementation of everything learned in the course. Prerequisite: OC11A Introduction to C Programming

OC11C - Advanced Topics in C (Directed study with discussion: 3.34 units)
The third course in C Programming introduces pointers, application of pointers to function arguments and arrays, files, linked list, and trees. The course focuses on implementing data structures—the key organizing factor to formalize design methods and programming languages. Prerequisite: OC11B Programming in C: Algorithms and Techniques

C015 - Introduction to Java (Directed study with discussion: 5 units)
This course introduces students to the concept of object-oriented programming. Topics: basic and advanced features of Java as well as object-oriented design, designing and building applications such as web applets. Prerequisite: a course in C or C++ or consent of instructor

OCS01 - AP Computer Science (Seminar: 10 units)
Students explore Core topics in the context of the Java programming language. Topics include: object-oriented programming, fundamental data structures (such as lists, queues, stacks, trees, and heaps) and algorithms (especially those for sorting and searching). The relationship between computer hardware and a compiled program is studied. Much of the course is project-based, with assignments stressing the design of classes and algorithms appropriate to a problem. This course prepares students to take the AB-level Computer Science AP exam. Prerequisite: OC015 or consent of instructor