The goal of the Computer Science Department is to prepare students to adapt and excel in an ever-changing field by combining a strong foundation in mathematics, logic, and language with exposure to the latest innovations in technology.
About the Major
The question at the root of computer science is: What can be automated? Hamilton students explore that question through hands-on courses and research. Focusing on both the experimental and theoretical sides of computer science, they also consider the growing place computing has in the modern world. What are the ethical and social risks and benefits of such technology, and how do we manage them?
Students Will Learn To:
Apply core principles of program execution by developing an assembler
Demonstrate knowledge of programming language environments by implementing an interpreter
Solve a given problem by writing an efficient algorithm that uses an appropriate data structure, analyzing its running time, and demonstrating that their algorithm works
Demonstrate their mastery of appropriate programming constructs in written code
A Sampling of Courses
Study of how computers are built. Starting with fundamental logic gates, students will learn how to construct fundamental computational, memory and control components using digital logic. Students study the implementation of arithmetic logic units, processor control and datapath design. Topics will include performance analysis, pipelining, cache design, virtual memory, disk storage, and multicore design. Theory intensive.
Explore these select courses:
The course demonstrates how modern, familiar instances of computing technology–Siri, jpeg files, streaming data, the cloud, hacking, social media, drones, self-driving cars and Watson–all derive from the "big ideas" that make up the field of Computer Science. Topics include what it means to "compute," building machines to compute, how humans communicate with computers, computer networks, computer security, current and future computer applications. Students will use a variety of programs to experiment with all ideas presented. No knowledge of computer programming required.
An accelerated first course in programming. Students demonstrate skill in writing programs to solve problems using Python in a variety of application areas. Concentrates on the implementation of dynamic structures for data representation. Students will write programs in the C++ programming language to implement classic data structures. Course discussion will emphasize recursion, efficient implementations in terms of memory space and running time, computational complexity of algorithms, and introduction to two important fields of study: searching and sorting.
Study of mathematical models and techniques commonly used in computer science. Emphasis on analytical and logical skills, including an introduction to proof techniques and formal symbolic manipulation. Topics include set theory, number theory, permutations and combinations, mathematical induction and graph theory. Topics will be reinforced with hands-on experiences using the ML programming language. Appropriate for students with strong pre-calculus backgrounds. No previous programming experience necessary.
A study of the connection between high-level programs and the machines on which they run by means of extensive programming experience using assembly language. Topics will include translation of high-level language idioms into assembly language, number systems and representation schemes, exceptions, interrupts, polling, and an introduction to the structure of the underlying hardware. In the final project, students develop an assembler.
Exploration of AI theory and philosophy, as well as a variety of algorithms and data structures, such as heuristic strategies, logic unification, probabilistic reasoning, semantic networks and knowledge representation. Topics include application areas such as natural language understanding, computer vision, game playing, theorem proving and autonomous agents. Programming intensive.
“I kid you not — we are doing something that’s never been done before,” said Yassine Dhouib ’24 about the research that he, Dara Levy ’23, and Visiting Assistant Professor of Computer Science Dave Perkins are conducting this summer.
Careers After Hamilton
Hamilton graduates who concentrated in computer science are pursuing careers in a variety of fields, including:
Emergency Preparedness Officer, International Atomic Energy Agency
Senior Technical Program Manager, amazon.com
Vice President, Goldman Sachs
Engineering Project Manager, Apple Computer
Director of Global Relationship Management, International Lawyers Network