The advanced course is similar in content to a first-year college-level computer science course. The focus is on data structures and algorithms: how to organize and manipulate information using a computer. Students implement and analyze alternative methods for structuring data, including arrays, linked lists, and binary trees. A variety of alternative algorithms for searching and sorting data are covered, including binary search, hash tables, mergesort, and quicksort. Students are taught standard notation for categorizing the expected efficiency of an algorithm. Object-oriented programming is stressed, and students are responsible for writing programs with multiple well-designed classes. The programming language Java is taught and used for all assignments. Students have the option of taking the Advanced Placement Computer Science Exam in May. Prerequisite: Introduction to Computer Science.