Computer Science + Digital Media
The Computer Science and Digital Media Department provides coursework rich in opportunities for building fundamental skills and exploring programming, robotics, electronics, and digital design. Our programming language of choice is the widely-used Python, a favorite for introductory courses in high schools and colleges due to its gentle learning curve. Additional levels of programming offer our student programmers a substantial forum for learning the skills and techniques necessary for sophisticated large-scale projects. Digital Media coursework at GFS, combining technology and design, provides students with the opportunity to develop design skills and explore the creative potential of technology, using the suite of offerings associated with the Adobe Creative Cloud.
The department revises its courses every year to account for student interest and the dynamics of this rapidly changing field. All Computer Science + Digital Media classes are pass/fail.
Courses
new
CS100 Computer Science for Beginners
minor elective | grades: 9, 10, 11, 12 | one semester
This course is geared towards students who feel that computer science is outside of their comfort zone but are courageous enough to try it out. This is a survey course meant to introduce concepts across a variety of realms of Computer Science to inform students of the breadth of options available in this discipline. Topics to be covered include the Google suite (Classroom, Drive, Sheets, & Slides), Excel, Data Visualization & Infographics, Managing Files, Programming in Python, Web Design, Robotics.
CS111 Robotics
minor elective | grades: 9, 10, 11, 12 | one semester
This fun one-semester, no-homework minor elective uses robots to introduce students to the intersection of computer programming and mechanical/electronic devices. Students will assemble robots and then learn to program them to perform tasks, ranging from simple (moving forward, turning on a light, etc.) to complex (finding and retrieving an object, playing soccer, etc.). Most units culminate in an exciting challenge: teams of students try to get their robot to accomplish a task (e.g., robot bowling, relay races, tug of war) more effectively than the other teams. No previous experience in robotics or programming is necessary. Students signing up for Robotics may request their preferred semester, first or second. Enrollment limited to 12 students per section.
CS130 Computer Science I: Introductory Programming with Python
minor elective | grades: 9, 10, 11, 12
This full-year minor elective seeks to introduce students to computer programming. We will focus on learning Python, a programming language used at many colleges and high schools as their introductory language. The learning curve for Python is gentle, so students learn the basics quickly and produce simple programs easily. Students will progress to more advanced projects, such as interactive games, card games and casino simulations.
No previous experience is necessary.
CS131 Introductory Programming: Girls Who Code
minor elective | grades: 9, 10, 11, 12
This Girls Who Code section of Introductory Programming (see course description above) will also include meetings with women in the field to discuss their work in technology.
No previous experience is necessary.
A Note on Introductory Programming: Girls Who Code
To encourage girls to study technology, we offer this “girls only” section of Introductory Programming. This section reflects our desire to address the gender gap in technology and engineering. Girls are welcome to take either Introductory Programming offering.
CS140 Computer Science II: Data Science & Object-Oriented Programming
minor elective | grades: 10, 11, 12 | prerequisite: CS I or with Department Head approval
This full-year elective course builds on the skills developed in CS I. The course continues to use Python to examine more advanced topics in programming and introduces students to R, a data science program used for statistical analysis. The class will explore data collection, visualization, and analysis using R and topics such as graphics, user-interface, abstraction, recursion, hash tables, and object-oriented programming using Python. This class also serves as a brief introduction to the concept of machine learning and algorithms. Students will spend a mixture of their time learning concepts and working on their own programs, either in collaboration or independently.
CS150 Computer Science III: Algorithms & Computer Organization
minor elective | grades: 11, 12 | prerequisite: CS II or with Department Head approval
This course is split into two units. The first unit consists of exploring algorithms and data structures with Java, an object-oriented programming language. This will introduce students to the language that is featured on the AP exam (GFS does not require or discourage students from taking AP exams). The second unit introduces students to computer organization, or how a computer works. They will learn about digital logic and explore how transistors interact by modeling them with Arduino boards. Students will be briefly introduced to low-level languages such as C and Assembly.
CS190 Electronics Design Workshop
minor elective | grades: 10, 11, 12 | prerequisite: CS I or Robotics, or with Department Head approval
In this exploratory course in creative technology and tinkering, students will explore different modes of design involving electronics and software. Students will work on a series of labs structured around paper circuitry, interaction design, interface design, and computational design. Students will use tools like Arduino, Makey Makey, and Bare Conductive paint to explore ways in which the digital world interfaces with analog materials. The course will culminate with an independent project that each student will design, prototype, and fabricate.
CS155 Computer Science Programming Capstone
minor elective | grades 11, 12 | prerequisite: CS III or with Department Head approval
The Capstone course in the Computer Science/Digital Media department is the culmination of the academic courses we offer in programming. It builds on the concepts and skills covered in the CS II and III programming classes. This course will focus on larger projects and, in many cases, students will work in teams. Students will identify a complex problem or project that requires them to apply, and extend, their programming skills and knowledge and to produce an appropriate programmatic outcome. Based on student interest, so students in the course will drive the content of the class.
CS171 Digital Design I
minor elective | grades: 9, 10, 11, 12
This introductory survey course is open to students eager to explore and develop their creative and technical design skills. While following industry-level digital design methodologies and practices, students gain experience with Adobe Creative Cloud tools including Illustrator, Photoshop, InDesign, and After Effects. Students apply their knowledge and skills to create a variety of hands-on projects in digital illustration, digital compositing and online graphics, print media design, and motion graphics design. Supporting topics include creative direction, typography, design principles and techniques, and human-centered design. Throughout the course, class readings and discussions introduce an historical overview as well as emerging trends, and students share their original work and critically reflect on their classmates’ work as well as real-world examples. Students will be able to use and apply their skills in course work and projects throughout the curriculum and in clubs and student publications such as Earthquake, Polyphony, and Anno.
CS160 Web Design & Development I
minor elective | grades: 9, 10, 11, 12
This course covers the basics of designing websites, as well as web development using the HTML and CSS authoring languages. Students learn about the creative design of websites, including the strengths, constraints, and limitations of this medium of communication. Students code their own web pages from scratch, using the latest web standards and tools, such as HTML5, CSS3, coding software, wireframing, and browser tools and plug-ins for web developers. Students complete several assignments and projects to master the course objectives, including a final project to create an original design for a microsite on a topic of the student’s choice. To support their work, students complete readings from the course texts and selected articles; they share their original work and critically reflect on real-world examples.
CS170 Web Design & Development II
minor elective | grades: 10, 11, 12 | prerequisite: Web Design & Development I or permission of instructor
This course builds upon the principles and skills acquired during the Web Design & Development course. Students learn more advanced CSS3 coding techniques to create web pages employing the latest trends and standards in web design, including CSS animations and JQuery plugins for increased interactivity. Students learn how to better control the layout and responsiveness of their web pages using advanced CSS layout and grids, responsive web design, and popular frameworks such as Bootstrap. Projects are completed using code editing software and developer tools, and the workshop format allows ample time for students to immerse themselves into topics and practice techniques. The course culminates in a final project of the student’s choosing, to design and implement a functional site for a real client using WordPress or another content management software. Throughout the course, students share their original work and critically reflect on their classmates’ work as well as real-world examples. Readings, guest speakers, and hands-on projects expose students to opportunities available in creative technology fields.
CS180 Mobile Application Development I
minor | grades: 9, 10, 11, 12
Mobile Application Development (M.A.D.) I is an entry-level course in the Computer Science and Digital Media Department. This elective course presents students with key concepts and terminology involved in mobile technologies. Students of all coding experience levels are welcome, as this class is responsively designed around student interest and familiarity with technology. Topics covered in this course include user experience design, interface design, business analysis, technical documentation, and project management. This project-based course will operate like a start-up and allow students to work in teams to create a mobile application that solves a problem for a specific group.
CS200 Machine Studio
minor elective | grades: 9, 10, 11, 12
This course will introduce students to the processes of developing, prototyping and testing simple machines that include motors, gears, levers, and pendulums. Students will learn 3D modeling, 3D printing, and laser cutting, as well as traditional fabrication techniques. The class will follow a lecture and workshop format as students prototype inventions, create works of art, and critically revise design objects to update their function. This course is a collaboration between the Computer Science and Art departments. Enrollment limited to 12 students.
CS210 Digital Humanities: Advanced
major elective | grades 11, 12
This class connects the dots between all the various courses you have taken in high school thus far. Together, we will explore how the languages of technology are translating and encoding society. Art meets Science meets English meets Math, all through the lens of our increasingly digital world and the data it generates. Everything from the ads we see on social media to the legal decisions rendered by our judges is affected by algorithms and clouds of information. This course will give you the skills to filter and make meaning of the rising tide of data. Together, we will learn how to understand and parse text, visuals, maps, and networks to uncover the stories hidden in the metadata around us. The objective of this course is to introduce students to the scope and impact of data science on all fields of study. Students in Digital Humanities will level up their understanding of technology, critical thinking, and communication skills. Through independent and group projects, students will craft research questions and draw conclusions validated with data and research. This content-rich, interdisciplinary class will have regular readings, graded discussions, presentations, research reports, and group/individual projects.
Digital Humanities is open to Juniors and Seniors interested in weaving together a broader understanding of their educational journey across the humanities and sciences. This course will stretch your analytical, research, and reporting skills.