Upper School Curriculum Guide
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.
Beginning with the class of 2023, all students are required to pass one half unit course in Computer Science before graduation. Those courses that meet this requirement are indicated in the course descriptions. 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.
Summer of 2021, we are piloting a non-curricular Computer Science Independent Project Program, wherein students are partnered with a professional computer science mentor to create a project of their own choice. This opportunity is by application only and may also be done for academic credit when done as an Independent Study project.
COURSE SELECTION GUIDELINES
The Computer Science course offerings are all electives. Most students will begin with Introduction to Computer Science, Computational Biology, or CS Exploration and Creative Computing. If a student has previous experience in programming, or has taken other computer science or programming courses, they should explore the curricular sequence for computer science and see Ms. O'Shaughnessey 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 Ms. O’Shaughnessey.
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 of the department, earn an A- or better in Introduction to Computer Science, or complete AP Computer Science Principles before enrolling in this rigorous course.
Beginning with the class of 2023, 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. Below you will see a visual overview of our curriculum. 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.
- CS EXPLORATION AND CREATIVE COMPUTING
- INTRODUCTION TO COMPUTER SCIENCE
- COMPUTATIONAL BIOLOGY
- WEB APPLICATIONS DEVELOPMENT
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! This course fulfills the Computer Science requirement in place for the classes of 2023 and beyond. 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; prerequisite: none)
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 language of 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. This course fulfills the Computer Science requirement in place for the classes of 2023 and beyond. (1/2 unit, fall or spring, grades 9, 10, 11, 12; prerequisite: none)
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 course is for you! Students will be taught the power of pairing computational thinking with answering biological questions. 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 to discover variability within the genome. This course will provide appropriate challenge for both the experienced and the novice programmer. This course fulfills the Computer Science requirement in place for the classes of 2023 and beyond. (1/2 unit, fall, or spring, grades 9, 10, 11, 12, prerequisite: B+ or better in Biology)
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. This course fulfills the Computer Science requirement in place for the classes of 2023 and beyond. (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)
- AP COMPUTER SCIENCE PRINCIPLES
- AP COMPUTER SCIENCE A
- ADVANCED TOPICS IN COMPUTER SCIENCE: Data Structures and Algorithms
- ADVANCED TOPICS IN COMPUTER SCIENCE 2: Coding for a Cause
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. This course fulfills the Computer Science requirement in place for the classes of 2023 and beyond. (1 unit; grades 10, 11, 12; prerequisite: Introduction to Computer Science, Computational Biology, CS Exploration and Creative Computing, or permission of the department)
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. This course fulfills the Computer Science requirement in place for the classes of 2023 and beyond. (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)
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 in the Python programming language which implement more advanced data structures such as stacks, lists, queues, hash tables, 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 and fascinating science. This course fulfills the Computer Science requirement in place for the classes of 2023 and beyond. (1 unit; grades 11, 12; prerequisite: Advanced Placement Computer Science A or permission of the department)
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.This course fulfills the Computer Science requirement in place for the classes of 2023 and beyond. (1 unit, 11, 12; prerequisite or concurrent with: Advanced Topics in Computer Science 1: Data Structures and Algorithms)
Students who participate in this opportunity will discover and complete an independent computer science project under the direct mentorship of an experienced computer scientist. Students will complete an application describing their aspirations for participating in this program. Projects may include: helping a non-profit organization solve a real world problem, developing a student generated project, preparing for a coding competition, or a deep exploration of a computer science topic. Students who participate will solidify their understanding of the development process and algorithms. Students will also have the option to prepare for and enter a coding competition, such as the Microsoft Imagine Cup or equivalent. Students meet with their mentor at an agreed upon time.
Students are eligible to apply to participate in the Computer Science Independent Project program after completing Advanced Topics I: Data Structures and Algorithms. Admittance to the program is competitive by application and priority will be given to students after sophomore year who have completed or are currently enrolled in Advanced Topics II. Students who would like credit under this program on their transcript would need to also apply through the independent study program.