The Computer Science program provides an opportunity for students to learn how to break down and tackle large challenges. By emphasizing how to embrace experimentation and failure, the program gives students a system for meeting future challenges. While it is not the goal of the program to have every student to become a professional engineer or computer scientist, the program does provide the technological literacy necessary to understand and interact with the modern world.
At the Upper School level, students achieve a familiarity with the field of computer science through four increasingly complex courses. Learning goals include how to structure a problem toward a solution that others can understand; how to select the solution which best fits the situation; how to use a programming language to solve these structured problems; how to become aware of the principles of digital electronics behind the computer science field; how to apply computer technology to support other fields of study; and how to understand the complexities of communication and information processing. Lastly, every effort is made to seek out opportunities for collaboration with other faculty members following the GCDS mission of integrated project-based learning.
Diploma Program Credit: Students can consult with their Diploma Program Director to consider program credit for a course. Beyond courses that explicitly participate in a diploma program, in many core courses, students can design their major projects to meet diploma program credit guidelines.
This course is a broad introduction to the field of computer science, covering topics from applied sciences, social sciences, and mathematics. The course covers a basic understanding of computer science theory; a study of algorithms and other problem solving techniques; current computer science research topics; an introduction to digital electronics; programming fundamentals; and the development of computers in today's society as it relates to ethics. Students will learn to use the Python programming language and to use well-known computer problem solving tools. This course is useful to all students: those who will study or work with computers in college, those who desire a general knowledge of computer science, or those who are interested in the application of computer science to other fields. Additional time will be spent in the Makerspace applying the Design Thinking process and learning the skills of the woodshop, laser cutter and 3D printers.
Prerequisite: None Credit: CSCI Semester: Full Year Diploma Credit: Engineering
This course extends the topics introduced in the Computer Science I course. The major emphasis of this course is advanced programming methodology, algorithms, and using fundamental data structures. Topics include algorithms, programming for the web, programming of drones/robots, sort-searching techniques, dictionaries, and multidimensional tables. Object-oriented programming and architecture is emphasized. Current computer science literature is used in class. If a student plans to take the AP Computer Science exam, this course applies. Assignments in this course are intended to prepare the student for the computer science team.
Prerequisite: CS I Credit: CSCI Semester: Full Year
Diploma Credit: Engineering
The course covers what a database system is, how to design databases effectively and in a principled manner, how to query databases, and how to develop web-based applications using databases: SQL, database application development. The course offers both programming and non-programming paths for homework and projects, to accommodate students with different programming skills and backgrounds. Data scientists examine which questions need answering and where to find the related data. They have business acumen and analytical skills, as well as the ability to mine, clean, and present data. Businesses use data scientists to source, manage, and analyze large amounts of unstructured data. Results are then synthesized and communicated to key stakeholders to drive strategic decision-making in the organization.
Prerequisite: CS II Credit: CSCI Semester: Full Year Diploma Credit: Engineering
This course is an interdisciplinary offering from the computer science, physics, and math faculty. Student assignments will reflect concepts from all three disciplines including: projectile motion; orbitals; strings; particles; matrices and area below a curve (Riemann). Simple graphics will be included as part of the course. Significant time outside of the classroom is expected. This course includes competitions in the American Computer Science League as well university led competitions.
Prerequisite: CS I and II, Precalculus, Physics, Faculty Approval
Credit: SCI, CSCI, Math Semester: Full Year
Diploma Credit: Engineering
Questions about the Upper School's Computer Science Program?
Gordie Campbell, Chair of Computer Science
Email: gordie.campbell@gcds.net