next up previous contents
Next: Intermediate Courses Up: Course Listings Previous: Course Listings   Contents

Introductory Courses

CPSC 101b   Great Ideas of Computer Science   Stanley Eisenstat
    MW 1:00-2:15
An introduction for nonmajors to some of the most important ideas in computer science: What the computer is; how it works; what it can do and what it cannot do, now and in the future. Topics include algorithms, elementary programming, hardware, language interpretation, software engineering, complexity, models of computation, and artificial intelligence. No previous programming experience required.

CPSC 112a or b   Introduction to Programming
    CPSC 112a   Daniel Abadi   MWF 10:30-11:20
    CPSC 112b   Drew McDermott   MWF 11:35-12:25
An introductory course designed to teach students majoring in any subject how to program computers. The language taught is either C# or JAVA. The focus is on the development of programming skills, problem-solving methods, and selected applications. Topics include data types, control structures, basic algorithms, object-oriented programming, graphical user interfaces, and some advanced programming concepts. No previous experience with computers necessary.

CPSC 150a   Computer Science and the Modern Intellectual Agenda   David Gelernter
    MW 11:35-12:50
An introduction to the basic ideas of computer science (computability, algorithm, virtual machine, symbol processing system) and of several ongoing relationships between computer science and other fields, including philosophy of mind, classical cognitivism, connectionism, and artificial life. No previous experience with computers necessary. Satisfies the WR requirement.

CPSC 151b   The Graphical User Interface: DOS to Windows to What?   David Gelernter
    (Not taught in 2008-2009)
The role of Graphical User Interfaces (such as the Desktop, with its overlapping windows, icons, menus and pointer device-as embodied in Mac OS, Microsoft Windows etc), on standard platforms such as desktop PCs, laptops, small-screen devices etc. Why did GUIs develop in the way they did? Why have they evolved so little since the Desktop of the 1970s? How will changing hardware and user requirements reshape them in the future? Prerequisite: Have used a desktop or laptop computer. Satisfies the WR requirement.

CPSC 178a   Visualization: Data, Pixels, and Ideas   Holly Rushmeier
    TTh 1:00-2:15
An introduction to the use of computer graphics as a medium for communication and discovery. Topics include computer graphics primitives and their association with data, relationships, and concepts to generate an image; real-time interactions with images; and the application of visualization to a variety of application domains, from science and engineering to business and the arts. No previous experience with computers necessary.

CPSC 179b   Digital Photorealism   Julie Dorsey
    TTh 1:00-2:15
Examination of basic methods used to define shapes, materials, and lighting when creating computer-generated images. Topics include mathematical models for shape, texture models, and lighting techniques. Principles are applied through use of modeling/rendering software. The term project will be the production of a short animated video with rich visual effects. Proficiency in high-school-level mathematics is assumed. No previous experience with computers necessary.

CPSC 180a or b   Computers and the Law
    CPSC 180a   Robert Dunne   MWF 11:35-12:25
    CPSC 180b   Robert Dunne   MWF 11:35-12:25
A survey and exploration of legal issues arising from the use of computers in contemporary society, particularly in the massively networked context of the Internet. Topics include the nature of cyberspace and cybercommunities, constitutional rights on the electronic frontier, privacy and electronic communication, anonymity, censorship, computer crime and torts, liability issues, and intellectual property. Can ‘real world’ law be successfully applied in cyberspace? If not, why not, and what are the alternatives? No previous experience with computers or law necessary. Satisfies the So requirement.

CPSC 181a   Privacy in the Digital Age   Robert Dunne
    (1) MW 1:00-2:15 (2) MW 2:30-3:45
A focused consideration of potential legal problems arising from computing technology. Topics include legal issues related to databases and privacy rights, user interfaces, web filtering software, hot links, data communications, digitized pornography, and junk e-mail. After Computer Science 180a or b. Satisfies the So requirement.

CPSC 182b   Intellectual Property in the Digital Age   Robert Dunne
    (1) MW 1:00-2:15 (2) MW 2:30-3:45
An exploration of issues, problems, and opportunities in the interpretation, design, and enforcement of copyright, trademark, trade secret, and patent laws in the context of computer hardware, software, and networks. After Computer Science 180a or b. Satisfies the So requirement.

CPSC 201a or b   Introduction to Computer Science
    CPSC 201a   Dana Angluin   MWF 10:30-11:20
    CPSC 201b   Holly Rushmeier   MWF 11:35-12:25
An introduction to the concepts, techniques, and applications of computer science for potential majors. Topics include computer systems (the design of computers and their languages); theoretical foundations of computing (computability, complexity, algorithm design); and artificial intelligence (the organization of knowledge and its representation for efficient search). Examples stress the importance of different problem-solving methods. After Computer Science 112a or b or equivalent.

CPSC 202a   Mathematical Tools for Computer Science   James Aspnes
    MWF 11:35-12:25
Introduction to formal methods for reasoning and to mathematical techniques basic to computer science. Topics include propositional logic, discrete mathematics, and linear algebra. Emphasis on applications to computer science: recurrences, sorting, graph traversal, Gaussian elimination.

CPSC 223b   Data Structures and Programming Techniques   Michael Fischer
    TTh 1:00-2:15
Topics include programming in C; data structures (arrays, stacks, queues, lists, trees, heaps, graphs); sorting and searching; storage allocation and management; data abstraction; programming style; testing and debugging; writing efficient programs. After Computer Science 201a or b or equivalent.

MATH 244a/AMTH 244a   Discrete Mathematics   Jayadev Athreya
    TTh 11:35-12:50
Basic concepts and results in discrete mathematics: graphs, trees, connectivity, Ramsey theorem, enumeration, binomial coefficients, Stirling numbers. Properties of finite set systems. After Mathematics 115a or b or equivalent.

CPSC 290a or b   Directed Research   By arrangement with faculty
Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. May be taken more than once for credit.


next up previous contents
Next: Intermediate Courses Up: Course Listings Previous: Course Listings   Contents