Courses

Computer Science

How do we model what we know? How do we use these models to explain our ideas? How do we solve problems using these models? How can we analyze and improve these solutions? Computer science is an approach to answering these questions that is grounded in mathematical theory and computer logic. The study of computer science is the study of the languages, symbols and theories that we use to answer these questions and to develop new questions. Over the course of four semesters, Computer Science students at St. Mark’s will study the process of problem solving through the lens of computer programming in Java and other languages. Introduction to Computer Science and Application Design are process- rather than information-driven, as students learn to tackle complex challenges in strategically and tactically sound ways, building their arsenal of problem-solving methods. Information Design and Advanced Topics in Computer Science assume a thorough knowledge of these skills and add a layer of theoretical knowledge of common models and algorithms. Students taking Information Design and Advanced Topics in Computer Science in a single year will be prepared to take the Advanced Placement Exam in Computer Science.

Classes

Introduction to Computer Science - Fall

This course provides an introduction to computer programming and organization.  The course begins with using the SCRATCH programming environment to introduce students to the concepts of computer programming.  Every student completes an individual project that is then exported to the SCRATCH site. After SCRATCH students learn the Python programming language using the Eclipse IDE.  While learning Python, concepts of binary number systems, data representation and some computer architecture concepts are introduced.  The course ends with each student programming a graphical competitive game where one human playing against the computer.  In the past students, have programmed games such as Tic-Tac-Toe and Connect-4.  (No prior programming experience is expected or required)

Robotics I - Spring

Students will learn robotic algorithms, CAD and programming the VEX control system.  They will be introduced to autonomous robot algorithms such as the subsumption algorithm. CAD software will be used to design and analyze common robotic structural elements such as drivetrains, gears, chains and sprockets.  Although students will be encouraged to collaborate, every student will also work on their own VEX powered robot.  These robots will then compete with other robots at internal or small regional competitions such as the VEX competition sponsored by WPI.  (Prerequisite: Introduction to Computer Science or permission of instructor)

Developing Integrated Web Applications - Fall

The goal of this course is to equip students with skills to develop dynamic websites and to appreciate the process of integrating a range of building-block technologies.  The course begins with an introduction to the fundamentals of computer networking followed by the basics of relational databases with an emphasis on normalization.  Students will learn to configure a network, administer a database and construct queries. The remaining part of the course will be devoted to web technologies.  Each student will develop a substantial database driven web application that will be hosted by the Department and will be available while they are at St. Marks.  (Prerequisite: Introduction to Computer Science)

Robotics II - Spring

This course builds on Robotics I and the entire class will build a robot for the FIRST Robotics Competition as a team. Students will learn the LabVIEW programming framework and architecture of the National Instruments cRIO.  Students will use their proficiency in CAD to design and evaluate robotic designs.  After the competition students will, as a team, analyze the performance of algorithms and strategies used and then make experimental changes to the actual robot or to their CAD design.  This is a very hands-on course and students should expect to operate in an engineering design team atmosphere.  (Prerequisite: Robotics I or permission of instructor)

Models of Computation - Spring

This purpose of this course is for students to be able to differentiate between computation and computers.  This course will expose student to some analog “unconventional computing” models.  The study of the history of computing and the attempts at creating computational devices before the advent of the modern computer will form an integral part of this course.  The course will also include a study of traditional models of universal computers and will investigate how extremely simple programs such as one-dimensional cellular automata are computationally equivalent to traditional computers. The course will end with each student doing a project demonstrating the computational abilities of either a simple program or of an unconventional computer.  (Prerequisite: Introduction to Computer Science; Recommended: Developing Integrated Web Applications, Robotics)