Bookmark and Share
  • Text +
  • Text -

Course Descriptions

CS 30 - Computation and Cognition

Introduction to computer programming for cognitive science and the computational modeling of human cognition. The nature of computation, the relation between computation and intelligence, and various approaches from artificial intelligence will be explored. Intensive programming practice during weekly lab sessions. No previous programming experience required. Prerequisite: none. Offered by Pomona. Spring semester.
Course Info...

CS 51 - Introduction to Computer Science

Introduction to the field of computer science using the object-oriented language Java. Topics include iteration and recursion, basic data structures, sorting and searching, elementary analysis of algorithms and a thorough introduction to object-oriented programming. Special emphasis on graphics, animation, event-driven programming and the use of concurrency to make more interesting programs. No previous programming experience required Weekly laboratory sessions. Prerequisite: none. Offered by Pomona. Each semester.
Course Info...

CS 52 - Fundamentals of Computer Science

A solid foundation in functional programming, procedural and data abstraction, recursion, and problem-solving. Applications to key areas of computer science, including algorithms and complexity, computer architecture and organization, programming languages, finite automata, and computability. This course serves the same role as HMC CS 60 as a prerequisite for upper division computer science courses at any of the Claremont Colleges. Prerequisite: CS 51 or equivalent experience. Offered by Pomona. Each semester.
Course Info...

CS 55 - Discrete Mathematics

Introduction to the study of finite mathematical structures and the ways to build them, count them, and analyze them. Topics and examples are chosen to relate to concepts of interest in the design and analysis of computer algorithms, including permutations and combinations, graphs and trees, and codes. Emphasis on creative problem solving and learning to read and write proofs. Prerequisite: CS 51 or equivalent experience. Offered by Pomona. Spring semester.
Course Info...

CS 62 - Data Structures and Advanced Programming

Key topics include abstract data types (including stacks, queues, trees, priority queues and dynamic dictionaries), analysis of algorithms (including worst-case, average-case and amortized analysis) and program verification. Extensive practice in Java. Includes an introduction to manual memory management in C++. Serves the same role as HM 70 as a prerequisite for upper-division computer science courses at any of The Claremont Colleges. Spring semester (also fall semester at CMC).
Course Info...

CS 81 - Computability and Logic

An introduction to formal systems, mathematical models of machines, and computability. Topics include predicate logic, regular languages, context-free languages, and recursive and recursively enumerable sets. Students will learn to understand and construct formal proofs. Prerequisites: CS 52 and 55. Offered jointly with HMC. Each semester.
Course Info...

CS 105 - Computer Systems

Data representations, machine level representations of programs, processor architecture, program optimizations, the memory hierarchy, linking, exceptional control flow, performance measurement, virtual memory, system-level I/O, and basic concurrent programming. These concepts are supported by a series of hands-on lab assignments. Prerequisite: CS 52 and 62, or HMC CS 60 and 70. Offered jointly with HMC. Each semester.
Course Info...

CS 121 - Software Development

Introduction to the technological and managerial discipline concerned with the design and implementation of large software systems. Techniques for software specification, design, verification, and validation. Formal methods for proving the correctness of programs. Student teams design, implement, and present a substantial software project. Prerequisites: CS 62 or HMC CS 70. Each semester.
Course Info...

CS 124 - Non-Traditional User-Interfaces

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. In this course, students learn skills that aid them in choosing the right user interaction technique and developing an interface that is well-suited to the people for whom it is designed. Prerequisite: CS 62 or HMC CS 70. Offered by HMC. Fall.
Course Info...

CS 125 - Computer Networks

Principles and analysis techniques for internetworking. Analysis of networking models and protocols. Presentation of computer communication with emphasis on protocol architecture. Prerequisite: CS 105. Offered by HMC. Fall semester.
Course Info...

CS 131 - Programming Languages

A thorough examination of issues and features in programming language design and implementation, including language-provided data structuring and data-typing, modularity, scoping, inheritance, and concurrency. Compilation and run-time issues. Introduction to formal semantics. Prerequisites: (CS 62 or HMC CS 70) and CS 81. Offered jointly with HMC. Each semester.
Course Info...

CS 132 - Compiler Design

Theory, design, and implementation of compilers and interpreters. Interaction between compiler design and run-time organization. Logistics of porting to new hardware. Prerequisites: CS 105 and 131. Offered by HMC. Alternate years.

Last Offered:   Spring 2011

CS 133 - Databases and Knowledge-Based Systems

Fundamental models of databases: entity-relationship, relational, deductive, object-oriented. Relational algebra and calculus, query languages. Data storage, caching, indexing, and sorting. Locking protocols and other issues in concurrent and distributed databases. Prerequisites: (CS 62 or HMC CS 70) and 81; CS 131 recommended. Offered by HMC. Alternate years.
Course Info...

CS 134 - Advanced Operating Systems

Communication (client-server model, remote procedure call, and multicast), processes (threads, real-time, fault tolerance), clock synchronization, mutual exclusion, deadlocks, distributed file systems, semantics of file sharing, shared memory (consistency, object-based), case studies. Prerequisite: CS 105. Offered by HMC. Alternate years.
Course Info...

CS 136 - Advanced Architecture

Reduced vs. complex instruction set architecture, pipelining, instruction-level parallelism, superscalar architectures, advanced memory-hierarchy design, advanced computer arithmetic, multiprocessor systems, cache coherence, interconnection networks, performance analysis and case studies. Prerequisite: CS 105. Offered by HMC. Alternate years.
Course Info...

CS 140 - Algorithms

Algorithm design, computer implementation, and analysis of efficiency. Discrete structures, sorting and searching, parsing, pattern-matching, and data management. Reducibility and theoretical limitations. Prerequisites: (CS 62 or HMC CS 70) and CS 55. Offered jointly with HMC. Each semester.
Course Info...

CS 143 - Applied Algorithms

What role do algorithms play in solving real-world problems? In this class we will consider general problem solving techniques, dealing with NP-completeness and issues concerning implementation and evaluation. The topics examined may be motivated by problems in areas such as computational biology, scientific computing and networks. There will be a research-oriented final project. Prerequisite: CS 140. Alternate years.
Course Info...

CS 151 - Artificial Intelligence

Introduction to artificial intelligence covering traditional topics such as knowledge representation, state-space search, game playing, and theorem proving, as well as more recent approaches such as neural networks, genetic programming, robotics, and machine learning. Philosophical issues surrounding artificial intelligence and cognitive science will also be considered. Prerequisite: CS 52 or 60. Offered jointly with HMC. Alternate years.
Course Info...

CS 152 - Neural Networks

Modeling, simulation, and analysis of artificial neural networks. Relationship to cognitive science, neuroscience, and biological neural networks. Supervised and unsupervised learning algorithms, including backpropagation and other gradient descent methods. Self-organizing feature maps. Recurrent network architectures. Evolutionary approaches to neural network design. Prerequisites: Math 60 and CS 52 or 60, or permission of instructor. Offered jointly with HMC. Fall semester.
Course Info...

CS 153 -Computer Vision

Computational algorithms for visual perception. Image acquisition, image processing, segmentation. Representation of color, shading, texture, shape. Stereo and motion analysis. Object recognition. Relations to robotics, human perception, image databases. Prerequisites: (CS 62 or HMC CS 70) and Math 60. Offered by HMC. Alternate years.
Course Info...

CS 154 - Robotics

This course introduces students to robotics from a behavioral perspective. Topics span from sensor operation and low-level actuator control to architectures and algorithms for accomplishing tasks. The basic framework and analysis of both industrial and biologically-motivated robots are addressed. The laboratory component of the class provides experience in developing algorithms, programming, and testing a range of robot behaviors on a variety of systems. Prerequisites: CS 105 and Math 60. Offered by HMC. Alternate years.
Course Info...

CS 155 - Computer Graphics

Geometric models for visual output. Rastering. Three-dimensional volume and surface modeling. Reflectance and illumination models. Texturing and shading. Color and animation. Prerequisite: CS 140, Math 60. Offered by HMC. Fall semester.
Course Info...

CS 156 - Parallel and Real-TimeComputing

Characteristics and applications for parallel and real-time systems. Specification techniques, algorithms, architectures, languages, design, and implementation. Prerequisites: CS 105 and 140; CS 131 recommended. Offered jointly with HMC. Alternate years.
Course Info...

CS 157 - Computer Animation

Algorithms and data structures for building and animating articulated figures and particle systems including interpolation techniques, deformations, forward and inverse kinematics, rigid body dynamics, and physically based modeling. Prerequisites: CS 155. Offered jointly with HMC. Alternate years.
Course Info...

CS 158 - Machine Learning

An exploration of concepts and methods in machine learning including decision trees, Markov models and neural networks. Students will implement Machine Learning methods, read and discuss contemporary research articles in the space and independently propose, research and implement a Machine Learning approach to a modern artificial intelligence problem. Prerequisites: CS 151. Alternate years.
Course Info...

CS 159 - Natural Language Processing

An introduction to fundamental concepts in natural language processing and computational linguistics, a field whose goals include enabling human-computer interaction via language and text translation and understanding. Use of statistical and logical techniques to study language processing at word, syntactic, and semantic levels. Assignments require constructing and modifying systems as well as using large, existing corpora for validation. Prerequisite: 51 and 62.Alternate years.
Course Info...

CS 160 - Information Retrieval

This course will explore how search engines work, covering text processing, index construction, text similarity, evaluation and searching other media. In addition, we will examine other applications relevant to search, including language modeling, clustering, classification and e-commerce. The course is project driven and we will build a functioning search engine. Prerequisite: 52 or 62. Offered occasionally.

Last offered:   Fall 2009.

CS 181,182 - Seminar in Computer Science

Selected topics in computer science. May be repeated for credit. Permission of instructor required. Each semester.
Course Info...

CS 183,184 - Computer Science Clinic

Two-semester, industry-sponsored project in computer science. Prerequisite: CS 121. Offered by HMC.
Course Info...

CS 190 - Senior Seminar

Reading and discussion in an area of computer science and preparation for the senior project. Topics will vary from year to year. Half-course. Fall semester.
Course Info...

CS 191 - Senior Research and Thesis in CS

This course provides highly motivated students an opportunity to work with faculty on research topics chosen in consultation with faculty. Students will be expected to perform a literature review, propose a research topic, and investigate extensions to the current state of the art. Projects are usually closely related to faculty research. The course culminates in a concise, well written report describing a problem, its background history, any independent results achieved, and directions for future research. Each semester.

CS 192 - Senior Project

A substantial, independent project in an area of computer science, undertaken with the supervision of a faculty member. Background research, a written report, and an oral presentation are required. Prerequisite: CS 190. Half-course. Spring semester.

CS 99,199 - Independent Study

Reading and Research. Course or half-course, arranged with approval. Each semester.