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
    (Not taught in 2007-2008)
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   Richard Yang   MWF 10:30-11:20
    CPSC 112b   Drew McDermott   MWF 11:35-12:25
An introductory programming course designed to teach students majoring in any subject on 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, graphics 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.

CPSC 178a   Visualization: Data, Pixels, and Ideas   Holly Rushmeier
    (Not taught in 2007-2008)
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. A Group III course.

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. A Group III course.

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. A Group III course.

CPSC 201a or b   Introduction to Computer Science
    CPSC 201a   Dana Angluin   MWF 10:30-11:20
    CPSC 201b   Paul Hudak   MW 11:35-12:50
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 209b/ARCG 163b /HUMS 338b /NELC 163b   From Pictograph to Pixel: Changing Ways of Human Communication   John Darnell, Michael Fischer, and Beatrice Gruendler
    (Not taught in 2007-2008)
An exploration of the five pivotal stages in the development of human communication: pictographic and syllabic ways of writing; the consonantal or phonetic alphabet; the invention of paper; movable type; and electronic/digital media and the Internet. These technologies are considered for their innovative features, new capabilities, social and ideological implications, and the instrumental parts they played in contemporary periods of change. Not taught every year.

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.

CPSC 240a   Introduction to Computational Science   Martin Schultz
    (Not taught in 2007-2008)
An introduction to computer science for students interested in learning how to program and the methods and ideas of computational science. The programming language MATLAB will be used. Applications will be drawn from a variety of disciplines. After Mathematics 115a or b, or equivalent. No previous programming experience required.

MATH 244a/AMTH 244a   Discrete Mathematics   Dennis Borisov
    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.


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