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

computer science lab

Computer Architecture

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.

Meet Our Faculty

Mark Bailey

Chair, Robert and Pamela (Craig) Delaney Professor of Computer Science


the boundary between hardware and software, including program optimization, embedded systems, computer architecture and computer security

Thomas Helmuth ’09

Associate Professor of Computer Science


genetic programming; evolutionary computation; program synthesis from examples; artificial intelligence; functional programming

Sarah Morrison-Smith

Assistant Professor of Computer Science


computer science; human-computer interaction; accessibility; computer-supported cooperative work; gestural interactions; human subjects research

Darren Strash

Associate Professor of Computer Science


Algorithms and data structures, computational geometry, graph theory, and discrete mathematics

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 Hamilton Stories

Charlotte Whiting (left), Thomas Meyers, Chief of EMS (center left), Sydney Tran (center right), and Madison Monroe (right) review their presentation on data organization for the Oneida County Volunteer Ambulance Corps

Comp. Sci. Seniors Lend Expertise to Area Nonprofits

Core to Hamilton’s computer science curriculum is the senior project where seniors offer their expertise to local projects, often supporting faculty. This fall, Assistant Professor of Computer Science Sarah Morrison-Smith decided to incorporate ethics and social good into her seminar by having students work with area nonprofits.

AI theatre

AI as Storyteller

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.

Sarah Morrison-Smith

Morrison-Smith Gives “Expert Advice”

Assistant Professor of Computer Science Sarah Morrison-Smith was recently featured in the “Expert Advice” column on TechGuide.


Department Name

Computer Science Department

Contact Name

Thomas Helmuth, Acting Chair

Office Location
198 College Hill Road
Clinton, NY 13323

Help us provide an accessible education, offer innovative resources and programs, and foster intellectual exploration.

Site Search