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 Javascript Programming in middle school and Introduction to Programming or Introduction to AI with Coding in high school.

AT Programming allows students to develop strong programming skills in the Java 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 and Machine Learning. 
 
We also offer a wide breadth of application-specific design progressions. Students interested in 3D design and art can pick up CAD (Fusion360 from AutoDesk) and 3D printing skills in CAD I and Product Design, and then progress to advanced Fusion360 and entrepreneurship with CAD II. Those with an interest in mechanical engineering, manufacturing skills, and working with their hands can take our [Mechanical Engineering] course.

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: Computer Science

    Course Length:  Year 
    Open to Grades: 9, 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 hours
    Graduation Requirement: Satisfies Computer Science requirement

    AT Computer Science introduces students to computer science through the fundamentals of programming. The course emphasizes object-oriented programming and design using the Java programming language - it is roughly equivalent to AP Computer Science A. 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.
  • 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. 
  • 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 as they use 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 presentation on 3D printing in an industry of their choice and will have an industry speaker visit, as time permits.
  • Intro to Coding with AI

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

    The Introduction to Coding with AI course provides a broad overview of Artificial
    Intelligence concepts and how they can be applied to hands-on programming exercises, using the Python programming language.

    Students in this course will be introduced to the field of Artificial Intelligence (AI), the ethics of AI usage, and how to use AI to generate the code for real-world programming projects. Upon completion, students will also have learned the fundamentals of the Python programming language.

    No prior AI or programming experience is required - only an interest in artificial intelligence and how it can be used to practically improve your life!

    Note: Students may qualify for Advanced Topics: Programming by taking either Intro to Programming or Intro to Coding with AI with an A- or higher.

    For those intending to take the majority or all of the programming sequence (AT Programming, AT Algorithms, Artificial Intelligence, and AT Machine Learning), 'Intro to Programming' is the recommended prerequisite due to its use of the C language for an in-depth exploration on structuring and writing code.
  • Intro to Mechanical Engineering

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

    Students who are innately curious about the world or who wonder about the complexities of the things we experience (from the mundane to the super technical) will love this semester-long course, which focuses on engineering first principles, design, material selection, additive and subtractive fabrication, testing, and iteration.

    This class concretely lives out the school's mission to "productively serve a world in need of your gifts" by creating custom solutions to all sorts of things. In pursuit of these skills, students will also develop these habits of mind: craftsmanship, communication, advocacy, teamwork, project management, and perseverance.

    Students interested in engineering, robotics, industrial design, product development, making a makerspace portfolio for college applications, or hands-on problem-solving. No prior experience is required - just curiosity, creativity, and a willingness to build and iterate.
  • Intro to Programming

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

    This course is a hands-on, project based exploration of coding that utilizes sensing and reacting to the world around us. Students will learn to write code using the C language for a physical computing platform called Arduino.

    Projects typically take 2-3 days to complete and involve guided activities to wire devices to an Arduino to cause it to react to what it senses. The projects include art, music, game design, environmental sensing, and practicing the use of online tools such as ChatGPT to aid with code creation - each geared towards learning new coding concepts.

    No prior programming experience is required - only an interest in coding and how to create programs from scratch.

    Note: Students may qualify for Advanced Topics: Programming by taking either Intro to Programming or Intro to Coding with AI with an A- or higher.

    For those intending to take the majority or all of the programming sequence (AT Programming, AT Algorithms, Artificial Intelligence, and AT Machine Learning), 'Intro to Programming' is the recommended prerequisite due to its use of the C language for an in-depth exploration on structuring and writing code.

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
    MS/US Robotics Head Coach, Computer Science Department
    UC Davis - BS & MA
  • Photo of Rohan Menezes
    Rohan Menezes
    Upper School Math & Computer Science Teacher
    University of Pennsylvania - BS & MS
  • Photo of Richard Paige
    Richard Paige
    Computer Science, Math Teacher
    (650) 851-6174
    Oberlin College - AB

Woodside Priory School

© 2022 Woodside Priory School School. All Rights Reserved.