All boys. All boarding. Grades 9-12.

Curriculum Detail

Select a Department

Computer Science

Course availability subject to enrollment requests and staffing. 
Students interested in alternate computer science pursuits should speak with Mr. Keating.
  • Computer Science_Computational Problem Solving_Trimester Elective

    This course is avaiable in the fall, winter, or spring and is available to all forms. Prerequisite: Algebra 

    An entry level course in computer science in which students will learn fundamental programming skills, how computers work, and how to tackle interesting and complex problems with or without computers in academic and daily life. No prior experience necessary. Students will become a better problem solver by learning how to use technology (not just programming!) to their advantage, and how to pick apart, analyze and tackle all kinds of problems with computational thinking. The course will culminate in a student-driven project.

  • Computer Science_Introduction to Python (Fall trimester)

    A trimester course open to 4th, 5th, and 6th formers, with preference to the latter two forms. This course will take an introductory dive into the Python programming language, as well as the open-source community built around it. We will begin by introducing the idea of data types, such as integers, floating point numbers, and characters. We will also explore basic control structures, such as conditional statements and loops, and basic algorithms such as searching and sorting algorithms. Students will, in the first week, create their own development environment and write their first program. By the end of the semester, students will be able to write their own basic programs to solve a problem of their choosing, with an emphasis on efficiency of the program, as well as their use of community-based packages, such as Pandas, numpy, and matplotlib in order to get them both introduced to and active in those development communities. The goal of this class is to introduce the students to the Python language, as well as the power that it has, to both prepare students for future classes and/or inspire students to study CS further and to be critical about its place in our society.



  • Intro to Python I

    A trimester course open to 4th, 5th, and 6th formers. This course will take a very introductory dive into the Python programming language. Students will begin by learning the history and terminology of programming languages. Students will then be introduced to various data types, such as integers, floating point numbers, booleans, and characters. We will also explore basic control structures, such as conditional statements and loops, and basic algorithms. Students will also learn the language of logic, and should be able to outline their programs before writing them. Students will, in the first week, create their own development environment and write their first program. By the end of the semester, students will be able to write their own basic programs to solve a problem of their choosing, with an emphasis on efficiency of the program. The goal of this class is to introduce the students to the Python language, as well as the power that it has, to both prepare students for future classes and/or inspire students to study CS further and to be critical about its place in our society.
  • Introduction to Data Science (Winter trimester)

    A trimester course open to 4th, 5th, and 6th formers, with preference to the latter two forms. This course will explore the possibilities of using data to solve problems in everyday life. The course will begin with a review of the Python programming language and a deeper dive into packages such as Pandas and matplotlib, which are staples in the data science world. Students will learn how to take data found in the world, transform the data into a usable format for their code, visualize the data in an exploratory manner, and be able to answer specific questions using the data. The goal of this course is to teach the students the tools needed to both be able to use data in an effective manner, while also being good stewards of the technology by critically analyzing the data for the ethics of using personally identifiable information, potential biases in the data, and the limits of the data.
  • Introduction to Machine Learning [Honors] (Spring trimester)

    A trimester course open to 4th, 5th, and 6th formers, with preference to the latter two forms. This course will take students through basic machine learning concepts, from simple linear regression to ensemble methods, such as random forest. After a review of Python and packages such as Pandas, students will first learn the theory behind why and how this technology works in order to critically evaluate the role of this technology in day-to-day life, as well as its benefits and potential shortcomings. Students will then get hands-on with the algorithms, first deploying them in canonical examples before culminating in a final project where they can utilize their first-hand knowledge to implement and predict a target variable of their choice. Students will learn the basics of packages such as sci-kit-learn, Pytorch, Keras, and Tensorflow to both create and train these models. The final week of the course will be dedicated to their personal projects, as well as a discussion of more complex models, such as the ones behind ChatGPT and other large, deep-learning models. This discussion will give the students perspective on both how the models perform their tasks, the pros and cons that come along with them, and the potential ethical concerns. The goal of this course is to cater to students’ inherent curiosity about the technology they see in the world around us, to enable them with the information and skills to be critical and knowledgeable about this technology, as well as to give them the tools to use this powerful technology to solve problems both inside and outside of the academic realm.
  • Computer Science_ Advanced Computing Honors (2 or 3 trimesters) - Instructor Approval

    Students interested in this course should speak with Mr. Keating.

    An advanced exploration of computer science topics beyond the fundamentals of Object-Oriented Programming. Eligible students will have completed Honors Java in good standing and have instructor approval. Course content to be driven by student interest and determined in coordination with the instructor.
  • Computer Science_Java Coding Honors (Full Year)

    Prerequisite: Algebra 2 (or instructor approval) - open to all forms

    A year-long course that teaches the fundamentals of coding in the Java language. Computational thinking will be emphasized as the course explores input/output using sequencing, selection and repetition with primitive data types. The second and third trimesters will prepare interested students to take the AP Computer Science exam. Data structures and class data types will be the focus - OOP! (Object-Oriented Programming) Course will culminate in a student-driven project.
  • Hon JAVA Coding I

    (Prerequisite: Algebra 2 - or instructor approval - open to all forms) A year-long course that teaches the fundamentals of coding in the Java language. Computational thinking will be emphasized as the course explores input/output using sequencing, selection and repetition with primitive data types. The second and third trimesters will prepare interested students to take the AP Computer Science exam. Data structures and class data types will be the focus - OOP! (Object-Oriented Programming) Course will culminate in a student-driven project.

Our Faculty

  • Photo of Taylor Tucker
    Taylor Tucker '19
    Mathematics, Computer Science
    (540) 672-3900 ext. 8612
    Washington and Lee University - BS
    2023
    Bio
Woodberry Forest admits students of any race, color, sexual orientation, disability, religious belief, and national or ethnic origin to all of the rights, privileges, programs, and activities generally accorded or made available to students at the school. It does not discriminate on the basis of race, color, sexual orientation, disability, religious belief, or national or ethnic origin in the administration of its educational policies, admissions policies, scholarship and loan programs, and athletic or other school-administered programs. The school is authorized under federal law to enroll nonimmigrant students.