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.
Introduction to the theory and implementation of artificial intelligence. This course covers both foundational and modern approaches to AI, and explores a common thread of searching intelligently for solutions. Students will learn to select an appropriate AI representation to solve a problem and empirically analyze the performance of AI systems. Topics include heuristic search, game playing, evolutionary computation, machine learning, and the ethics of artificial intelligence. Programming Intensive.
For some college students, the jump from classroom to professional work is a daunting one. For Jungwon Kim ’23, the transition into software engineering for a tech startup was not difficult at all — despite it being his first foray into the commercial world.
The existential themes of love, death, and time were explored in the AI-scripted and human-performed musical production Channelers, an interdisciplinary art project funded by the Dietrich Inchworm Grant and headed by Assistant Professor of Digital Arts Anna Huff.
Computer science major Adam Valencia ’22 was awarded a $10,000 Project for Peace grant, which he’ll use this summer to address inequalities in the technology industry.
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
Aviator, U.S. Marine Corps
Product Manager, YouTube, Google
Elearning & Multimedia Developer, Coca-Cola
Software Engineer, Monster.com
Explore Our Spaces
The Taylor Science Center houses the offices for faculty members in computer science. The complex contains an atrium with a coffeehouse, an auditorium, and more than 100 teaching and student research laboratories.