Select Page

Computer Science Courses

Computer Science courses vary to reflect the fast pace of change in computing languages and our desire to relate coursework to student interests. Computer Science courses are open to all students in Classes I–III, whether novice or experienced. The sequence begins with the introductory course, Computer Science 1.

Computer Science 1
(Half Course)
This project-based course is an introduction to object-oriented computer programming using the Java language. No prior knowledge of computing is needed. Within the framework of video game development, students learn the basic concepts and syntax of programming. Game topics covered include user control, decision-making, graphics, sound, and animation. Students develop problem-solving and logical thinking skills through object-oriented programming. The project-based design allows students to learn the basics in Java, while exploring more advanced topics following their individual interests. While this course does not exhaustively cover all concepts on the AP Computer Science A exam, it can be used to assist with preparation for the exam.

Computer Science 2
(Half Course or Semester 1)
This course is intended for students who have compåleted Computer Science 1 or have learned equivalent material and received permission to enroll. It includes topics such as data structures, search and sort algorithms, recursion, pathfinding algorithms, artificial intelligence for game programming, graphical user interfaces, JSONs, and APIs. The content and emphasis of the course are adapted each year to the interests and experiences of the students. The course is taught primarily using Java and ends with Python. In recent years, students have built projects of their choice using APIs from generative AI platforms to summarize news articles, generate storylines for Dungeons and Dragons, and suggest recipes based on available ingredients. (Prerequisite: Computer Science 1 or permission of the department chair is required.)

Advanced Computer Science: Full Stack Development
(Half Course or Semester 2)
This course exposes students to practical applications of programming with a specific focus on developing websites or mobile applications. Other topics covered are based on student interest and emerging technologies. Students design applications for websites by learning the relevant material to do so. The coursework will use a variety of programming technologies and topics such as JavaScript, HTML, TypeScript, React, JSON, CSS, and MongoDB. A recent class project was a Rate My Course website, available at www.ratemycourse.org. (Prerequisite: Computer Science 2 or permission of the department chair is required. With departmental permission, this course may be taken concurrently with Computer Science 2.)

Advanced Computer Science: Artificial Intelligence and Machine Learning
(Half Course or Semester 2)
This project-based course will introduce students to the basics of Artificial Intelligence (AI), machine learning, and data science. Topics in the curriculum include data cleaning and visualization, clustering, linear and logistic regressions for classification, the perceptron algorithm, natural language processing, feed forward neural networks, and convolutional neural networks for image classification. Specific topics may vary by year based on student interest and experience. Basic mathematical concepts from linear algebra, calculus, and statistics will be used, but no prior knowledge of these topics is assumed. (Prerequisite: Computer Science 2 or permission of the department chair.)

Advanced Topics in Artificial Intelligence
(Half Course or Full Course)
This course allows students who have already studied Artificial Intelligence to pursue exploration in that field at the advanced level. Topics may include convolutional neural networks, multi-head attention, Q-learning, among others, and will vary based on the experience and interest of the students. The class will be co-taught by industry professionals with expertise in relevant areas. (Prerequisites: Advanced Computer Science: Artificial Intelligence and Machine Learning, and permission of the department chair is required.)

Advanced Topics in Computer Science
(Half Course or Full Course)
This course allows students who have already studied Full Stack Development or Applied Engineering & Design to pursue explorations in those fields at the advanced level. Topics will vary to accommodate student interest and experience and may include concepts from mobile applications, website development, engineering, advanced algorithms, data structures, and others. (Prerequisites: Full Stack Development or Applied Engineering & Design, and permission of the department chair is required.)

Computer Science: Applied Engineering & Design
(Half Course)
This project-based course empowers students to design and create solutions for real-world problems using programming, electronics, and mechanical systems. Through hands-on exploration of everyday machines, students learn fundamental engineering concepts, electronics circuits, and systems design. Using Arduinos, students design and program electronic circuits and integrate them with the physical world.
Students will use physical kits provided by the school and online simulators to construct circuits incorporating actuators, sensors, and other electronic components, including Bluetooth and Wi-Fi modules, enabling remote control of their creations via smartphones or laptops.
Topics will align with student interests and may encompass robotics, electro-mechanical systems, audio systems, wearable technology, assistive technology, and sustainable energy systems. (Prerequisites: Computer Science 1 or prior programming experience with permission of the department chair.)

X