Browse Curriculum

Computer Science

Computer Science Mission Statement
Computer science as an academic discipline is much more than just the use of computers. In addition to developing 21st century skills, students will understand that inhabiting an evolving, iterative approach to problem solving is a life skill that requires frequent practice and resilience. By taking risks and learning from diagnostic observation of failure, students improve subsequent solutions and strengthen their logical reasoning, and algorithmic thinking. Students will also learn team communication and collaboration skills to subdivide and resolve the discrete, interlocking pieces of large problems. It is important that students recognize their unique set of ethical responsibilities in regards to social, cultural, and legal issues associated with advancements in our digital world.
 
Computer Science Curriculum Trajectory
We have two tracks on which students can embark: software development and design. Students interested in programming start out with Python Programming in middle school or Introduction to Computer Science in high school.

AP Computer Science allows students to develop strong programming skills in the Java programming language which can then be applied when learning to develop and analyze algorithms in Algorithms.  The algorithmic and analysis skills acquired in Algorithms can then be applied to some very large scale real-world problems when studying Artificial Intelligence. Students more interested in applications programming can pursue the Mobile Computing sequence to learn skills necessary to develop apps for mobile devices. 
 
We also offer a wide breadth of application-specific design progressions. Students interested in 3D design, art, and mechanical engineering can pick up CAD (SolidWorks) and 3D printing skills in CAD I and Maker Skills, and then progress to advanced SolidWorks, manufacturing skills, entrepreneurship with CAD II and Robotics. Graphic design and print products are introduced in the Multimedia Production I, then animation and web design projects build on these skills in Multimedia Production II.

Often, skills from the software development track will synergize with skills in the design track. Similarly, skills from design classes will improve students’ software projects by providing insight into human factors involved inherent in most software products.

Please see this chart for a summary of the Computer Science curriculum trajectory.
  • Advanced Topics: Algorithms

    Course Length:  Year 
    Open to Grades: 10, 11, 12
    Prerequisite: 1) A in AP Computer Science (or teacher approval) and 2) Precalculus Honors (may be concurrent).
    Estimated hours of homework per class period: 1.5 hours
    Graduation Requirement: Satisfies Computer Science requirement

    After a short review of the Java programming language, students will be introduced to the design and implementation of the fundamental data structures used in computer science: linked lists, stacks, queues, heaps, hash tables, trees and graphs. The basic algorithms associated with these data structures will be covered while stressing a formal analysis of their performance. Concepts presented in class will be reinforced by weekly programming assignments. This class is a college level course appropriate for those who have done well in AP Computer Science or have substantial prior programming experience and are proficient in math.
  • Advanced Topics: Artificial Intelligence

    Course Length: Semester (Fall)
    Open to Grades: 11, 12
    Prerequisite: 1) A in Algorithms and 2) AP Calculus BC (may be concurrent)
    Estimated hours of homework per class period: 1.5 hours

    Artificial intelligence (AI) has had a huge impact in many areas, including medical diagnosis, speech recognition, web search, advertising and scheduling. In short, AI is the mathematics of making good decisions given incomplete information and limited computation resources. This course focuses on the foundational concepts that drive these applications. Specific topics include search, adversarial search (game playing), constraint satisfaction, first-order logic and inference. Coding will pick up where the Algorithms course left off and will make use of algorithms explored during the later portion of that course. Several large scale programming projects such as the sliding tile puzzle (15-puzzle) and 3-D Tic-Tac-Toe are used to reinforce concepts presented in class. 
  • Advanced Topics: Machine Learning

    Course Length: Semester (Spring)
    Open to Grades: 11, 12
    Prerequisite: Artificial Intelligence, A in Algorithms and prior or concurrent enrollment in AP Calculus
    Estimated hours of homework per class period: 1.5 hours

    Machine Learning (ML) is the branch of artificial intelligence that explores techniques by which computer programs can learn and improve their performance or accuracy over time. Much of the current research in AI is focused on machine learning and many of the recent successes in AI have been due to ML. This course will give students an overview of several techniques by which computers learn: supervised and unsupervised learning, ensemble learning and reinforcement learning. We will focus on binary classification problems (e.g., is this a picture of a dog?) by exploring methods such as decision trees, linear regression, neural networks, SVM (support vector machines). The coding work for this course will center around a single classification problem for which student groups will each implement using a different technique. 
  • AP Computer Science

    Course Length: Year 
    Open to Grades: 10, 11, 12 
    Prerequisite: 1) A- or higher in Intro to Computer Science or pass a placement exam and 2) Algebra II (may be concurrent)
    Estimated hours of homework per class period: 1 hour
    Graduation Requirement: Satisfies Computer Science requirement

    AP Computer Science introduces students to computer science through programming. The course emphasizes object-oriented programming and design using the Java programming language. Fundamental topics in this course include variables, functions, conditionals, loops, arrays/ArrayLists, classes and objects, inheritance, and recursion. Students will learn how to design solutions to problems, use data structures to organize large sets of data, develop and implement algorithms to process data and discover new information, and analyze potential solutions.
  • CAD & Product Design I

    Course Length: Semester
    Open to Grades: 9, 10, 11, 12
    Prerequisite: None
    Estimated hours of homework per class period: 0 hours
    Graduation Requirement: Satisfies Computer Science requirement or ½ of Visual Arts requirement.
     
    This course introduces students to the Principles of Design in order to better understand the concepts and skills required of engineers and product designers. Students learn that CAD assists in the creation, modification, and analysis of manufactured products. Emulating the real world, students work individually and in teams using the Design Thinking method, to empathize, define, ideate, prototype, and test ideas for the products of today and beyond. In order to create these products, students employ sketching, CAD software, 3D printers, mold-making techniques, and digital portfolio and photography basics to document their work. To provide students a real-world experience with relevant industries, the students will also write a research paper on 3D printing in an industry of their choice, will have an industry speaker visit, and/or attend a field trip at a local company that does 3D printing as time permits.
  • Intro to CS

    Course Length: Semester
    Open to Grades: 9, 10, 11, 12
    Prerequisite: None
    Estimated hours of homework per class period: 30 minutes
    Graduation Requirement: Satisfies the Computer Science graduation requirement

    This course is a hands-on, lab-intensive introduction to coding. Students will learn to write code using the C language for a physical computing platform called an Arduino. This is done primarily through a weekly lab in which students build a small electronics project and write the code to control it. The projects include art, music, environmental sensing, game design, and use of online tools such as ChatGPT to aid with code creation, and each one is geared towards learning one new coding concept. A grade of at least A- in this class fulfills one of the APCS prerequisites.

Our Faculty

  • Photo of Laura Draxler
    Laura Draxler
    Computer Science Teacher
    Washington University - BS
    Baldwin-Wallace College - BA
    Santa Clara University - MS
    UC Berkeley and Columbia University - MBA
  • Photo of Clint Johns
    Clint Johns
    US/MS Robotics Head Coach, Computer Science, STREAM center, Tinker Lab
    UC Davis - BS & MA
  • Photo of Rohan Menezes
    Rohan Menezes
    Teacher, Math & Computer Science
    University of Pennsylvania - BS & MS
  • Photo of Richard Paige
    Richard Paige
    Computer Science, Math Teacher
    (650) 851-6174

Woodside Priory School

© 2022 Woodside Priory School School. All Rights Reserved.