Our Curriculum

Explore Our Curriculum

Computer Science

  • AP Computer Science A

    The purpose of this course is to introduce students to the basic concepts of object-oriented programming (OOP) using the Java programming language while preparing the students for success on the Advanced Placement Computer Science level A exam. Topics include primitive variable types and classes; basic assignments, operations, and input/output; conditional and looping structures; several data structures; advanced object-oriented concepts, including inheritance; exploring and re-using code from other sources; and standard algorithms for searching and sorting. Class time is divided appropriately between lecture, individual and group activities, and programming projects, with an aim toward developing better abstract reasoning and problem solving skills.
     
    While no text is used a substantial number of handouts are provided, including descriptions and examples. While the main Java environment is BlueJ, other programming environments may be included. Programming assignments are taken from  a collection of projects developed over the years. Because various students arrive at the course with different levels of experience, and some grasp the process of coding and problem solving more quickly than others, some more advanced problems are assigned to some students in the class, as appropriate—this serves to challenge the top students without overwhelming the others.

    The co-requisite for this course is Precalculus.  Permission of the instructor is required.
  • AP Computer Science Principles

    AP COMPUTER SCIENCE PRINCIPLES WITH SWIFT

    The AP Computer Science Principles course is designed to be equivalent to a first- semester introductory college computing course. In this course, students will develop computational thinking skills vital for success across all disciplines, such as using computational tools to analyze and study data and working with large data sets to analyze, visualize, and draw conclusions from trends. The course engages students in the creative aspects of the field by allowing them to develop computational artifacts based on their interests. Students will also develop effective communication and collaboration skills by working individually and collaboratively to solve problems, and will discuss and write about the impacts these solutions could have on their community, society, and the world. In addition, students will develop a solid foundation in programming using Swift as the language, while highlighting key computing concepts to help students get practical experience with the tools, techniques, and concepts needed to build a basic iOS app. App Design lessons guide students to brainstorm, plan, prototype, and evaluate their own app ideas. This course will be open to students from both campuses.

    Prerequisite: Intro Programming; Concurrent enrollment in Precalculus
  • Honors Advanced Programming Topics

    This course provides additional experience and instruction for those student who have satisfactorily completed AP Computer Science.  Topics covered include continuing exploration of AP topics such as recursion and inheritance; advanced data structures, including stacks, queues, linked lists, ...; data storage and retrieval using files; probability and statistics applications; and simulations.  Topics and projects will also be chose to best fit the interests of the students.
  • Honors Artificial Intelligence

    Prerequisite: Completion of Imagine Code Create, AP Computer Science, or instructor permission 
    While it may sound futuristic, we interact with Artificial Intelligence every day in our lives. From social media algorithms to voice assistance to autonomous vehicles, AI is everywhere. Explore the principles, risks, and benefits of AI. What is it, exactly, and how is it being used in the world?  With a stronger foundational understanding, we will learn to create machine learning algorithms with the Python programming language and identify problems that could be solved with AI.
  • Honors Data Science

    Do you enjoy analyzing trends in sports statistics, predicting stock market movements, or unraveling the influence of social media on cultural and business landscapes?  Are you eager to tackle real-world challenges using data? In a world where the average person generates 1.7 MB of data every second, what happens with all that data, and how do we make sense of it? This course will introduce you to the essential concepts and techniques of data science with a focus on applications within the realm of computer science. We will explore the lifecycle of data, ethical considerations in data science, machine learning, and big data as we gain hands-on experience with relevant tools and languages commonly used in the field.
  • Honors Introduction to Game Development

    Have you ever been curious about how your favorite video games work? Do you want to learn how to program your own game? This semester-long course will introduce you to the fundamental ideas used in the creation of games such as Flappy Bird, Candy Crush, and Super Mario Bros. You will get a chance to program your own versions of these games using the Lua coding language, as well as design and program an original game of your choosing.
  • Intro Programming

    The purpose of this independent course is to familiarize the students with the basics of programming and will use the Java programming language. Topics will include input, output, calculations, simple data types, objects, control structures, and methods. Additional topics may be discussed, depending upon the interest and ability of each student. This course is not a prerequisite for A.P. Computer Science, but is designed to serve as a basic introduction to the process and approaches of computer programming, and can serve as preparation for APCS.
  • MAKE (BUILD)

    MAKE, an Upper School semester elective, is part of St. Christopher’s School’s JK-12 BUILD (Boys Using Innovation to Learn and Design) initiative. BUILD combines science, technology, engineering, art, and math with boys’ innate desire to tinker, create, compete, work in teams, and disassemble just about anything they can get their hands on.
     
    Housed in our new state of the art BUILD Lab, students will have access to the latest cutting edge tools to design and create.These projects focus on process, not product and students learn as they  design and redesign their projects. This learning environment teaches students that there is no one right answer and instills a desire to constantly refine and improve on their ideas. Students will be assessed on the documentation and presentation of their product as well as the product itself.
     
    This course is available to all levels of previous experience with making. Students can choose project topics based on interest, while learning the skills necessary to be successful in the course. 
     
    This course counts towards the Arts requirement for graduation.
  • Photo of Robert Johns
    Robert Johns
    Upper School Mathematics and Computer Science Department Chair, Teacher, Upper School Scheduler, and Andrew Beirne Blair, Jr. Chair of Mathematics
    (804) 282-3185 x4345
  • Photo of James Guion
    Jim Guion
    JK-12 BUILD Coordinator and Upper School Teacher and Instructional Technologist
    (804) 282-3185 x4440
  • Aniela Macek
    US Computer Science and Robotics Teacher