Students learn general computational problem-solving techniques and gain experience with the design, implementation, testing and documentation of programs in a high-level language.In addition, students learn to design digital devices, understand how computers work, and learn to program a computer in its own machine language.Biology topics include the basics of biochemistry, the central dogma, population genetics, molecular evolution, metabolism, regulation, and phylogenetics.Computer science material includes basic data types and control structures, recursion, dynamic programming, and an introduction to automata and computability. Extensive practice constructing applications from principles, using a variety of languages.CS 5 will NOT be open to Non-HMC Students, i.e., students from the other Claremont Colleges in Fall 14.A version of CS 5 WILL be offered to Non-HMC Students in Spring 15.These concepts are supported by a series of hands-on lab assignments. Participants in this seminar-style course will discuss readings that explore general issues of teaching and learning as well as readings that explore how students learn within computer science.Weekly assignments will build toward all course participants (individually or in partnership) conducting qualitative research to document how people understand a concept of their choosing.
Students see both the intellectual and practical connections between these two disciplines and write computer programs to explore biological phenomena.
Applications including sorting and searching, graph theoretic problems such as shortest path and network flow, and topics selected from arithmetic circuits, parallel algorithms, computational geometry, and others. This course presents a general introduction to the field of Artificial Intelligence.
An introduction to computational complexity, NP-completeness, and approximation algorithms. In a nutshell, it examines the question: What does (will) it take for computers to perform human tasks?
Student teams design, develop, and test a substantial software project.
This course introduces students to issues in the design, implementation, and evaluation of human-computer interfaces, with emphasis on user-centered design and graphical interfaces. Topics include elegant theoretical results underlying compilation techniques, practical issues in efficient implementation of programming languages, and bit-level interactions with operating systems and computer architectures.