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 Introduction to Computer Science, or CS Exploration and Creative Computing. 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.
For AP and Advanced courses in computer science, please watch RCDS News for the online sign-up forms and direct specific questions to the Department Chair.
AP HOMEWORK GUIDELINES
AP Computer Science A: Students spend an average of 30-45 minutes each night on homework. Students have a summer requirement to complete online.
AP Computer Science Principles: Students spend an average of 20-30 minutes each night on homework. There are two large projects to submit to the College Board, which include writing.
DEPARTMENTAL POLICIES REGARDING ENTRY INTO AP COURSES
AP Computer Science Principles focuses broadly on programming in multiple languages, creatively expressing and writing about the impact of computer science on our world, and would be equivalent to a college level introductory computer science course for non-majors. If planning to take both AP courses, AP Computer Science Principles is the recommended first course, but they may be taken in either order.
AP Computer Science A focuses entirely on programming, particularly in Java, and would be equivalent to a college level introductory computer science course for computer science majors. Students must receive approval from the department, earn an A- or better in Introduction to Computer Science, or complete AP Computer Science Principles before enrolling in this rigorous course.
Curricular Sequence
All students are required to pass one semester of a Computer Science course in order to graduate. Students may choose many different paths in Computer Science. Many 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 many intermediate classes that have CS Exploration and Creative Computing, Introduction to Computer Science or Computational Biology as a prerequisite, including the two AP courses. There are post Advanced Placement 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 | One-Semester Courses with Required Experience | Year-Long Courses with Prerequisites |
---|---|---|
CS Exploration and Creative Computing (grades 9-12) |
Web Applications and Development (previous experience required) | AP Computer Science Principles (after one course) |
Computational Biology (grades 9-12) |
Advanced Computational Biology (prerequisite: previous CS course, excluding CS Exploration and Creative Computing) |
AP Computer Science A (after AP Computer Science Principles or A- in Intro to CS or A- in Comp Bio) |
Introduction to Computer Science (grades 9-12) | Game Development (prerequisite: AP Computer Science A) | Advanced Topics 1: Data Structures and Algorithms (after AP CS A) |
Advanced Topics 2: Coding for a Cause (after AT 1) |
Courses
One-Semester Electives
The below courses are entry level and have no prerequisite, and they all fulfill the Computer Science requirement.
CS EXPLORATION AND CREATIVE COMPUTING
Computer Science can be a medium for creativity, communication, problem solving, and fun. This course will expose students to computer science by developing a range of creative applications and artifacts. Using a variety of block-based languages, projects may include making art, making projects with tools from the Makerspace, and so much more! Students completing this course may take AP Computer Science Principles, but not AP Computer Science A. (1/2 unit, fall or spring; Grades 9, 10, 11, 12; no prerequisite)
INTRODUCTION TO COMPUTER SCIENCE
One of the joys of computer science is learning to make things move and interacting with them on the screen. Capitalizing on this wonderful “Aha!” moment, this course explores the basic principles of Computer Science using the highly visual and interactive environment, Processing. Students in this course write their first interactive programs while learning object-oriented design and the fundamental tools of programming. Projects invite students to program or design interactive games. This course (or equivalent experience) is required to take Advanced Placement Computer Science A. (1/2 unit, fall or spring; Grades 9, 10, 11, 12; no prerequisite)
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,)
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: Introduction to Computer Science, CS Exploration and Creative Computing, 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: previous computer science course excluding CS Explorations and Creative Computing 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: AP Computer Science A, or permission of the department)
Full-Year Courses
Entry into our AP level courses is dependent on successful completion of Introduction to Computer Science, Computational Biology, Full Stack Programming Languages, or approval of the department. All of the full-year courses fulfill the Computer Science requirement.
AP COMPUTER SCIENCE PRINCIPLES
AP Computer Science Principles challenges students to learn how to creatively address real-world issues while using the same tools and processes that artists, writers, computer scientists, and engineers use to bring ideas to life. This course teaches the fundamentals of computing, including problem solving, working with data, understanding the Internet, cybersecurity, and programming. In addition to instilling the ideas and practices of computational thinking, the curriculum invites students to understand how computing changes the world. Students will work through the Beauty and Joy of Computing curriculum from Berkeley alongside coding projects in p5.js using the OpenProcessing IDE. Projects assigned aim to offer students choice and creativity in their solutions. In addition to learning coding basics in p5.js, students will learn how to create interactive websites with HTML, CSS, and p5.js. (1 unit; Grades 10, 11, 12; prerequisite: Introduction to Computer Science, Computational Biology, CS Exploration and Creative Computing, or permission of the department)
AP COMPUTER SCIENCE A
Familiarity with computing has become one of the most essential 21st century skills. The AP Computer Science A course thoroughly explores computer science fundamentals through the Java programming language. Students will learn different algorithms, data structures, and approaches to the design of programs. Students will complete several programming projects that cover the breadth of computer programming skills. Students will also take the AP Computer Science A examination at the end of the year. (1 unit; Grades 10, 11, 12; prerequisite: AP Computer Science Principles, A- or better in Introduction to Computer Science or Computational Biology, or permission of the department)
ADVANCED TOPICS IN COMPUTER SCIENCE: DATA STRUCTURES AND ALGORITHMS
Designed to follow AP Computer Science A 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 11, 12; prerequisite: Advanced Placement Computer Science A or permission of the department)
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)