Computer Science
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
Computer Science for All
The first course in computer science is an introduction to algorithmic problem-solving using the Python programming language. Topics include primitive data types, mathematical operations, structured programming with conditional and iterative idioms, functional abstraction, and objects. Students apply these skills in writing programs to solve problems in domains across the liberal arts. No previous programming experience necessary.
Explore these select courses:
A study of fundamental algorithms and data structures from the canon, emphasizing correctness, and trade-offs between techniques, alongside deliberate coverage of topics from discrete mathematics. Topics include running time and space analysis, invariants as a means of proving correctness, and the divide-and-conquer, greedy, and dynamic programming algorithm design paradigms. Specific problems include graph traversals, (optimal) sorting/searching, minimum spanning tree and shortest paths, longest common subsequences, balanced search trees, heaps, hashing, and union-find for disjoint sets.
Introduction to access technology and the development of accessible systems. In this course, students build and evaluate various access technologies. This course teaches students the deep inner workings of today’s user interface technology and serves as a guide for building the user interfaces of the future. Topics include: text-to-speech, speech recognition, screen readers, screen magnification, alternative input, tactile displays, and web transformation. Programming intensive.
This course serves as an introduction to computer networks and data communications in the modern world. Emphasis will be on mastering the TCP/IP protocol suite. Topics include physical networks; reliable data transfer and transport protocols; routing and forwarding; data link layer communications and principles of shared media access. Students will also be introduced to wireless data communication and software-defined radio networks. Students will apply their understanding of networking fundamentals while working on hands-on programming assignments.
Meet Our Faculty
genetic programming; evolutionary computation; program synthesis from examples; artificial intelligence; functional programming
Mark Bailey
Chair, the 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
Deep learning, computational biology, bioinformatics
Wireless networks for rural areas; spectrum sensing and analytics; spectrum sharing and coexistence
computer science; human-computer interaction; accessibility; computer-supported cooperative work; gestural interactions; human subjects research
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
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.
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.
Morrison-Smith Gives “Expert Advice”
Assistant Professor of Computer Science Sarah Morrison-Smith was recently featured in the “Expert Advice” column on TechGuide.
Contact
Department Name
Computer Science Department
Contact Name
Thomas Helmuth, Acting Chair
Clinton, NY 13323