Computer Science: Curriculum

In this rapidly evolving field our teachers and students work together as explorers and artists. Teachers demonstrate ideas and tools and turn the students loose to create. “Try it, see what happens! Can you figure out how to make it do more?” We love seeing excellence, creativity, rigor, and joy. We place students into courses based upon their experience and abilities, direct them in an individualized manner, and encourage them to move as rapidly, intensely, and broadly as they can. Our students are active learners. We provide them with the opportunity to learn by doing work that is sophisticated and challenging. We want our students to be engaged, inspired, and responsible while exploring, experimenting, expanding and pushing boundaries in classes that involve problem solving, information processing, project-based learning, and communication skills. We want students to explore the imaginative and creative uses of technology, and be empowered by having a broad understanding of what is possible.

The world around us includes dramatic technologies which are rapidly evolving because fast computers are being used to design even faster computers in turn. New machines and networks bring us more artificial intelligence, nano-technology, mobile devices (phones and tablets), social networks, wireless service, portable cameras everywhere, GPS tracking, digital maps, and touch screens. Vastly improved software toolkits make “child’s play” of what once was difficult, such as building computer games or online databases. Because the machines around us are daily growing more powerful, convenient, useful, interesting, and commonplace, our students can create and organize information (including ideas, art, biographies, poems, and algorithms) and can even make their projects accessible to people with limited vision or hearing. With computers our students can share and find ideas more readily than ever before, and can write programs to direct other machines such as printers, music synthesizers, robots, remote sensors, cameras, and 3D printers.

Our teachers are also students in this new world of technology, and we strive to be informed guides across a broad range of ages and skills. We serve students from grades 3 to 12, offering full-year classes in a wide range of topics including animation, circuitry, programming, 3D printing, web design with databases, programming for smartphones, and introductory courses that include creation and manipulation of graphics, spreadsheets, program code, and databases. (Visit http://tinyurl.com/sacc-software/ to find links and information about the apps we use, many of which are free and downloadable.) We structure computer classes like art studios, imagining the students as artists at their easels. Class time consists mostly of hands-on computer time, with the teacher circulating and helping.

In the Lower School, the computer is a tool for writing and drawing. Third grade students come to the computer center once a week for classes with computer teachers. They spend time learning to type, and composing stories with pictures and animation using multi-media toolkits that combine sound, art, animation, and some basic programming. The class sessions usually include a brief review, a demonstration of new material, and a work period where students practice and try out the new skills introduced. While planning, building, and rearranging their projects, students learn how to navigate in the computer environment— creating, saving, revising, and building assets for their projects.

In the Middle School, the Computing 1, 2, and 3 courses use the computer as a tool for multiple disciplines, showing students a crazy variety of tools and languages for graphics, music, writing, video, and web page design. We give an introduction to object-oriented programming in all of those classes, and for students with a deeper interest in logic, computer control, and symbol manipulation, we also offer Programming 1, 2, and 3, Game Programming, and Physical Computing (wires, lights, chips, sensors, etc.). Other offerings include 3D printing, Animation, and (sometimes) iPhone programming.

In the High School, students may choose among classes such as 3D Printing, Physical Computing (wires, lights, micro-controllers, internet, sensors, etc.), and Programming 1 through 5. We also run year-long classes in special topics for advanced programming students. In recent years we’ve taught Compiler Design, Graphics Programming, Artificial Intelligence, Game Programming, and Algorithms for Genetic Sequencing. These courses consider computer science as an intellectual discipline: students see the theoretical foundations of computer languages (grammar, syntax, semantics), practice with fundamental algorithms (sorting, searching), and design data structures (objects, classes, linked lists), while learning some of the powerful computer languages: Java, Python, Swift, Processing, C++, and JavaScript. Livecode, in particular, serves as a convenient introduction to object-oriented programming.

We make sure that all students at Saint Ann’s are skillful with computers: nimble, confident, resourceful, and creative. Students should be able to use the computer as a tool for all kinds of work and art: writing, performing mathematical analyses, testing hypotheses and analyzing scientific data, laying out publications and databases and websites, producing animation, composing music, designing lighting and sound and scripts for plays. Computers are becoming more powerful and students are growing in skill every year, giving us a moving educational target and leaving room for students to constantly amaze us.