Upper School Curriculum Guide
Overview
The world continues to be more and more reliant on computers and computing innovations to function. Our daily reliance on our smartphones and the Internet are just two small examples. Fields as disparate as biology, fashion, agriculture, and finance are impacted daily by computer innovations, and to function in this cyber-connected economy, students must be literate in the field of computer science.
The Computer Science Department offers courses in both computer programming as well as design and engineering. Our programming courses teach students how to code and how computers work. They also discuss how computing innovations can impact our society, economy and culture. The design and engineering courses teach students about the ways in which design and technology intersect, and offer hands-on applications so that students might learn about the many applications of computing in the physical world.
All students are required to pass one half unit course in Computer Science before graduation. Students may choose the course that best suits their interests and comfort with Computer Science in order to meet this requirement. We encourage students to speak with members of the Computer Science department in order to choose the appropriate course.
Policies
Course Selection Guidelines
The Computer Science course offerings are all electives. Most students will begin with Foundations of Computing, CS Exploration & Creative Computing, Object-Oriented Design & Programming. If a student has previous experience in programming, or has taken other computer science or programming courses, the student should explore the curricular sequence for computer science and see the Department Chair to discuss placement options.
Computer Science Bypass Policy
Computer science knowledge and skills develop progressively, and many courses in the Upper School sequence rely on shared foundations (e.g., programming syntax, debugging practices, computational thinking, and problem-solving strategies). Computer Science courses at RCDS are designed to span an academic semester or year so that students can develop these skills through sustained practice, feedback, and collaboration with peers.
Because most Computer Science courses are electives (and because many offerings are designed to be accessible to students with no prior experience), the Computer Science Department does not generally consider it appropriate for students to bypass courses that serve as prerequisites for more advanced coursework. Students with prior experience are encouraged to review the department’s curricular sequence and meet with the Department Chair to determine the most appropriate placement.
Placement and Acceleration
In rare cases, a student may demonstrate preparation that is substantially beyond the level of an introductory or prerequisite course and may request placement into a more advanced course without taking the listed prerequisite at RCDS. Such placement decisions:
- Require approval of the Computer Science Department (coordinated through the Department Chair).
- Are made on a case-by-case basis and are based on demonstrated mastery, not simply prior exposure.
- May include a placement review such as a student interview, portfolio review, diagnostic task, or department-designed skills assessment focused on programming fundamentals and problem-solving.
Limits on Bypassing
- To protect student success and ensure appropriate readiness for advanced work:
- Students may not bypass directly into the most advanced courses (e.g., Advanced Topics 1: Data Structures & Algorithms or Advanced Topics 2: Coding for a Cause) without clear evidence of mastery of the prerequisite skills and course outcomes.
- Students may not bypass courses when doing so would skip foundational programming competencies essential to success in subsequent courses (including, but not limited to: control structures, methods, arrays, object-oriented design, debugging proficiency, and code organization).
- When bypass is approved, the Department may require the student to complete bridging work prior to or during the course to address specific gaps.
Additional Notes
- Because Computer Science offerings include multiple entry points and pathways, “bypass” most commonly takes the form of appropriate placement rather than skipping a required sequence.
- Students seeking accelerated placement should begin the process during course selection season whenever possible so that scheduling and readiness can be addressed responsibly.
Curricular Sequence
All students are required to pass one Computer Science course in order to graduate. Students may choose many different paths in Computer Science. Several of the department's offerings require no prior experience. These courses are designed to be accessible to every student and to give students opportunities to learn about a variety of topics for which they have a passion or interest. There are also several intermediate classes that have CS Exploration & Creative Computing, Computational Biology, Foundations of Computing, or Object-Oriented Design & Programming as a prerequisite. There are Advanced options for the most advanced students in this discipline. Advanced Topics 2 is a project-based course and may be taken multiple times.
| One-Semester Courses with NO Prerequisites | Year-Long Courses with NO Prerequisites | One-Semester Courses with Prerequisites |
Year-Long Courses with Prerequisites |
|---|---|---|---|
| Foundations of Computing |
CS Exploration & Creative Computing | Web Applications Development | Advanced Topics 1: Data Structures and Algorithms |
|
Computational Biology |
Object-Oriented Design & Programming | Advanced Computational Biology | Advanced Topics 2: Coding for a Cause |
| Game Development | |||
|
|
Courses
One-Semester Electives
FOUNDATIONS OF COMPUTING
This semester-long course introduces students to the core concepts and practices of computer programming and computational problem-solving. Using Java in Processing, students learn foundational programming constructs such as variables, conditionals, loops, functions, and one- and two-dimensional arrays. Emphasis is placed on algorithmic thinking, debugging strategies, and translating ideas into clear, logical code through interactive and visual applications. No prior programming experience is required. (1/2 unit, fall or spring; Grades 9, 10, 11, 12; no prerequisites
COMPUTATIONAL BIOLOGY
Have you ever wondered how biologists were able to sequence the human genome, create accurate models of the brain, or model biological systems? Would you love to better understand how biologists use big data and programming to solve human problems? Then, this introductory computer science course is for you! Students will be taught the power of pairing computational thinking with answering biological questions. Students will learn to use bioinformatic databases and the programming language Python to implement algorithms for solving simple biological problems. For example, students will use programming and bioinformatic databases to analyze and compare segments of DNA and biodiversity at Rye Nature Center. (1/2 unit; Grades 9, 10, 11, 12; no prerequisites)
WEB APPLICATIONS DEVELOPMENT
A Full Stack Engineer is someone that is an expert in both front-end and back-end development. This course aims to introduce students to technologies and methodologies to design, implement, test, and maintain modern websites and web applications. Current technological trends focus on creating visually appealing, functional, and entertaining applications and websites on the Internet. As our world grows more connected through the Internet, it becomes vital for students interested in technology fields to understand and be proficient in using web technologies. We will explore various techniques of web design and development and discuss the ethics surrounding computers in the modern world and our citizenship in this digital age. (1/2 unit, spring; Grades 9, 10, 11, 12; prerequisite: Foundations of Computing, CS Exploration & Creative Computing, Object-Oriented Design & Programming, Computational Biology, or permission of the department)
ADVANCED COMPUTATIONAL BIOLOGY
This course is for students interested in asking and exploring biological questions using computational thinking and computer programming. Students will use the programming language Python to implement, test, and debug algorithms for solving simple problems. For example, students will use programming to analyze and compare DNA sequences from different species and discover genome variability. Students will be able to conduct an individual computational biology research project during the semester. This course will provide appropriate challenges for experienced programmers. (1/2 unit; grades 10, 11, 12, prerequisite: Computational Biology or departmental approval)
GAME DEVELOPMENT
Successful games require synthesizing robust programming techniques, meaningful and exciting content, and thoughtful organization. This course will teach students the game development process while deepening their interest in coding. They will also learn game theory, game psychology, and the constructs of nodes and trees, as well as explore the physics of gaming with concepts such as speed, position, and collision. Unplugged and Digital Citizenship lessons focus on applications, ethical behavior, and STEM careers in the gaming industry. At the end of this course, students will understand many aspects of gaming and the effects of design on user experience. (1/2 unit; Grades 10, 11, 12; prerequisite: Foundations of Computing, CS Exploration & Creative Computing, Object-Oriented Design & Programming, Computational Biology, or departmental approval)
Full-Year Courses
CS EXPLORATION & CREATIVE COMPUTING
A year-long introductory course that explores computer science through creativity, design, and real-world context. Students learn foundational programming concepts—including variables, conditionals, loops, events, and algorithms—while exploring how computation is used for creative expression, physical interaction, data storytelling, and social impact. Through hands-on projects involving interactive media, games, physical computing, and data visualization, students also examine topics such as the Internet, cybersecurity, ethics, and artificial intelligence. Emphasis is placed on the design process, creative problem-solving, collaboration, and reflection on the societal implications of computing. This course covers approximately 85–90% of the AP Computer Science Principles curriculum. (1 unit; Grades 9, 10, 11, 12; no prerequisites)
OBJECT-ORIENTED DESIGN & PROGRAMMING
This year-long introductory course emphasizes the design and implementation of structured, scalable software systems. Students learn foundational programming concepts—including variables, conditionals, loops, methods, and arrays—while progressively developing an object-oriented approach to problem solving. Using Java in both visual and text-based programming environments, students explore classes, objects, encapsulation, inheritance, polymorphism, and abstraction. The course advances into topics such as recursion, searching and sorting algorithms, and file-based input and output as students design, implement, and refine larger software applications. Emphasis is placed on program design, modularity, code organization, and maintainability as students develop larger, real-world applications. This course covers approximately 85–90% of the AP Computer Science A curriculum. (1 unit; Grades 9, 10, 11, 12; no prerequisites)
ADVANCED TOPICS IN COMPUTER SCIENCE: DATA STRUCTURES & ALGORITHMS
Designed to follow Object-Oriented Design & Programming for those highly motivated and engaged computer science students, this course will explore both the practical and the theoretical pieces of computer science. On the practical side, students in this course will write programs that implement more advanced data structures such as stacks, lists, queues, and trees. On the theoretical side, students will begin to explore the theory of computation, which at its core, answers the question of what can be efficiently automated using an algorithm. Students will learn how to build efficient and elegant algorithms and how to more effectively analyze their algorithms in terms of run time and computational complexity. The course will feature a variety of problem sets designed to explore this diverse science and projects designed to apply the concepts to real-world problems. (1 unit; Grades 10, 11, 12; prerequisite: Object-Oriented Design & Programming, Game Development, Web Applications Development, or departmental approval)
ADVANCED TOPICS IN COMPUTER SCIENCE 2: CODING FOR A CAUSE
In this course, students will use a variety of tools to design and implement applications that students believe will have a positive impact on their community. Based loosely on the work done by the non-profit Random Hacks of Kindness, this course serves a dual purpose: to teach students the development cycle of applications, as well as to partner with community organizations. Students will research user needs and design and develop their application to serve those needs. Students will be exposed to real-world projects with organizations that partner with Rye Country Day School, and their work will have a positive impact on others. (1 unit; Grades 11, 12; prerequisite or concurrent with Advanced Topics in Computer Science 1: Data Structures and Algorithms, or permission of the department)

