Location: Bowdoin / Computer Science / Courses / Spring 2010

Computer Science

Spring 2010

101. Introduction to Computer Science
Stephen Majercik T  10:00 - 11:25
TH 10:00 - 11:25
Searles-126
What is computer science, what are its applications in other disciplines, and what is its impact in society? A step-by-step introduction to the art of problem solving using the computer and the Java language. Provides a broad introduction to computer science and programming through real-life applications. Weekly labs provide experiments with the concepts presented in class. Assumes no prior knowledge of computers or programming.

101. Introduction to Computer Science
Eric Chown M  9:30 - 10:25
W  9:30 - 10:25
F  9:30 - 10:25
Searles-126
What is computer science, what are its applications in other disciplines, and what is its impact in society? A step-by-step introduction to the art of problem solving using the computer and the Java language. Provides a broad introduction to computer science and programming through real-life applications. Weekly labs provide experiments with the concepts presented in class. Assumes no prior knowledge of computers or programming.

210. Data Structures
Eric Chown M  1:00 - 2:25
W  1:00 - 2:25
Searles-126
Solving complex algorithmic problems requires the use of appropriate data structures such as stacks, priority queues, search trees, dictionaries, hash tables, and graphs. It also requires the ability to measure the efficiency of operations such as sorting and searching in order to make effective choices among alternative solutions. Offers a study of data structures, their efficiency, and their use in solving computational problems. Laboratory exercises provide an opportunity to design and implement these structures. Students interested in taking Computer Science 210 are required to pass the computer science placement examination before class starts.

289. Theory of Computation
Adriana Palacio M  1:00 - 2:25
W  1:00 - 2:25
Searles-115
Studies the nature of computation and examines the principles that determine what computational capabilities are required to solve particular classes of problems. Topics include an introduction to the connections between language theory and models of computation, and a study of unsolvable problems.

330. Computer Graphics
Adriana Palacio M  10:00 - 11:25
W  10:00 - 11:25
Searles-224 Linux Lab
An introduction to computer graphics hardware, algorithms, and software. Covers the fundamentals of rendering and modeling. Focuses on real-time applications using OpenGL. Topics include line generators, affine transformations, line and polygon clipping, splines, interactive techniques, perspective projection, solid modeling, hidden surface algorithms, lighting models, shading, and animation.

375. Optimization and Uncertainty
Stephen Majercik T  8:30 - 9:55
TH 8:30 - 9:55
Searles-126
Optimization problems and the need to cope with uncertainty arise frequently in the real world. A numeric framework, rather than the symbolic one of traditional artificial intelligence, is useful for expressing such problems. In addition to providing a way of dealing with uncertainty, this approach sometimes permits performance guarantees for algorithms. Topics include constraint satisfaction, systematic and non-systematic search techniques, probabilistic inference and planning, and population-based optimization techniques (e.g., genetic algorithms and ant colony optimization).