Using software that (mostly) runs identically on Mac and Windows, our courses teach programming, graphics, and other skills that are relevant to all kinds of computers (with Mac OSX giving us access to Unix/Linux programs). Classes meet twice a week for the entire year in classrooms with one computer per student.
3D ANIMATION (Department)
Learn the basics of computer animation—modeling, basic lighting and animation techniques—by working with Blender's IPO curves, armature basics, vertex animation, modifiers, particles, child-parent relationships and a physics engine. Prerequisite: Any previous computer class or permission of the department chair.
ALGORITHMS FOR GENETIC SEQUENCING (Roam)
For experienced programmers, this class introduces programs that analyze genetic sequences. There are numerous exercises in pattern-matching and string comparisons, calculating family trees based on DNA sequences while taking into account the basic operations of mutation, insertion, deletion, and transposition. Though we mostly use simplified models of DNA (without worrying about protein folding), this topic gives us a chance to study "design patterns," data-structures and algorithms for large data sets, and basic molecular models. Prerequisite: Programming 2.
ANIMATING WITH THE COMPUTER (Moser)
Nearly 200 years after Dr. Antoine Plateau invented the phenakitstoscope (an ingenious device that used sequential pictures painted on spinning disks to produce the illusion of movement), today's computers offer the animator an unparalleled means of carrying on the tradition of harnessing technology for creative visual storytelling. In this course we explore a variety of animation techniques ranging from conventional keyframe, puppet, and cell animation, to modern interactive, parametric, and 3D animation. Through storyboarding, we develop narratives particularly suited for expression as dynamic images. In addition to creating our own animations, we view and discuss the work of other animators, both renowned and less known. Prerequisite: Previous experience with the application software used (Photoshop, Flash, Illustrator, Director), or any hands-on experience with the phenakitstosope, is helpful but not required.
COMPUTING 1 (Department)
The basic information necessary to use computers for schoolwork, learned through creative independent projects. We emphasize the use of computers as aids to writing and research (typing, word processing, database, spreadsheet), programming, desktop publishing, web page design, animation, and telecommunication. Prerequisite: None.
COMPUTING 2 (Department)
This course builds on the concepts and skills introduced in Computing 1, and is designed for those students who wish to create more advanced projects. The focus is on creative applications of the computer: multimedia and web page design with advanced graphics, programming, animation, desktop publishing, sound editing, desktop publishing, and video. Prerequisite: Any middle school computing course, HS Computing 1 or permission of the department chair.
DIGITAL GRAPHICS 1 (Department)
An introduction to desktop publishing, graphics, and web page design, this course explores effective ways of combining text, color, space, images, and film clips. Topics include XHTML, advanced text editing (style sheets, tables, tab leader, leading), page layout of publications, computerized drawing and painting, and image editing. A broad examination of the computer as a design tool, this class gives students a chance to become familiar with a number of graphic arts programs and presents them with design concepts as a structured context for their own explorations. Assignments examine specific design principles or problems, and students are challenged to approach each project in an individual and personal way. Some projects may include: creating a font or alphabet, designing a personalized logo, drawing blueprints of our homes or classroom, developing a web-page-based game or movie. The class works with Photoshop, animated gifs, web page editors, and other design programs. Prerequisite: Experience in word processing.
DIGITAL GRAPHICS 2 (Department)
This class involves more techniques and formal graphic design assignments. Students develop a comprehensive foundation in design methods, drawing, typography, color theory, and conceptual skills. By building on a basic foundation of graphic design, graphic art history and digital techniques, students will also learn how to talk about work and to solve design challenges using Photoshop, InDesign, AfterEffects and Flash. The emphasis is on the presentation of projects--either printed or displayed in web pages. Prerequisite: Digital Graphics 1 or permission from instructor.
GAME PROGRAMMING (Department)
Designing games presents unique challenges distinct from the design issues of other interactive media. In addition to the user interface, one must consider story, culture, modeling, and implementation. This course will explore developing usable and engaging games, human computer interaction, thematic structures, graphic design, sound effects, and game aesthetics. The course will operate in a workshop format and will take into account the history of non-digital and digital games, role-playing, puzzles, interactive fiction, and 3D modeling. Students will plan and create games both individually and collaboratively using a variety of languages, which may include ActionScript, Inform, Javascript, Lingo, Arduino and Python. The goal of the course is to allow students to explore the creative possibilities presented through the field of game design and to develop an appreciation for the beauty and logic of programming. Prerequisite: Some programming or permission of the instructor.
GRAPHICS PROGRAMMING (Roam)
We write programs that create 3D computer graphics (houses, robots, landscapes). Once we complete a brief introduction to matrix multiplication, we can start shading, rotating, and animating objects that we have designed. Our programs read and process text files that contain descriptions of 3D graphic objects and display the resulting 3D objects from arbitrary viewpoints. For advanced students, projects include the construction of race car and airplane games with first person and chase plane viewpoints. Prerequisite: Programming 2 or permission of the instructor.
IPHONE PROGRAMMING (Department)
Learn how to program with Objective-C, Interface Builder, and XCode on the iPhone and iTouch’s unix-based operating system. Understand the way the iPhone applications work and how to build them. Actively and creatively explore this new field of little computers using the iPhone as the main research platform. No iPhone required. Prerequisite: Some programming experience.
MOTION GRAPHICS (Arum)
Motion Graphics, or animated graphic design, is the process of integrating drawings, photos, typography, digital video and audio to create visually innovative and dynamic graphics. While you will edit images, video and sound, emphasis will be placed on how you combine the pieces together over time to create your own short movies, digital stories, main title sequences or animations. By creating projects, managing footage, setting keyframes, working with alpha channels, applying effects, animating text, and experimenting while you design, you will gain a conceptual understanding of the role time and motion have on the presentation of your content. Prerequisite: Permission from instructor.
PHYSICAL COMPUTING 1 (Arum)
Learn how to physically interact with a computer without using the mouse, keyboard and monitor interface. Move beyond the idea that a computer is a box or a system of information retrieval and processing. Using a microcontroller, a single-chip computer that can fit in your hand, write and execute interactive computer programs that convert movement into digital information. Work with components such as resistors, capacitors, diodes and transistors as well as integrated components. Through lab exercises and longer creative assignments learn how to program, prototype and use components effectively. Control motors and interpret sensors, as well as explore advanced concepts in interface, motion and display. Prerequisite: Some programming or permission from instructor.
PHYSICAL COMPUTING 2 (Arum)
This class is an experimental environment in which students can combine theory and practice to interface microcontrollers and transducers. Learn how to make devices respond to a wide range of human physical actions. Building on previous knowledge acquired in Physical Computing 1, students will build projects from schematics, make programs based on class examples, and make interfaces talk to each other. Topics may include: networking protocols and network topologies; mobile objects; and wireless networks of various sorts, digital logic building blocks and digital numbering systems. Students will be involved in short production assignments and final projects, and keep an online journal documenting their work and reading. Prerequisite: Physical Computing 1 or permission from instructor.
PROGRAMMING 1 (Department)
Explore the science and art of computer programming. For students who want to create and modify their own computer software, this course uses the high-level programming languages Java (an internet-savvy version of C++) and Transcript (a multimedia descendent of Pascal) to introduce the basics of computer control. We use loops, variables, procedures, input, output, and branching decisions (with Boolean logic) to control graphics, sounds, and information. Prerequisite:
PROGRAMMING 2 (Department)
A continuation of Programming 1, for students who are becoming more confident in their ability to combine data types and complex computer routines. We use Java (an internet-savvy version of C++) to look more deeply at object-oriented programming: class definitions, inheritance, methods, fields, arrays, and collections. Large projects include writing an interactive, animated project with control windows and graphics. Prerequisite: Programming 1 or permission of the department chair.
PROGRAMMING 3 (Department)
Once we get threads and buttons and class hierarchies under control, we can focus more on code that can work on large data sets: sorting random sequences, controlling pointers, and creating a phone directory with records that can be searched and saved to disk. The large projects require greater skill in breaking tasks into efficient sub-tasks that have clear purposes. Prerequisite: Programming 2 or permission of the department chair.
PROGRAMMING 4 (Department)
For the student with a great deal of experience with classes and methods, this course demands advanced programming. Topics include sorting, searching, simulations, file input/output, doubly and circularly linked lists, stacks, queues, trees, hash tables, and recursion. Some projects are joint efforts; team members split writing and debugging tasks and we spend some time comparing the efficiencies of different algorithms. Prerequisite: Programming 3 or permission of the department chair.
SPACE COLONIES (Roam)
Could some of that limitless solar energy in outer space be safely beamed down to Earth, making us less hungry for oil and less reliant on gas-burning cars and coal-burning power plants? Couldn’t this be a boost for health, environment, prosperity, you name it, if it worked? Since the 1970s, some physicists have been suggesting that colonies floating in space could build huge solar collectors, using minerals from the moon, and using microwaves to send down cheap (?) energy.
This seminar asks whether space colonies are a possible, desirable investment in the future, and how they might realistically work. Issues include safety and health and life in space (artificial gravity, radiation), energy, cost, basic physics, and even political philosophy (Colonialization? Independence? Weapons in space?). We study models (simulations) of life support, ecosystems, financial investments, and world population vs. hunger vs. resource trends. The “Civilization IV” game, with its “manage a country” role-playing, might give us a way to design a “civ in space” scenario. We read works by technology philanthropist Buckminster Fuller and works by Ray Kurzweil, who is forecasting a rapidly approaching technological “singularity”—an escalating collection of breakthroughs in everything from genomics to artificial intelligence, robotics, nanotechnology and energy. This is also a chance to participate in NASA’s annual space colony design contest for high school students.
See http://gargoyle.saintannsny.org for more information. Prerequisite: No programming experience necessary.
SOFT CIRCUITS (Arum)
Standard electronic components can be hard, brittle and unfriendly, and they are often difficult to embed in soft environments like clothing, toys, tapestries or furniture. Building circuits using fabric and thread not only opens up new possibilities for soft electronics, but eliminates the need for soldering. This class will explore materials, electronics and construction techniques for successfully integrating soft materials with standard components. The results will be washable, flexible, durable and aesthetic circuits. We'll also cover techniques for integrating the Arduino Lilypad micro-controller and XBee radio communication to create interactive and social objects. Make t-shirts that interact with each other, bags that light up in the dark, toys that talk to each other or artwork that responds to a user's movements. The resulting possibilities are endless (almost). Prerequisite: None.
WEB PROGRAMMING (Department)
This class will cover in depth the codes and design concepts required to make professional, functional web pages. The first half of the course will cover topics such as web layout and design using xHTML for content, CSS for design and layout, and Photoshop essentials for web graphic creation. The second part of the course will cover PHP (used to add functionality to your web pages and to streamline your xHTML code) and MySQL (databases). Small weekly projects will be used to prepare students for larger projects such as online portfolios, blogs, and personal web pages. Note that while this class will require significant programming, no previous programming or design experience is assumed of students taking this class. Prerequisite: None.