
Mark Bailey
Mark Bailey's intro computer security course, Secrets, Lies, and Digital Threats, pairs students with high school classes to teach about dangers of the digital world.
Virtually all your courses will be a research experience within the lab-based curriculum. You will learn in a department that keeps up with the evolution of computer science yet provides a foundation in its underlying principles: mathematics, logic and language.
Computer science is the study of how information is organized and processed and addresses the design, analysis, implementation, efficiency and application of algorithms and data structures. The question at the root of computer science is – what can be automated? Hamilton students explore that question through hands-on courses and research that are – like the field itself – constantly evolving. The department regularly revises every course and introduces new ones to examine emerging theories and technologies.
I 100% had the academic experience I'd hoped for at Hamilton. The classes are small. The professors are unbeatable not only in the classroom, but as individual humans that helped shape me and my goals.
Amelia Mattern — computer science major
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?
Mark Bailey's intro computer security course, Secrets, Lies, and Digital Threats, pairs students with high school classes to teach about dangers of the digital world.
Alistair Campbell's work on bioinformatics has appeared in the proceedings of international conferences and workshops.
Thomas Helmuth ’09 focuses his research on genetic programming, a subfield of artificial intelligence.
Stuart Hirshfield was part of a consortium that developed what became the model curriculum for a bachelor's in computer science.
Among David Perkin's favorite academic inventions are courses that link mathematics to other disciplines.
Darren Strash researches graph algorithms for large social networks and web-crawl graphs.
Richard Decker and Hamilton Professor of Computer Science Stuart Hirshfield are co-authors of several widely used computer science textbooks.
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. Quantitative and Symbolic Reasoning.
View All CoursesThe 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, objects, classes and aggregate data types. Students apply these skills in writing programs to solve problems in a variety of application areas. No previous programming experience necessary. Quantitative and Symbolic Reasoning.
View All CoursesStudy 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. Quantitative and Symbolic Reasoning.
View All CoursesA 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.
View All CoursesStudy of the design and implementation of computer operating systems. Students will develop at least four significant projects related to the topics of process scheduling, interprocess communication, memory management, file systems, access control, device drivers and security. Programming intensive.
View All CoursesExploration of AI theory and philosophy, as well as a variety of algorithms and data structures, such as heuristic strategies, logic unification, probabilistic reasoning, semantic networks and knowledge representation. Topics include application areas such as natural language understanding, computer vision, game playing, theorem proving and autonomous agents. Programming intensive.
View All CoursesBecause Hamiltonians are Tech Leaders: Eseosa Asiruwa ’18
Read The Story