The fundamental question at the root of computer science is: What can be automated? Hamilton's computer science students explore that question through hands-on courses and research that are – like the field itself – constantly evolving. Students focus on both the experimental and theoretical sides of computer science, but 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?
Computer science is the study of how information is organized and processed. That study addresses the design, analysis, implementation, efficiency and application of algorithms and data structures. It is, unlike some scientific disciplines, changing almost daily. Hamilton's Computer Science Department changes with it. Every course is revised regularly, and new courses are introduced to examine emerging theories and technologies.
Yet while computer science evolves at a dizzying pace, the fundamental principles underlying the discipline are firmly rooted in mathematics, logic and language. The department's faculty and curriculum are dedicated to preparing students to adapt and excel by building on these foundations.
Introductory courses include a lab-based survey of the field and a three-semester course sequence on object-oriented programming. The texts and lab materials have been written and published by Hamilton’s computer science faculty expressly for these courses. The curriculum continues through courses in algorithms, computer architecture, system software, parallel programming, artificial intelligence and theory of computation before culminating in the senior program.
Some prospective students are surprised that a cutting-edge computer science program can thrive at a college so deeply rooted in the liberal arts tradition. For those who study and teach in Hamilton's Computer Science Department, this dynamic relationship between scientific tradition and technological innovation is at the core of who we are.