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 organization and programming. The course takes a bottom-up approach to computer organization starting with the fundamental of binary systems and the key insights of digital logic that make efficient computing systems possible. After a review of basic data representation, we will learn about the essential components of all computers, such as processors, memory, input/output devices, and how all these work together. The remaining part of the course is devoted to learning programming using at least two different programming styles. The course ends with an individual project. (No prior programming experience is expected or required.)

Robotics - Spring

This course will provide the student with an appreciation of the fundamental design issues of robotics and also provide hands-on experience with building robots. The history of robotics as well as student driven discussions on the future of the field will be an integral part of this course. Artificial Intelligence and its relation to robotics will also be studied. The hands-on part of this course will vary each year and depend on the projects for that year. Student teams will construct robots with the ability to perform non-trivial independent or collaborative tasks. The choice of hardware will depend on the chosen projects.  (Prerequisite: Introduction to Computer Science)

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. They 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)

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)

Faculty

Jaiwant Mulik