Technology & Computer Science
The goal of the Computer Science program is to empower our students to not only be consumers of technology, but to also be creators of technology. We also strive to educate our students to recognize the importance of understanding the ethical and moral implications of creating and using technology. Therefore, we offer an array of courses to achieve these goals.
In the Middle School, students are assigned by grade to technology classes that use class-based and cross-curricular technology projects to hone their skills in Google applications, graphic and website design. They are also introduced to computer programming in JavaScript, HTML, CSS and Python.
In the Upper School, students learn and employ new software programs and applications as needed for individual class assignments. They also complete the Introduction to Computer Science course and have the opportunity to take both an Engineering and Design course and higher level computer science courses, such as Software Engineering and AP Computer Science A.
Coding opens up a part of our brain that we don't usually use. Even if we do not end up going into computer science, it broadens our horizons. We can apply this way of thinking to our lives, and become more successful. O. Winchenbaugh '21
Middle School
Technology 5
Using Chromebooks, this course introduces students to Google Slides and Google Docs to practice creating professional documents. Students also create interactive artwork and projects by applying computer programming concepts in a block coding environment. This exposes the students to the fundamentals of programming logic, syntax and design. Throughout the year, the class discusses topics relating to digital citizenship, including media balance and digital friendships. Students spend time in each class practicing their typing skills using an online typing application.
Technology 6
This course continues to use Chromebooks to build upon the foundations formed in Grade 5. After reviewing the skills learned in Grade 5, students are provided with a more in depth study of Google Slides. Students gain a deeper understanding of computer programming with an introduction to JavaScript adding to their understanding of the fundamentals of programming logic, syntax, and design. Throughout the year, the class discusses topics relating to digital citizenship, including online safety, cyberbullying, and digital footprints. Students spend time in each class practicing their typing skills using an online typing application.
Technology 7
This course explores the Google Sheets application. Concepts are practiced by organizing, analyzing, and graphing data within a project. These skills are then applied in other courses, such as Grade 7 Science Fair projects. In addition, students will learn HTML syntax and CSS styling to create and update a personal webpage. Throughout the year, the class discusses topics relating to digital citizenship, including privacy security and cyberbullying. Students spend time in each class practicing their typing skills using an online typing application.
Technology 8
This course provides students with an opportunity to further their exploration of Computer Science. To deepen their skills in Google Slides, students complete a “Choose Your Own Adventure” project that challenges them to make more interactive slideshows. This course also prepares students to develop a mastery of the fundamentals of text based computer programming, by studying the Python Turtle Graphics language. Students use a series of tutorials, example programs, quizzes, programming exercises, and challenge problems to get familiar with the syntax of the Python language. This includes variables, loops, and user input. The unit culminates with a Python Turtle Graphics project. The students continue practicing their typing skills using an online typing application, and online safety and digital citizenship topics are discussed throughout the year.
Upper School
The Upper School Technology and Computer Science curriculum emphasizes the development of coding skills, critical thinking, and an understanding of the ethical and social implications of technology.
Students are introduced to foundational concepts in programming through courses like Introduction to Computer Science, where they learn coding languages such as Scratch and Python, and explore issues related to diversity and the moral dimensions of technology. Building on these skills, Software Engineering and Introduction to Data Science takes students deeper into Python programming, data science, and visual programming with Processing, while also honing their ability to write efficient, elegant code. The curriculum culminates in AP Computer Science A, which follows a rigorous college-level syllabus, introducing students to Java and advanced programming concepts such as object-oriented design, recursion, and arrays. Throughout the courses, students not only strengthen their technical abilities but also engage in ongoing reflections about current trends in computer science, including artificial intelligence, ethical computing and gender issues, preparing them to be both skilled coders and thoughtful creators in an increasingly digital world.
Skills Emphasized
- Coding and programming
- Problem-solving and algorithmic thinking
- Data analysis and visualization
- Software development
- Critical thinking and reflection
- Collaboration and communication
- Independent learning
- Introduction to Computer Science
- Software Engineering and Introduction to Data Science
- Advanced Placement Computer Science A
- Competitive Computing (Introduction to Robotics & Ethical Hacking)
Introduction to Computer Science
This course provides students exposure to current day computer science issues, along with a variety of programming concepts and tools, in an effort to excite students about learning how to code. This course is a project-based course coupled with opportunities for students to learn, reflect, and discuss current day issues surrounding computer programming, including issues relating to recent studies on underrepresented people in the field of computer science as well as understanding the ethical and moral implications of creating and using technology. The course starts with a brief overview of computational thinking and binary numbers. Then students work towards gaining a mastery of higher-level Scratch concepts. Completing coding projects with Scratch provides a way to learn a variety of computer programming concepts, such as conditional statements and looping, without being bogged down with the syntax required by other languages. Next, students begin the study of Python. This is often a student's first pure text language. Students learn about data types, input statements, conditional statements, and looping by using CodeHS, an interactive online learning platform. They will practice and demonstrate their understanding of the concepts by completing several programming projects. The year ends with exploring the growing field of data science. If time permits, students complete a small project looking at a data set of their choice and learn how to clean and organize their data as well as evaluate and visually represent this data.
Software Engineering and Introduction to Data Science
In this course, students continue to develop their coding skills and reflect about current day computer science issues. While this course is predominantly filled with completing programming skill checks and projects, students in this course also take three to four assessments, one per term. The goal is to prepare students to take AP Computer Science A in a future academic year. The course begins with continuing our study of the programming language of Python. Students review knowledge of variables, conditionals, and loops by completing a complex coding project where they create a car rental program, followed by the study of functions and strings. Then students begin the study of Processing, a Java-based language. This pure-text language produces visual output, which provides the opportunity for endless creativity for students. The course covers many standard concepts common to most languages including variables, conditionals, loops, functions, objects, classes, and arrays. If time permits, students finish the year with a unit on data science, where students look at data collection, cleanup, transformation, analysis, and visualization. Throughout this course there is a greater emphasis on writing efficient and elegant code. In the previous course, students were simply asked that their code worked. To begin their development in recognizing better programming techniques, students take their code from their previous CS1 projects and rework some of them to make them more efficient and reader-friendly. Students continue to spend some time on current issues surrounding AI and computer programming, specifically those relating to recent studies about girls, women, and computer science. Prerequisite: Introduction to Computer Science
Advanced Placement Computer Science A
This course follows the College Board’s AP curriculum, which is described as “an introductory college-level computer science course. Students cultivate their understanding of coding through analyzing, writing, and testing code as they explore concepts like modularity, variables, and control structures.” The course builds off of students’ knowledge of Python and Processing and uses Java, an object-oriented programming language. While the course meets three to four class days per week, students are also responsible for spending time completing online learning and coding outside of class. Topics covered include: primitive types, using objects, boolean expressions and if statements, iteration, writing classes, arrays, arrayLists, 2D arrays, inheritance, and recursion. Students are expected to take the AP Computer Science A exam in May.
Open to students in grades 11 & 12. Prerequisite: Software Engineering and Introduction to Data Science
Competitive Computing (Introduction to Robotics & Ethical Hacking)
Cybersecurity, AI, and robotics are fields in which computer scientists are in greatest demand. The Bureau of Labor Statistics is projecting significant job growth for information security analysts due to the increasing frequency of cyberattacks and the need to protect critical data and systems across businesses. Computer scientists in the field of robotics are crucial for developing the software and algorithms that power robots, making them a vital part of the design and operation of robotic systems; this demand is expected to continue growing with advancements in artificial intelligence and automation. Upper School is a critical time to expose students to these fields. This course provides students an opportunity to deepen their understanding of and practice with the skills needed in the fields of cybersecurity and robotics. Students will have the opportunity to apply their coding skills to competitive environments. They will learn about ethical hacking and develop their techniques by completing a variety of CTF (Capture The Flag) challenges. Students work in groups to learn and practice strategies for solving these challenges. As they hone their skills, they will complete increasingly more difficult CTF challenges. Students will also explore the world of robotics with the goal of eventually competing in a First Robotics competition in future years. Initially, students will compete in hackathons and robotics competitions in class against each other. Other possible sources of competition would be hackathons hosted by schools, colleges and organizations as well as the Zero Robotics high school tournament once it resumes. This course allows students the chance to continue their study of CS even if they do not have room to take on the challenge of AP Computer Science A or if they would like to continue their work in computer science after taking AP CS A.
Open to students in grades 10-12. Prerequisites: Software Engineering and Introduction to Data Science