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.
About the Major
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 ’12 — 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?
Careers After Hamilton
- 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
Contemporary Computing Concepts 100S
The course demonstrates how modern, familiar instances of computing technology–Siri, jpeg files, streaming data, the cloud, big data, 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 Courses
Introduction to Computer Science 110FS
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, 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 Courses
Discrete Mathematics 123S
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. Quantitative and Symbolic Reasoning.View All Courses
Computer Organization and Assembly Language 240F
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.View All Courses
Operating Systems 340S
Study 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 Courses
Artificial Intelligence 375S
Exploration 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 Courses
How Research Changed a Student’s Long View