![Students take Game Boys apart as during Computer Organization and Assembly Language class.](https://s3.amazonaws.com/mediacdn.hamilton.edu/images/21:9/300/241014computersciencegameboy20244173jpg.jpg)
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 lab](https://s3.amazonaws.com/mediacdn.hamilton.edu/images/16:9/300/151207hmlemmerson036web1600jpg.jpg)
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
Faces & 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.
![Assistant Professor of Computer Science Sarah Morrison-Smith works with small groups in her Computer Science for All class.](https://s3.amazonaws.com/mediacdn.hamilton.edu/images/3:4/225/241028computersciencecoding202463031jpg.jpg)
![Students work together in CS 101: Computer Science for All class with Prof. Sarah Morrison-Smith.](https://s3.amazonaws.com/mediacdn.hamilton.edu/images/16:9/300/241028computersciencecoding202461831jpg.jpg)
![Constructing FPGA emulators for the Game Boy for Computer Organization and Assembly Language class.](https://s3.amazonaws.com/mediacdn.hamilton.edu/images/16:9/300/241014computersciencegameboy202440901jpg.jpg)
![Deconstructing Game Boys during Darren Strash's CS 204 class.](https://s3.amazonaws.com/mediacdn.hamilton.edu/images/3:4/225/241014computersciencegameboy20244205jpg.jpg)
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](https://s3.amazonaws.com/mediacdn.hamilton.edu/images/16:9/300/23111323110901comcocvacnewsstorykmw0105jpg.jpg)
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.
![Sarah Morrison-Smith](https://s3.amazonaws.com/mediacdn.hamilton.edu/images/16:9/300/220817hmlsmith116web1600jpg.jpg)
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