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 tree and red-black trees, 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 graph traversal algorithms (depth first search, breadth first search, shortest paths, and connected components) and string processing algorithms (substring search and string compression) is also included. Much of the course is project-based, with assignments stressing the design of classes and algorithms appropriate to a particular problem.
Course Number
OCS25
Level
High School
Semester
Year
Credit Hours
5.00
Subject
Prerequisites
AP Computer Science (OCS15) or a score of at least 4 on the AP Computer Science Exam, and Precalculus with Trigonometry (OM013). Placement assessment required for students who have not previously taken Stanford OHS computer science courses.