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.