. Pomona College - Computer Science

Computer Science Courses available at Pomona, Harvey Mudd, and Claremont McKenna

Course Schedule

Courses for Non-Majors

CS Foundation Courses

CS Core Courses

Upper-Level Courses

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 pages: Spring 2010

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 pages: Spring 2011

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. Fall semester.

Course pages:  Fall 2010

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 pages: Spring 2011

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.

Course pages: Spring 2011.

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 pages:   Spring 2011 | Spring 2014

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 pages:   Spring 2010 | Fall 2010 | Spring 2011 | Spring 2014

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 pages:   Spring 2011

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 pages:   Spring 2010

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 pages:  Fall 2010

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 pages: Spring 2011

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 pages: Spring 2004   |    Spring 2008

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 pages:  Fall 2007

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 pages:  Spring 2009

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 pages: Fall 2009 Spring 2011

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 pages: Spring 2010

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 pages: Fall 2010

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 pages:  Fall 2010

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 pages:   Fall 2008

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 pages:   Spring 2010

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 pages:   Fall 2010

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 pages:   Spring 2011

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 pages:   Spring 2006

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 pages:   Spring 2010

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 pages::   Spring 2011.

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 pages: 
  • High Performance Computing (Pomona): Fall 2006
  • Security (Pomona): Spring 2008, Fall 2010

CS 183,184 Computer Science Clinic
Two-semester, industry-sponsored project in computer science. Prerequisite: CS 121. Offered by HMC.

Course pages: Most recent offering

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 pages:   Fall 2010

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.