Computer Science

For courses in other departments that may count toward the major, see the printed YCPS or consult the director of undergraduate studies.
Information regarding the required and recommended textbooks for courses in Yale College can be found in the Online Course Information system (OCI).

 
CPSC  079b , Digital Photorealism .
TTh 1.00-2.15 AKW 500 Julie Dorsey
  QR (0)  
Permission of instructor required
Basic methods used to define shapes, materials, and lighting when creating computer-generated images. Mathematical models for shape, texture models, and lighting techniques. Principles are applied through the use of modeling/rendering/animation software.
Proficiency in high school-level mathematics is assumed. No previous programming experience necessary. Enrollment limited to freshmen. Preregistration required; see under Freshman Seminar Program.
 
CPSC  079a , Digital Photorealism .
TTh 2.30-3.45 AKW 400 Julie Dorsey
  QR (0)  
Permission of instructor required

Basic methods used to define shapes, materials, and lighting when creating computer-generated images. Mathematical models for shape, texture models, and lighting techniques. Principles are applied through the use of modeling/rendering/animation software.

Proficiency in high school?level mathematics is assumed. No previous programming experience necessary. Enrollment limited to freshmen. Preregistration required; see under Freshman Seminar Program.

 
CPSC  079b , Digital Photorealism .
MW 2.30-3.45 AKW 400 Julie Dorsey
  QR (0)  
Permission of instructor required

Basic methods used to define shapes, materials, and lighting when creating computer-generated images. Mathematical models for shape, texture models, and lighting techniques. Principles are applied through the use of modeling/rendering/animation software.

Proficiency in high school?level mathematics is assumed. No previous programming experience necessary. Enrollment limited to freshmen. Preregistration required; see under Freshman Seminar Program.

 
CPSC  112a , Introduction to Programming .
MWF 10.30-11.20 DL 220 Daniel Abadi
  QR (33)  
Development on the computer of programming skills, problem-solving methods, and selected applications.
No previous experience with computers necessary.
 
CPSC  112b , Introduction to Programming .
MWF 11.35-12.25 WLH 119 Drew McDermott
  QR (34)  
Development on the computer of programming skills, problem-solving methods, and selected applications.
No previous experience with computers necessary.
 
CPSC  112a , Introduction to Programming .
MWF 10.30-11.20 DL 220 Drew McDermott
  QR (33)  

Development on the computer of programming skills, problem-solving methods, and selected applications.

No previous experience with computers necessary.

 
CPSC  112b , Introduction to Programming .
MWF 11.35-12.25 BCT 102; MWF 11.35-12.25 GR109 ROSENFELD; F 11.35-12.25 BCT 105 Yang Yang
  QR (34)  

Development on the computer of programming skills, problem-solving methods, and selected applications.

No previous experience with computers necessary.

 
CPSC  112a , Introduction to Programming .
MWF 10.30-11.20 DL 220 Daniel Abadi
  QR (33)  

Development on the computer of programming skills, problem-solving methods, and selected applications.

No previous experience with computers necessary.

 
CPSC  112b , Introduction to Programming .
MWF 11.35-12.25 DL 220 Zhong Shao
  QR (34)  

Development on the computer of programming skills, problem-solving methods, and selected applications.

No previous experience with computers necessary.

 
CPSC  112a , Introduction to Programming .
MWF 10.30-11.20 DAVIES AUD Daniel Abadi
  QR (33)  

Development on the computer of programming skills, problem-solving methods, and selected applications.

No previous experience with computers necessary.

 
CPSC  112b , Introduction to Programming .
MWF 11.35-12.25 DAVIES AUD Yang Yang
  QR (34)  

Development on the computer of programming skills, problem-solving methods, and selected applications.

No previous experience with computers necessary.

 
CPSC  112a , Introduction to Programming .
MWF 10.30-11.20 WLH 116 Drew McDermott
  QR (33)  

Development on the computer of programming skills, problem-solving methods, and selected applications.

No previous experience with computers necessary.

 
CPSC  112b , Introduction to Programming .
MWF 11.35-12.25 DAVIES AUD Yang Yang
  QR (0)  

Development on the computer of programming skills, problem-solving methods, and selected applications.

No previous experience with computers necessary.

 
CPSC  150a , Computer Science and the Modern Intellectual Agenda .
MW 11.35-12.50 AKW 500 David Gelernter
  WR (34)  
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, particularly philosophy of mind.
No previous experience with computers necessary. Enrollment limited to 25.
 
CPSC  150a , Computer Science and the Modern Intellectual Agenda .
MW 11.35-12.50 AKW 500 David Gelernter
Hu WR (34)  

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, particularly philosophy of mind.

No previous experience with computers necessary. Enrollment limited to 25.

 
CPSC  150a , Computer Science and the Modern Intellectual Agenda .
MW 11.35-12.50 AKW 400 David Gelernter
Hu WR (34)  

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, particularly philosophy of mind.

No previous experience with computers necessary. Enrollment limited to 25.

 
CPSC  150a , Computer Science and the Modern Intellectual Agenda .
MW 11.35-12.50 AKW 400 David Gelernter
Hu WR (34)  

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, particularly philosophy of mind.

No previous experience with computers necessary. Enrollment limited to 25.

 
CPSC  150a ,

Computer Science and the Modern Intellectual Agenda

.
MW 11.35-12.50 AKW 400 David Gelernter
Hu WR (34)  
Permission of instructor required

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, particularly philosophy of mind.

No previous experience with computers necessary. Enrollment limited to 25.

 
CPSC  151b , The Graphical User Interface .
MW 11.35-12.50 AKW 500 David Gelernter
  WR (0)  
The role of graphical user interfaces (GUIs) on standard platforms such as desktop PCs, laptops, and small-screen devices. Discussion of how and why GUIs developed as they did, why they have evolved so little since the desktop computers of the 1970s, and how changing hardware and user requirements might reshape them in the future.
Enrollment limited to 25.
 
CPSC  151b , The Graphical User Interface .
MW 11.35-12.50 AKW 500 David Gelernter
  WR (0)  

The role of graphical user interfaces (GUIs) on standard platforms such as desktop PCs, laptops, and small-screen devices. Discussion of how and why GUIs developed as they did, why they have evolved so little since the desktop computers of the 1970s, and how changing hardware and user requirements might reshape them in the future.

Enrollment limited to 25.

 
CPSC  151b , The Graphical User Interface .
MW 11.35-12.50 AKW 400 David Gelernter
  WR (0)  

The role of graphical user interfaces (GUIs) on standard platforms such as desktop PCs, laptops, and small-screen devices. Discussion of how and why GUIs developed as they did, why they have evolved so little since the desktop computers of the 1970s, and how changing hardware and user requirements might reshape them in the future.

Enrollment limited to 25.

 
CPSC  151b ,

The Graphical User Interface

.
MW 11.35-12.50 AKW 400 David Gelernter
  WR (0)  
Permission of instructor required

The role of graphical user interfaces (GUIs) on standard platforms such as desktop PCs, laptops, and small-screen devices. Discussion of how and why GUIs developed as they did, why they have evolved so little since the desktop computers of the 1970s, and how changing hardware and user requirements might reshape them in the future.

Enrollment limited to 25.

 
CPSC  163b , From Pictograph to Pixel: Changing Ways of Human Communication .
TTh 1.00-2.15 YK212 004 Beatrice Gruendler, John Darnell, Michael Fischer
Hu  (26)  

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.

 
CPSC  183a , Intro to Law & Technology .
MW 4.00-5.15 WLH 119 Elizabeth Stark, Brad Rosen
So  (0)  
An exploration of the myriad ways in which law and technology intersect, with a special focus on the role of cyberspace. Topics include digital copyright, free speech, privacy and anonymity, information security, innovation, online communities, the impact of technology on society, and emerging trends.
No previous experience with computers or law necessary.
 
CPSC  183a , Introduction to Law and Technology .
MW 4.00-5.15 WLH 119 Elizabeth Stark, Brad Rosen
So  (0)  

An exploration of the myriad ways in which law and technology intersect, with a special focus on the role of cyberspace. Topics include digital copyright, free speech, privacy and anonymity, information security, innovation, online communities, the impact of technology on society, and emerging trends.

No previous experience with computers or law necessary.

 
CPSC  183a , Introduction to Law and Technology .
MW 4.00-5.15 DL 220 Brad Rosen
So  (0)  

An exploration of the myriad ways in which law and technology intersect, with a special focus on the role of cyberspace. Topics include digital copyright, free speech, privacy and anonymity, information security, innovation, online communities, the impact of technology on society, and emerging trends.

No previous experience with computers or law necessary.

 
CPSC  183a ,

Law, Technology, and Culture

.
MW 4.00-5.15 WLH 119 Brad Rosen
So  (0)  

An exploration of the myriad ways in which law and technology intersect, with a special focus on the role of cyberspace. Topics include digital copyright, free speech, privacy and anonymity, information security, innovation, online communities, the impact of technology on society, and emerging trends.

No previous experience with computers or law necessary.

 
CPSC  183a ,

Law, Technology, and Culture

.
MW 4.00-5.15 WLH 119 Brad Rosen
So  (0)  

An exploration of the myriad ways in which law and technology intersect, with a special focus on the role of cyberspace. Topics include digital copyright, free speech, privacy and anonymity, information security, innovation, online communities, the impact of technology on society, and emerging trends.

No previous experience with computers or law necessary.

 
CPSC  184b , Intellectual Property in the Digital Age .
W 3.30-5.30 WLH 011 Elizabeth Stark
So  (0)  
Permission of instructor required
The future of knowledge in cyberspace explored through discussion of copyright, patent, and trademark law in the context of new technologies. Topics include fair use, remixing, P2P, free software, the public domain, DRM, software patents, biotech, and online communities and collaboration. Prerequisite: CPSC 180a or b or 183a. May not be taken after CPSC 182b.
 
CPSC  184b , Intellectual Property in the Digital Age .
W 3.30-5.30 WLH 001 Elizabeth Stark
So  (0)  
Permission of instructor required

The future of knowledge in cyberspace explored through discussion of copyright, patent, and trademark law in the context of new technologies. Topics include fair use, remixing, P2P, free software, the public domain, digital rights management, software patents, biotechnology, and online communities and collaboration.

Prerequisite: CPSC <180a or b> or 183a. May not be taken after CPSC <182b>.


 

 
CPSC  185b , Control, Privacy, and Technology .
F 3.30-5.20 BASSLB L70 Brad Rosen
  WR (0)  
Permission of instructor required
The evolution of various legal doctrines with and around technological development. Topics include criminal law, privacy, search and seizure, digital rights, and the implications of technologically-permitted methods of control on the law. Special attention to case law and policy. Prerequisite: CPSC 180a or b or 183a.
 
CPSC  185b , Control, Privacy, and Technology .
F 3.30-5.20 WLH 204 Brad Rosen
So WR (0)  
Permission of instructor required

The evolution of various legal doctrines with and around technological development. Topics include criminal law, privacy, search and seizure, digital rights, and the implications of technologically permitted methods of control on the law. Special attention to case law and policy.

Prerequisite: CPSC <180a or b> or 183a.

 
CPSC  185b , Control, Privacy, and Technology .
F 3.30-5.20 AKW 400 Brad Rosen
So WR (0)  
Permission of instructor required

The evolution of various legal doctrines with and around technological development. Topics include criminal law, privacy, search and seizure, digital rights, and the implications of technologically permitted methods of control on the law. Special attention to case law and policy.

After CPSC 183.

 
CPSC  185b ,

Control, Privacy, and Technology

.
F 3.30-5.20 WLH 204 Brad Rosen
So WR (0)  
Permission of instructor required

The evolution of various legal doctrines with and around technological development. Topics include criminal law, privacy, search and seizure, digital rights, and the implications of technologically permitted methods of control on the law. Special attention to case law and policy.

After CPSC 183.

 
CPSC  185b ,

Control, Privacy, and Technology

.
F 3.30-5.20 WLH 204 Brad Rosen
So WR (0)  
Permission of instructor required

The evolution of various legal doctrines with and around technological development. Topics include criminal law, privacy, search and seizure, digital rights, and the implications of technologically permitted methods of control on the law. Special attention to case law and policy.

After CPSC 183.

 
CPSC  201a , Introduction to Computer Science .
MWF 10.30-11.20 GR109 ROSENFELD Dana Angluin
  QR (0)  
Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112a or b or equivalent.
 
CPSC  201b , Introduction to Computer Science .
MWF 11.35-12.25 WLH 207 Holly Rushmeier
  QR (0)  
Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112a or b or equivalent.
 
CPSC  201a , Introduction to Computer Science .
MWF 10.30-11.20 WLH 207 Dana Angluin
  QR (33)  

Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112a or b or equivalent.

 
CPSC  201b , Introduction to Computer Science .
MWF 11.35-12.25 WLH 207 Holly Rushmeier
  QR (0)  

Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112a or b or equivalent.

 
CPSC  201a ,

Introduction to Computer Science

.
MWF 10.30-11.20 GR109 ROSENFELD Holly Rushmeier
  QR (0)  

Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112 or equivalent.

 
CPSC  201b ,

Introduction to Computer Science

.
MWF 11.35-12.25 GR109 ROSENFELD Dana Angluin
  QR (0)  

Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112 or equivalent.

 
CPSC  201a ,

Introduction to Computer Science

.
MWF 10.30-11.20 DL 220 Dana Angluin
  QR (0)  

Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112 or equivalent.

 
CPSC  201b ,

Introduction to Computer Science

.
MWF 11.35-12.25 WLH 208 Holly Rushmeier
  QR (0)  

Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112 or equivalent.

 
CPSC  201a ,

Introduction to Computer Science

.
MWF 10.30-11.20 DL 220 Dana Angluin
  QR (33)  

Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112 or equivalent.

 
CPSC  201b ,

Introduction to Computer Science

.
MWF 11.35-12.25 WLH 208 Dana Angluin
  QR (34)  

Introduction to the concepts, techniques, and applications of computer science. 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 CPSC 112 or equivalent.

 
CPSC  202a , Mathematical Tools for Computer Science .
TTh 1.00-2.15 AKW 200 Joan Feigenbaum
  QR (0)  
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  202a , Mathematical Tools for Computer Science .
TTh 1.00-2.15 GR109 ROSENFELD James Aspnes
  QR (26)  

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  202a , Mathematical Tools for Computer Science .
TTh 1.00-2.15 ML 211 Dana Angluin
  QR (26)  

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  202a , Mathematical Tools for Computer Science .
TTh 1.00-2.15 DAVIES AUD Joan Feigenbaum
  QR (0)  

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  202a , Mathematical Tools for Computer Science .
TTh 1.00-2.15 LC 317 James Aspnes
  QR (0)  

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 .
TTh 1.00-2.15 DL 220 Stanley Eisenstat
  QR (26)  
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 CPSC 201a or b or equivalent.
 
CPSC  223b , Data Structures and Programming Techniques .
TTh 1.00-2.15 DL 220 Stanley Eisenstat
  QR (26)  
Meets during reading period

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 CPSC 201a or b or equivalent.

 
CPSC  223b , Data Structures and Programming Techniques .
TTh 1.00-2.15 DL 220 James Aspnes
  QR (0)  
Meets during reading period

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 CPSC 201 or equivalent.

 
CPSC  223b , Data Structures and Programming Techniques .
MW 1.00-2.15 DL 220 Stanley Eisenstat
  QR (36)  
Meets during reading period

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 CPSC 201 or equivalent.

 
CPSC  223b , Data Structures and Programming Techniques .
MW 1.00-2.15 DL 220 Stanley Eisenstat
  QR (0)  
Meets during reading period

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 CPSC 201 or equivalent.

 
CPSC  290a , Directed Research .
1 HTBA Stanley Eisenstat
   (0)  
Permission of instructor required
Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.
May be taken more than once for credit.
 
CPSC  290b , Directed Research .
1 HTBA Stanley Eisenstat
   (0)  
Permission of instructor required
Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.
May be taken more than once for credit.
 
CPSC  290a , Directed Research .
  Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  290b , Directed Research .
  Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  290a , Directed Research .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  290b , Directed Research .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  290a , Directed Research .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  290b , Directed Research .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  290a , Directed Research .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  290b , Directed Research .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  323a , Introduction to Systems Programming and Computer Organization .
MW 1.00-2.15 AKW 200 Stanley Eisenstat
  QR (0)  
Meets during reading period
Machine architecture and computer organization, systems programming in a high-level language, assembly language, issues in operating systems, software engineering, prototyping in nonprogramming languages.
After CPSC 223b.
 
CPSC  323a , Introduction to Systems Programming and Computer Organization .
MW 1.00-2.15 AKW 200 Stanley Eisenstat
  QR (0)  
Meets during reading period

Machine architecture and computer organization, systems programming in a high-level language, assembly language, issues in operating systems, software engineering, prototyping in nonprogramming languages.

After CPSC 223b.

 
CPSC  323a , Introduction to Systems Programming and Computer Organization .
MW 1.00-2.15 ML 211 Stanley Eisenstat
  QR (0)  
Meets during reading period

Machine architecture and computer organization, systems programming in a high-level language, assembly language, issues in operating systems, software engineering, prototyping in nonprogramming languages.

After CPSC 223.

 
CPSC  323a ,

Introduction to Systems Programming and Computer Organization

.
MW 1.00-2.15 WLH 119 Stanley Eisenstat
  QR (0)  
Meets during reading period

Machine architecture and computer organization, systems programming in a high-level language, issues in operating systems, software engineering, prototyping in nonprogramming languages.

After CPSC 223.

 
CPSC  323a ,

Introduction to Systems Programming and Computer Organization

.
MW 1.00-2.15 DL 220 Stanley Eisenstat
  QR (0)  
Meets during reading period

Machine architecture and computer organization, systems programming in a high-level language, issues in operating systems, software engineering, prototyping in scripting languages.

After CPSC 223.

 
CPSC  365b , Design and Analysis of Algorithms .
TTh 2.30-3.45 ML 211 Daniel Spielman
  QR (27)  
Paradigms for problem solving: divide and conquer, recursion, greedy algorithms, dynamic programming, randomized and probabilistic algorithms. Techniques for analyzing the efficiency of algorithms and designing efficient algorithms and data structures. Algorithms for graph theoretic problems, network flows, and numerical linear algebra. Provides algorithmic background essential to further study of computer science.
After CPSC 202a and 223b.
 
CPSC  365b , Design and Analysis of Algorithms .
TTh 2.30-3.45 ML 211 Daniel Spielman
  QR (27)  

Paradigms for problem solving: divide and conquer, recursion, greedy algorithms, dynamic programming, randomized and probabilistic algorithms. Techniques for analyzing the efficiency of algorithms and designing efficient algorithms and data structures. Algorithms for graph theoretic problems, network flows, and numerical linear algebra. Provides algorithmic background essential to further study of computer science.

After CPSC 202a and 223b.

 
CPSC  365b , Design and Analysis of Algorithms .
TTh 2.30-3.45 ML 211 Daniel Spielman
  QR (27)  

Paradigms for problem solving: divide and conquer, recursion, greedy algorithms, dynamic programming, randomized and probabilistic algorithms. Techniques for analyzing the efficiency of algorithms and designing efficient algorithms and data structures. Algorithms for graph theoretic problems, network flows, and numerical linear algebra. Provides algorithmic background essential to further study of computer science.

After CPSC 202 and 223.

 
CPSC  365b , Design and Analysis of Algorithms .
TTh 2.30-3.45 ML 211 Daniel Spielman
  QR (27)  

Paradigms for problem solving: divide and conquer, recursion, greedy algorithms, dynamic programming, randomized and probabilistic algorithms. Techniques for analyzing the efficiency of algorithms and designing efficient algorithms and data structures. Algorithms for graph theoretic problems, network flows, and numerical linear algebra. Provides algorithmic background essential to further study of computer science.

After CPSC 202 and 223.

 
CPSC  365b , Design and Analysis of Algorithms .
TTh 2.30-3.45 DL 220 Daniel Spielman
  QR (27)  

Paradigms for problem solving: divide and conquer, recursion, greedy algorithms, dynamic programming, randomized and probabilistic algorithms. Techniques for analyzing the efficiency of algorithms and designing efficient algorithms and data structures. Algorithms for graph theoretic problems, network flows, and numerical linear algebra. Provides algorithmic background essential to further study of computer science.

After CPSC 202 and 223.

 
CPSC  421a , Compilers and Interpreters .
MW 1.00-2.15 AKW 500 Zhong Shao
  QR (0)  

Compiler organization and implementation: lexical analysis, formal syntax specification, parsing techniques, execution environment, storage management, code generation and optimization, procedure linkage and address binding. The effect of language-design decisions on compiler construction.

After CPSC 323a.

 
CPSC  421a , Compilers and Interpreters .
MW 1.00-2.15 AKW 200 Zhong Shao
  QR (0)  
Permission of instructor required

Compiler organization and implementation: lexical analysis, formal syntax specification, parsing techniques, execution environment, storage management, code generation and optimization, procedure linkage and address binding. The effect of language-design decisions on compiler construction.

After CPSC 323.

 
CPSC  421b ,

Compilers and Interpreters

.
TTh 1.00-2.15 AKW 000 Zhong Shao
  QR (0)  
Permission of instructor required

Compiler organization and implementation: lexical analysis, formal syntax specification, parsing techniques, execution environment, storage management, code generation and optimization, procedure linkage and address binding. The effect of language-design decisions on compiler construction.

After CPSC 323.

 
CPSC  422b , Operating Systems .
MW 1.00-2.15 AKW 500 Bryan Ford
  QR (36)  
The design and implementation of operating systems. Topics include synchronization, deadlock, process management, storage management, file systems, security, protection, and networking.
After CPSC 323a.
 
CPSC  422b , Operating Systems .
MW 1.00-2.15 AKW 500 Bryan Ford
  QR (0)  

The design and implementation of operating systems. Topics include synchronization, deadlock, process management, storage management, file systems, security, protection, and networking.

After CPSC 323a.

 
CPSC  422b , Operating Systems .
MW 1.00-2.15 AKW 200 Bryan Ford
  QR (36)  

The design and implementation of operating systems. Topics include synchronization, deadlock, process management, storage management, file systems, security, protection, and networking.

After CPSC 323.

 
CPSC  422b , Operating Systems .
MW 1.00-2.15 AKW 200 Bryan Ford
  QR (36)  

The design and implementation of operating systems. Topics include synchronization, deadlock, process management, storage management, file systems, security, protection, and networking.

After CPSC 323.

 
CPSC  423a ,

Principles of Operating Systems

.
TTh 2.30-3.45 AKW 000 Abraham Silberschatz
   (27)  
Permission of instructor required

A survey of the underlying principles of modern operating systems. Topics include process management, memory management, storage management, protection and security, distributed systems, and virtual machines. Emphasis on fundamental concepts rather than implementation.

After CPSC 323.

 
CPSC  424b , Parallel Programming Techniques .
TTh 2.30-3.45 AKW 200 Andrew Sherman
   (0)  
Practical introduction to high performance parallel computing, emphasizing techniques suitable for scientific and engineering applications. Aspects of processor and machine architecture. Parallel programming paradigms such as vector processing, multithreading, and message passing. Algorithmic patterns for parallel scientific/engineering computations. Performance measurement, tuning, and debugging of parallel programs. Parallel file systems and I/O. Prerequisites: CPSC 223b and MATH 222a or b or 225a or b, or equivalents.
 
CPSC  424b , Parallel Programming Techniques .
TTh 11.35-12.50 AKW 000 Andrew Sherman
  QR (0)  

Practical introduction to parallel programming, emphasizing techniques and algorithms suitable for scientific and engineering computations. Aspects of processor and machine architecture. Techniques such as multithreading, message passing, and data parallel computing using graphics processing units. Performance measurement, tuning, and debugging of parallel programs. Parallel file systems and I/O.


After CPSC 223 and MATH 222 or 225, or equivalents.
 
CPSC  424b ,

Parallel Programming Techniques

.
TTh 11.35-12.50 AKW 000 Andrew Sherman
  QR (24)  

Practical introduction to parallel programming, emphasizing techniques and algorithms suitable for scientific and engineering computations. Aspects of processor and machine architecture. Techniques such as multithreading, message passing, and data parallel computing using graphics processing units. Performance measurement, tuning, and debugging of parallel programs. Parallel file systems and I/O.

After CPSC 223 and MATH 222 or 225, or equivalents.

 
CPSC  425b , Theory of Distributed Systems .
MWF 11.35-12.25 AKW 200 James Aspnes
  QR (34)  
Models of asynchronous distributed computing systems. Fundamental concepts of concurrency and synchronization, communication, reliability, topological and geometric constraints, time and space complexity, and distributed algorithms.
After CPSC 323a and 365b.
 
CPSC  426a , Building Decentralized Systems .
MW 2.30-3.45 AKW 500 Bryan Ford
  Staff
  QR (37)  
Challenges and techniques for building decentralized computing systems, in which many networked computers need to cooperate reliably despite failures and without assuming centralized management. Topics include decentralized storage systems, mobile and remote execution, hosting untrusted code, fault tolerance, naming, capabilities, information flow control, distributed shared memory, distributed hash tables, content distribution, and practical uses of cryptography. After CPSC 323a.
 
CPSC  426a , Building Decentralized Systems .
MW 2.30-3.45 AKW 200 Bryan Ford
  QR (37)  
Challenges and techniques for building decentralized computing systems, in which many networked computers need to cooperate reliably despite failures and without assuming centralized management. Topics include decentralized storage systems, mobile and remote execution, hosting untrusted code, fault tolerance, naming, capabilities, information flow control, distributed shared memory, distributed hash tables, content distribution, and practical uses of cryptography.
After CPSC 323.
 
CPSC  426a , Building Decentralized Systems .
MW 1.00-2.15 AKW 200 Bryan Ford
  QR (36)  
Challenges and techniques for building decentralized computing systems, in which many networked computers need to cooperate reliably despite failures and without assuming centralized management. Topics include decentralized storage systems, mobile and remote execution, hosting untrusted code, fault tolerance, naming, capabilities, information flow control, distributed shared memory, distributed hash tables, content distribution, and practical uses of cryptography.
After CPSC 323.
 
CPSC  427a , Object-Oriented Programming .
TTh 1.00-2.15 AKW 500 Michael Fischer, Yang Yang
   (0)  
Object-oriented programming as a means to efficient, reliable, modular, reusable code. Use of classes, derivation, templates, name-hiding, exceptions, polymorphic functions, and other features of C++. After CPSC 223b.
 
CPSC  427a , Object-Oriented Programming .
TTh 1.00-2.15 AKW 200 Michael Fischer
  QR (0)  

Object-oriented programming as a means to efficient, reliable, modular, reusable code. Use of classes, derivation, templates, name-hiding, exceptions, polymorphic functions, and other features of C++.

After CPSC 223b.

 
CPSC  427a , Object-Oriented Programming .
TTh 2.30-3.45 BCT 102 Michael Fischer
  QR (0)  

Object-oriented programming as a means to efficient, reliable, modular, reusable code. Use of classes, derivation, templates, name-hiding, exceptions, polymorphic functions, and other features of C++.

After CPSC 223.

 
CPSC  427a , Object-Oriented Programming .
TTh 2.30-3.45 HLH17 05 Michael Fischer
  QR (27)  

Object-oriented programming as a means to efficient, reliable, modular, reusable code. Use of classes, derivation, templates, name-hiding, exceptions, polymorphic functions, and other features of C++.

After CPSC 223.

 
CPSC  428b , Language-Based Security .
TTh 2.30-3.45 AKW 500 Zhong Shao
  QR (0)  

Basic design and implementation of language-based approaches for increasing the security and reliability of systems software. Topics include proof-carrying code, certifying compilation, typed assembly languages, runtime checking and monitoring, high-confidence embedded systems and drivers, and language support for verification of safety and liveness properties.

After CPSC 202a, 323a, and MATH 222a or b, or equivalents.

 
CPSC  430a , Formal Semantics .
MW 1.00-2.15 AKW 307 Zhong Shao
  QR (0)  
Introduction to formal approaches to programming language design and implementation. Topics include the lambda-calculus, type theory, denotational semantics, type-directed compilation, higher-order modules, and application of formal methods to systems software and Internet programming.
After CPSC 202a and 323a.
 
CPSC  430a , Formal Semantics .
MW 1.00-2.15 AKW 400 Zhong Shao
  QR (0)  

Introduction to formal approaches to programming language design and implementation. Topics include lambda calculus, type theory, denotational semantics, type-directed compilation, higher-order modules, and application of formal methods to systems software and Internet programming.

After CPSC 202 and 323.

 
CPSC  430a ,

Formal Semantics

.
MW 11.35-12.50 AKW 000 Zhong Shao
  QR (0)  

Introduction to formal approaches to programming language design and implementation. Topics include lambda calculus, type theory, denotational semantics, type-directed compilation, higher-order modules, and application of formal methods to systems software and Internet programming.

After CPSC 202 and 323.

 
CPSC  431a , Computer Music: Algorithmic and Heuristic Composition .
MW 2.30-3.45 AKW 200 Paul Hudak
  QR (0)  

Study of the theoretical and practical fundamentals of computer-generated music, with a focus on high-level representations of music, algorithmic and heuristic composition, and programming languages for computer music generation. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language.

Ability to read music is assumed. After CPSC 202a and 223b.

 
CPSC  431b , Computer Music: Algorithmic and Heuristic Composition .
MW 2.30-3.45 WLH 207 Paul Hudak
  QR (0)  

Study of the theoretical and practical fundamentals of computer-generated music, with a focus on high-level representations of music, algorithmic and heuristic composition, and programming languages for computer music generation. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language.

Ability to read music is assumed. After CPSC 202 and 223.

 
CPSC  432a , Computer Music: Sound Representation and Synthesis .
MW 2.30-3.45 AKW 200 Paul Hudak
  QR (0)  
Study of the theoretical and practical fundamentals of computer-generated music, with a focus on low-level sound representation, acoustics and sound synthesis, scales and tuning systems, and programming languages for computer music generation. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language.
Prerequisites: ability to read music; CPSC 202a and 223b.
 
CPSC  432b , Computer Music: Sound Representation and Synthesis .
MW 2.30-3.45 AKW 200 Paul Hudak
  QR (0)  

Study of the theoretical and practical fundamentals of computer-generated music, with a focus on low-level sound representation, acoustics and sound synthesis, scales and tuning systems, and programming languages for computer music generation. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language.

Ability to read music is assumed. After CPSC 202 and 223.

 
CPSC  432b , Computer Music: Sound Representation and Synthesis .
MW 2.30-3.45 WLH 207 Paul Hudak
  QR (0)  

Study of the theoretical and practical fundamentals of computer-generated music, with a focus on low-level sound representation, acoustics and sound synthesis, scales and tuning systems, and programming languages for computer music generation. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language.

Ability to read music is assumed. After CPSC 202 and 223.

 
CPSC  433a , Computer Networks .
MW 2.30-3.45 WLH 208 Yang Yang
  QR (0)  
Permission of instructor required
An introduction to the design, implementation, analysis, and evaluation of computer networks and their protocols. Topics include layered network architectures, applications, transport, congestion, routing, data link protocols, local area networks, performance analysis, multimedia networking, network security, and network management. Emphasis on protocols used in the Internet.
After CPSC 323a.
 
CPSC  433b , Computer Networks .
TTh 1.00-2.15 AKW 200 Yang Yang
  QR (0)  

An introduction to the design, implementation, analysis, and evaluation of computer networks and their protocols. Topics include layered network architectures, applications, transport, congestion, routing, data link protocols, local area networks, performance analysis, multimedia networking, network security, and network management. Emphasis on protocols used in the Internet.

After CPSC 323.

 
CPSC  433a , Computer Networks .
TTh 1.00-2.15 HLH17 111 Yang Yang
  QR (0)  

An introduction to the design, implementation, analysis, and evaluation of computer networks and their protocols. Topics include layered network architectures, applications, transport, congestion, routing, data link protocols, local area networks, performance analysis, multimedia networking, network security, and network management. Emphasis on protocols used in the Internet.

After CPSC 323.

 
CPSC  434b , Mobile Computing and Wireless Networking .
MW 2.30-3.45 AKW 500 Yang Yang
  QR (37)  

Introduction to the principles of mobile computing and its enabling technologies. Topics include wireless systems; information management; location-independent and location-dependent computing models; disconnected and weakly-connected operation models; human-computer interactions; mobile applications and services; security; power management; and sensor networks.

After CPSC 202a and 323a.

 
CPSC  434a , Mobile Computing and Wireless Networking .
TTh 1.00-2.15 HLH17 115 Yang Yang
  QR (26)  

Introduction to the principles of mobile computing and its enabling technologies. Topics include wireless systems; information management; location-independent and location-dependent computing models; disconnected and weakly-connected operation models; human-computer interactions; mobile applications and services; security; power management; and sensor networks.

After CPSC 202 and 323.

 
CPSC  435b , Internet-Scale Applications .
TTh 1.00-2.15 AKW 200 Yang Yang, Michael Fischer
   (0)  
An introduction to the design and implementation of Internet-scale applications and services. Topics include service-oriented software design; cloud computing paradigms; infrastructure scalability and reliability; adaptive, open clients; protocol specification; performance modeling; debugging and diagnosis; and deployment and licensing. After CPSC 323a.
 
CPSC  436a , Networked Embedded Systems and Sensor Networks .
TTh 11.35-12.50 BCT 508 Andreas Savvides
   (24)  
Permission of instructor required
Introduction to the fundamental concepts of networked embedded systems and wireless sensor networks, presenting a cross-disciplinary approach to the design and implementation of smart wireless embedded systems. Topics include embedded systems programming concepts, low-power and power-aware design, radio technologies, communication protocols for ubiquitous computing systems, and mathematical foundations of sensor behavior. Laboratory work includes programming assignments on low-power wireless devices.
Open to seniors in Electrical Engineering or Computer Science only. Prerequisite: CPSC 223b or equivalent programming experience in a high-level language.
 
CPSC  437a , Introduction to Databases .
TTh 2.30-3.45 AKW 200 Abraham Silberschatz
  QR (0)  
Introduction to database systems. Data modeling. The relational model and the SQL query language. Relational database design, integrity constraints, functional dependencies, and normal forms. Object-oriented databases. Database data structures: files, B-trees, hash indexes.
After CPSC 202a and 223b.
 
CPSC  437b , Introduction to Databases .
TTh 1.00-2.15 AKW 200 Abraham Silberschatz
  QR (0)  

Introduction to database systems. Data modeling. The relational model and the SQL query language. Relational database design, integrity constraints, functional dependencies, and normal forms. Object-oriented databases. Database data structures: files, B-trees, hash indexes.

After CPSC 202a and 223b.

 
CPSC  437a ,

Introduction to Databases

.
MW 2.30-3.45 WLH 117 Abraham Silberschatz
  QR (0)  

Introduction to database systems. Data modeling. The relational model and the SQL query language. Relational database design, integrity constraints, functional dependencies, and normal forms. Object-oriented databases. Database data structures: files, B-trees, hash indexes.

After CPSC 202 and 223.

 
CPSC  437b ,

Introduction to Databases

.
TTh 2.30-3.45 WLH 208 Abraham Silberschatz
  QR (0)  

Introduction to database systems. Data modeling. The relational model and the SQL query language. Relational database design, integrity constraints, functional dependencies, and normal forms. Object-oriented databases. Database data structures: files, B-trees, hash indexes.

After CPSC 202 and 223.

 
CPSC  437b ,

Introduction to Databases

.
TTh 2.30-3.45 WLH 208 Abraham Silberschatz
  QR (0)  

Introduction to database systems. Data modeling. The relational model and the SQL query language. Relational database design, integrity constraints, functional dependencies, and normal forms. Object-oriented databases. Database data structures: files, B-trees, hash indexes.

After CPSC 202 and 223.

 
CPSC  438b , Database System Implementation and Architectures .
MW 2.30-3.45 AKW 500 Daniel Abadi
  QR (0)  
A study of systems programming techniques, with a focus on database systems. In the first half of the term, students analyze the design of a traditional DBMS and build various components of a DBMS prototype, e.g., a catalog-manager, a buffer-manager, and a query execution engine. In the second half, students examine nontraditional architectures such as parallel databases, data warehouses, stream databases, and Web databases.
After or concurrently with CPSC 202a and 323a.
 
CPSC  438b , Database System Implementation and Architectures .
MW 2.30-3.45 AKW 000 Daniel Abadi
  QR (0)  

A study of systems programming techniques, with a focus on database systems. In the first half of the term, students analyze the design of a traditional DBMS and build components of a DBMS prototype, e.g., a catalog-manager, a buffer-manager, and a query execution engine. In the second half, students examine nontraditional architectures such as parallel databases, data warehouses, stream databases, and Web databases.

After or concurrently with CPSC 202 and 323.

 
CPSC  438b , Database System Implementation and Architectures .
MW 11.35-12.50 WLH 117 Daniel Abadi
  QR (0)  

A study of systems programming techniques, with a focus on database systems. In the first half of the term, students analyze the design of a traditional DBMS and build components of a DBMS prototype, e.g., a catalog-manager, a buffer-manager, and a query execution engine. In the second half, students examine nontraditional architectures such as parallel databases, data warehouses, stream databases, and Web databases.

After or concurrently with CPSC 202 and 323.

 
CPSC  439b ,

Software Engineering

.
MW 11.35-12.50 DL 220 Ruzica Piskac
  QR (0)  
Meets during reading period

Introduction to fundamental concepts in software engineering and to the development and maintenance of large, robust software systems. The process of collecting requirements and writing specifications; project planning and system design; methods for increasing software reliability, including delta debugging and automatic test-case generation; type systems, static analysis, and model checking. Students build software in teams.

After CPSC 323.

 
CPSC  440b , Numerical Computation .
TTh 1.00-2.15 AKW 307 Vladimir Rokhlin
  QR (26)  
Algorithms for numerical problems in the physical, biological, and social sciences: solution of linear and nonlinear systems of equations, interpolation and approximation of functions, numerical differentiation and integration, optimization.
After CPSC 112a or b or an equivalent introductory programming course; MATH 120a or b; and MATH 222a or b or 225a or b or CPSC 202a.
 
CPSC  440b , Numerical Computation .
TTh 2.30-3.45 AKW 200 Vladimir Rokhlin
  QR (27)  

Algorithms for numerical problems in the physical, biological, and social sciences: solution of linear and nonlinear systems of equations, interpolation and approximation of functions, numerical differentiation and integration, optimization.

After CPSC 112a or b or an equivalent introductory programming course; MATH 120a or b; and MATH 222a or b or 225a or b or CPSC 202a.

 
CPSC  440b , Numerical Computation .
TTh 1.00-2.15 AKW 000 Vladimir Rokhlin
  QR (26)  

Algorithms for numerical problems in the physical, biological, and social sciences: solution of linear and nonlinear systems of equations, interpolation and approximation of functions, numerical differentiation and integration, optimization.

After CPSC 112 or an equivalent introductory programming course; MATH 120; and MATH 222 or 225 or CPSC 202.

 
CPSC  440b , Numerical Computation .
TTh 1.00-2.15 ML 211 Vladimir Rokhlin
  QR (26)  

Algorithms for numerical problems in the physical, biological, and social sciences: solution of linear and nonlinear systems of equations, interpolation and approximation of functions, numerical differentiation and integration, optimization.

After CPSC 112 or an equivalent introductory programming course; MATH 120; and MATH 222 or 225 or CPSC 202.

 
CPSC  440b , Numerical Computation .
TTh 1.00-2.15 WLH 208 Vladimir Rokhlin
  QR (26)  

Algorithms for numerical problems in the physical, biological, and social sciences: solution of linear and nonlinear systems of equations, interpolation and approximation of functions, numerical differentiation and integration, optimization.

After CPSC 112 or an equivalent introductory programming course; MATH 120; and MATH 222 or 225 or CPSC 202.

 
CPSC  445a , Introduction to Data Mining .
TTh 1.00-2.15 LOM 201 Vladimir Rokhlin
  QR (0)  
A study of algorithms and systems that allow computers to find patterns and regularities in databases, to perform prediction and forecasting, and to improve their performance generally through interaction with data.
After CPSC 202a, 223b, and MATH 222a or b, or equivalents.
 
CPSC  445a , Introduction to Data Mining .
MW 1.00-2.15 AKW 307 Vladimir Rokhlin
  QR (0)  

A study of algorithms and systems that allow computers to find patterns and regularities in databases, to perform prediction and forecasting, and to improve their performance generally through interaction with data.

After CPSC 202a, 223b, and MATH 222a or b, or equivalents.

 
CPSC  445a , Introduction to Data Mining .
MW 1.00-2.15 AKW 000 Vladimir Rokhlin
  QR (0)  

A study of algorithms and systems that allow computers to find patterns and regularities in databases, to perform prediction and forecasting, and to improve their performance generally through interaction with data.

After CPSC 202, 223, and MATH 222, or equivalents.

 
CPSC  445a , Introduction to Data Mining .
MW 1.00-2.15 HLH17 05 Vladimir Rokhlin
  QR (0)  

A study of algorithms and systems that allow computers to find patterns and regularities in databases, to perform prediction and forecasting, and to improve their performance generally through interaction with data.

After CPSC 202, 223, and MATH 222, or equivalents.

 
CPSC  445a , Introduction to Data Mining .
MW 1.00-2.15 AKW 000 Vladimir Rokhlin
  QR (0)  

A study of algorithms and systems that allow computers to find patterns and regularities in databases, to perform prediction and forecasting, and to improve their performance generally through interaction with data.

After CPSC 202, 223, and MATH 222, or equivalents.

 
CPSC  455a , Economics and Computation .
TTh 2.30-3.45 AKW 200 Joan Feigenbaum
  QR (0)  

A mathematically rigorous investigation of the interplay of economic theory and computer science, with an emphasis on the relationship of incentive-compatibility and algorithmic efficiency. Particular attention to the formulation and solution of mechanism-design problems that are relevant to data networking and Internet-based commerce.

After CPSC 365 or with permission of instructor.  Familiarity with basic microeconomic theory is helpful but not required.

 
CPSC  457a , Sensitive Information in a Wired World .
TTh 1.00-2.15 AKW 400 Joan Feigenbaum
  QR (0)  

Issues of ownership, control, privacy, and accuracy of the huge amount of sensitive information about people and organizations that is collected, stored, and used by today's ubiquitous information systems. Readings consist of research papers that explore both the power and the limitations of existing privacy-enhancing technologies such as encryption and "trusted platforms."

After or concurrently with CPSC 365 and 467.

 
CPSC  457a ,

Sensitive Information in a Wired World

.
TTh 1.00-2.15 AKW 400 Joan Feigenbaum
  QR (0)  
Permission of instructor required

Issues of ownership, control, privacy, and accuracy of the huge amount of sensitive information about people and organizations that is collected, stored, and used by today's ubiquitous information systems. Readings consist of research papers that explore both the power and the limitations of existing privacy-enhancing technologies such as encryption and "trusted platforms."

After or concurrently with CPSC 365 and 467.

 
CPSC  462a , Graphs and Networks .
TTh 2.30-3.45 ML 211 Daniel Spielman
  QR (0)  

A mathematical examination of graphs and their applications in the sciences. Families of graphs include social networks, small-world graphs, Internet graphs, planar graphs, well-shaped meshes, power-law graphs, and classic random graphs. Phenomena include connectivity, clustering, communication, ranking, and iterative processes.

Prerequisites: linear algebra and discrete mathematics; a course in probability is recommended.

 
CPSC  462a ,

Graphs and Networks

.
TTh 2.30-3.45 DL 220 Daniel Spielman
  QR (0)  
Permission of instructor required

A mathematical examination of graphs and their applications in the sciences. Families of graphs include social networks, small-world graphs, Internet graphs, planar graphs, well-shaped meshes, power-law graphs, and classic random graphs. Phenomena include connectivity, clustering, communication, ranking, and iterative processes.

Prerequisites: linear algebra and discrete mathematics; a course in probability is recommended.

 
CPSC  463b , Machine Learning .
MW 2.30-3.45 AKW 200 Dana Angluin
  QR (0)  

Paradigms and algorithms for learning classification rules and more complex behaviors from examples and other kinds of data. Topics may include version spaces, decision trees, artificial neural networks, Bayesian networks, instance-based learning, genetic algorithms, reinforcement learning, inductive logic programming, the MDL principle, the PAC model, VC dimension, sample bounds, boosting, support vector machines, queries, grammatical inference, and transductive and inductive inference.

After CPSC 202a and 223b, or with permission of instructor. CPSC 365b is recommended.

 
CPSC  465a , Theory of Distributed Systems .
MWF 11.35-12.25 AKW 000 James Aspnes
  QR (34)  

Models of asynchronous distributed computing systems. Fundamental concepts of concurrency and synchronization, communication, reliability, topological and geometric constraints, time and space complexity, and distributed algorithms.

After CPSC 323 and 365.

 
CPSC  465b , Theory of Distributed Systems .
MW 11.35-12.50 AKW 200 James Aspnes
  QR (34)  

Models of asynchronous distributed computing systems. Fundamental concepts of concurrency and synchronization, communication, reliability, topological and geometric constraints, time and space complexity, and distributed algorithms.

After CPSC 323 and 365.

 
CPSC  467b , Cryptography and Computer Security .
MW 2.30-3.45 AKW 200 Michael Fischer
  QR (37)  
A survey of such private and public key cryptographic techniques as DES, RSA, and zero-knowledge proofs, and their application to problems of maintaining privacy and security in computer networks. Focus on technology, with consideration of such societal issues as balancing individual privacy concerns against the needs of law enforcement, vulnerability of societal institutions to electronic attack, export regulations and international competitiveness, and development of secure information systems.
Some programming may be required. After CPSC 202a and 223b.
 
CPSC  467b , Cryptography and Computer Security .
MW 1.00-2.15 AKW 400 Michael Fischer
  QR (36)  

A survey of such private and public key cryptographic techniques as DES, RSA, and zero-knowledge proofs, and their application to problems of maintaining privacy and security in computer networks. Focus on technology, with consideration of such societal issues as balancing individual privacy concerns against the needs of law enforcement, vulnerability of societal institutions to electronic attack, export regulations and international competitiveness, and development of secure information systems.

Some programming may be required. After CPSC 202 and 223.

 
CPSC  467b , Cryptography and Computer Security .
TTh 1.00-2.15 AKW 000 Michael Fischer
  QR (26)  

A survey of such private and public key cryptographic techniques as DES, RSA, and zero-knowledge proofs, and their application to problems of maintaining privacy and security in computer networks. Focus on technology, with consideration of such societal issues as balancing individual privacy concerns against the needs of law enforcement, vulnerability of societal institutions to electronic attack, export regulations and international competitiveness, and development of secure information systems.

Some programming may be required. After CPSC 202 and 223.

 
CPSC  467a ,

Cryptography and Computer Security

.
MW 2.30-3.45 AKW 000 Michael Fischer
  QR (37)  

A survey of such private and public key cryptographic techniques as DES, RSA, and zero-knowledge proofs, and their application to problems of maintaining privacy and security in computer networks. Focus on technology, with consideration of such societal issues as balancing individual privacy concerns against the needs of law enforcement, vulnerability of societal institutions to electronic attack, export regulations and international competitiveness, and development of secure information systems.

Some programming may be required. After CPSC 202 and 223.

 
CPSC  468a , Computational Complexity .
TTh 2.30-3.45 AKW 307 Joan Feigenbaum
  QR (0)  
Introduction to the theory of computational complexity. Basic complexity classes, including polynomial time, nondeterministic polynomial time, probabilistic polynomial time, polynomial space, logarithmic space, and nondeterministic logarithmic space. The roles of reductions, completeness, randomness, and interaction in the formal study of computation.
After CPSC 365b or with permission of instructor.
 
CPSC  468a , Computational Complexity .
TTh 1.00-2.15 AKW 500 Joan Feigenbaum
  QR (0)  

Introduction to the theory of computational complexity. Basic complexity classes, including polynomial time, nondeterministic polynomial time, probabilistic polynomial time, polynomial space, logarithmic space, and nondeterministic logarithmic space. The roles of reductions, completeness, randomness, and interaction in the formal study of computation.

After CPSC 365b or with permission of instructor.

 
CPSC  468a , Computational Complexity .
TTh 2.30-3.45 AKW 000 Joan Feigenbaum
  QR (0)  

Introduction to the theory of computational complexity. Basic complexity classes, including polynomial time, nondeterministic polynomial time, probabilistic polynomial time, polynomial space, logarithmic space, and nondeterministic logarithmic space. The roles of reductions, completeness, randomness, and interaction in the formal study of computation.

After CPSC 365 or with permission of instructor.

 
CPSC  469b , Randomized Algorithms .
TTh 1.00-2.15 AKW 500 James Aspnes
  QR (26)  

A study of randomized algorithms from several areas: graph algorithms, algorithms in algebra, approximate counting, probabilistically checkable proofs, and matrix algorithms. Topics include an introduction to tools from probability theory, including some inequalities such as Chernoff bounds.

After CPSC 365b; a solid background in probability is desirable.

 
CPSC  469b , Randomized Algorithms .
MW 11.35-12.50 AKW 000 James Aspnes
  QR (34)  

A study of randomized algorithms from several areas: graph algorithms, algorithms in algebra, approximate counting, probabilistically checkable proofs, and matrix algorithms. Topics include an introduction to tools from probability theory, including some inequalities such as Chernoff bounds.

After CPSC 365; a solid background in probability is desirable.

 
CPSC  470a , Artificial Intelligence .
MWF 10.30-11.20 AKW 200 Brian Scassellati
  QR (33)  
Introduction to artificial intelligence research, focusing on reasoning and perception. Topics include knowledge representation, predicate calculus, temporal reasoning, vision, robotics, planning, and learning.
After CPSC 201a or b and 202a.
 
CPSC  470a , Artificial Intelligence .
MWF 10.30-11.20 ML 211 Brian Scassellati
  QR (33)  

Introduction to artificial intelligence research, focusing on reasoning and perception. Topics include knowledge representation, predicate calculus, temporal reasoning, vision, robotics, planning, and learning.

After CPSC 201a or b and 202a.

 
CPSC  470a , Artificial Intelligence .
MWF 10.30-11.20 WLH 208 Drew McDermott
  QR (33)  

Introduction to artificial intelligence research, focusing on reasoning and perception. Topics include knowledge representation, predicate calculus, temporal reasoning, vision, robotics, planning, and learning.

After CPSC 201 and 202.

 
CPSC  470a , Artificial Intelligence .
MWF 10.30-11.20 ML 211 Brian Scassellati
  QR (33)  

Introduction to artificial intelligence research, focusing on reasoning and perception. Topics include knowledge representation, predicate calculus, temporal reasoning, vision, robotics, planning, and learning.

After CPSC 201 and 202.

 
CPSC  471b ,

Advanced Topics in Artificial Intelligence

.
MW 2.30-3.45 AKW 000 Drew McDermott
  WR (0)  
Permission of instructor required

An in-depth study of one area of artificial intelligence. Topics vary from year to year. The topic for 2012–2013 is artificial intelligence and philosophy of mind.

After CPSC 470 or with permission of instructor.

 
CPSC  471b ,

Advanced Topics in Artificial Intelligence

.
MW 2.30-3.45 AKW 400 Drew McDermott
  WR (0)  
Permission of instructor required

An in-depth study of one area of artificial intelligence. Topics vary from year to year. The topic for 2013–2014 is artificial intelligence and philosophy of mind.

After CPSC 470 or with permission of instructor.

 
CPSC  472a ,

Intelligent Robotics

.
MWF 10.30-11.20 WLH 208 Brian Scassellati
   (33)  

Introduction to the construction of intelligent, autonomous systems. Sensory-motor coordination and task-based perception. Implementation techniques for behavior selection and arbitration, including behavior-based design, evolutionary design, dynamical systems, and hybrid deliberative-reactive systems. Situated learning and adaptive behavior.

After CPSC 201 and 202 or equivalents. May not be taken after CPSC 473.

 
CPSC  473b , Intelligent Robotics .
MWF 10.30-11.20 BCT CO31 Brian Scassellati
  QR (0)  
Introduction to the construction of intelligent, autonomous systems. Sensory-motor coordination and task-based perception. Implementation techniques for behavior selection and arbitration, including behavior-based design, evolutionary design, dynamical systems, and hybrid deliberative-reactive systems. Situated learning and adaptive behavior.
After CPSC 202a and 223b.
 
CPSC  473b , Intelligent Robotics .
MWF 10.30-11.20 BCT CO31 Brian Scassellati
  QR (0)  

Introduction to the construction of intelligent, autonomous systems. Sensory-motor coordination and task-based perception. Implementation techniques for behavior selection and arbitration, including behavior-based design, evolutionary design, dynamical systems, and hybrid deliberative-reactive systems. Situated learning and adaptive behavior.

After CPSC 202a; after or concurrently with CPSC 223b.

 
CPSC  473b , Intelligent Robotics .
MWF 10.30-11.20 BCT CO31 Brian Scassellati
  QR (0)  

Introduction to the construction of intelligent, autonomous systems. Sensory-motor coordination and task-based perception. Implementation techniques for behavior selection and arbitration, including behavior-based design, evolutionary design, dynamical systems, and hybrid deliberative-reactive systems. Situated learning and adaptive behavior.

After CPSC 202; after or concurrently with CPSC 223.

 
CPSC  473b , Intelligent Robotics .
MWF 10.30-11.20 AKW 000 Brian Scassellati
  QR (0)  

Introduction to the construction of intelligent, autonomous systems. Sensory-motor coordination and task-based perception. Implementation techniques for behavior selection and arbitration, including behavior-based design, evolutionary design, dynamical systems, and hybrid deliberative-reactive systems. Situated learning and adaptive behavior.

After CPSC 202; after or concurrently with CPSC 223.

 
CPSC  473b ,

Intelligent Robotics Laboratory

.
MWF 10.30-11.20 AKW 400 Brian Scassellati
   (0)  
Permission of instructor required

Students work in small teams to construct novel research projects using one of a variety of robot architectures. Project topics may include human-robot interaction, adaptive intelligent behavior, active perception, humanoid robotics, and socially assistive robotics.

Enrollment limited to 20. After CPSC 472.

 
CPSC  475b , Computational Vision and Biological Perception .
MW 1.00-2.15 AKW 200 Steven Zucker
Sc QR (36)  
Meets during reading period
An overview of computational vision with a biological emphasis. Suitable as an introduction to biological perception for computer science and engineering students, as well as an introduction to computational vision for mathematics, psychology, and physiology students.
After MATH 120a or b and CPSC 112a or b, or with permission of instructor.
 
CPSC  475b , Computational Vision and Biological Perception .
MW 1.00-2.15 AKW 200 Steven Zucker
Sc QR (36)  
Meets during reading period

An overview of computational vision with a biological emphasis. Suitable as an introduction to biological perception for computer science and engineering students, as well as an introduction to computational vision for mathematics, psychology, and physiology students.

After MATH 120a or b and CPSC 112a or b, or with permission of instructor.

 
CPSC  475a , Computational Vision and Biological Perception .
MW 2.30-3.45 AKW 000 Steven Zucker
Sc QR (37)  
Meets during reading period

An overview of computational vision with a biological emphasis. Suitable as an introduction to biological perception for computer science and engineering students, as well as an introduction to computational vision for mathematics, psychology, and physiology students.

After MATH 120 and CPSC 112, or with permission of instructor.

 
CPSC  475a ,

Computational Vision and Biological Perception

.
MW 2.30-3.45 BCT CO31 Steven Zucker
Sc QR (37)  
Meets during reading period

An overview of computational vision with a biological emphasis. Suitable as an introduction to biological perception for computer science and engineering students, as well as an introduction to computational vision for mathematics, psychology, and physiology students.

After CPSC 112 and MATH 120, or with permission of instructor.

 
CPSC  475a ,

Computational Vision and Biological Perception

.
MW 2.30-3.45 ML 211 Steven Zucker
Sc QR (37)  
Meets during reading period

An overview of computational vision with a biological emphasis. Suitable as an introduction to biological perception for computer science and engineering students, as well as an introduction to computational vision for mathematics, psychology, and physiology students.

After CPSC 112 and MATH 120, or with permission of instructor.

 
CPSC  476b ,

Advanced Computational Vision

.
TTh 2.30-3.45 AKW 400 Steven Zucker
Sc QR (27)  

Advanced view of vision from a mathematical, computational, and neurophysiological perspective. Emphasis on differential geometry, machine learning, visual psychophysics, and advanced neurophysiology. Topics include perceptual organization, shading, color and texture analysis, and shape description and representation.

After CPSC 475.

 
CPSC  477a , Neural Networks for Computing .
TTh 11.35-12.50 AKW 307 Willard Miranker
  QR (24)  
Artificial neural networks as a computational paradigm studied with application to problems in associative memory, learning, pattern recognition, perception, robotics, and other areas. Development of models for the dynamics of neurons and methods such as learning for designing neural networks. Concepts, designs, and methods compared and tested in software simulation. Brain and consciousness studies are optional topics.
Programming and knowledge of linear algebra and calculus required.
 
CPSC  478b , Computer Graphics .
TTh 2.30-3.45 AKW 500 Julie Dorsey
  QR (0)  
Introduction to the basic concepts of two- and three-dimensional computer graphics. Topics include affine and projective transformations, clipping and windowing, visual perception, scene modeling and animation, algorithms for visible surface determination, reflection models, illumination algorithms, and color theory.
After CPSC 202a and 223b.
 
CPSC  478b , Computer Graphics .
MW 1.00-2.15 AKW 000 Holly Rushmeier
  QR (0)  

Introduction to the basic concepts of two- and three-dimensional computer graphics. Topics include affine and projective transformations, clipping and windowing, visual perception, scene modeling and animation, algorithms for visible surface determination, reflection models, illumination algorithms, and color theory.

After CPSC 202 and 223.

 
CPSC  478b , Computer Graphics .
MW 1.00-2.15 AKW 000 Julie Dorsey
  QR (0)  

Introduction to the basic concepts of two- and three-dimensional computer graphics. Topics include affine and projective transformations, clipping and windowing, visual perception, scene modeling and animation, algorithms for visible surface determination, reflection models, illumination algorithms, and color theory.

After CPSC 202 and 223.

 
CPSC  479a , Advanced Topics in Computer Graphics .
MW 1.00-2.15 DL 102 Holly Rushmeier
  QR (0)  
An in-depth study of advanced algorithms and systems for rendering, modeling, and animation in computer graphics. Topics vary and may include reflectance modeling, global illumination, subdivision surfaces, NURBS, physically-based fluids systems, and character animation.
After CPSC 202a and 223b.
 
CPSC  479a , Advanced Topics in Computer Graphics .
TTh 2.30-3.45 AKW 500 Julie Dorsey
  QR (0)  

An in-depth study of advanced algorithms and systems for rendering, modeling, and animation in computer graphics. Topics vary and may include reflectance modeling, global illumination, subdivision surfaces, NURBS, physically-based fluids systems, and character animation.

After CPSC 202a and 223b.

 
CPSC  479a , Advanced Topics in Computer Graphics .
TTh 1.00-2.15 AKW 307 Julie Dorsey
  QR (0)  

An in-depth study of advanced algorithms and systems for rendering, modeling, and animation in computer graphics. Topics vary and may include reflectance modeling, global illumination, subdivision surfaces, NURBS, physically-based fluids systems, and character animation.

After CPSC 202 and 223.

 
CPSC  479b ,

Advanced Topics in Computer Graphics

.
MW 1.00-2.15 AKW 000 Holly Rushmeier
  QR (0)  

An in-depth study of advanced algorithms and systems for rendering, modeling, and animation in computer graphics. Topics vary and may include reflectance modeling, global illumination, subdivision surfaces, NURBS, physically-based fluids systems, and character animation.

After CPSC 202 and 223.

 
CPSC  480a , Directed Reading .
1 HTBA Stanley Eisenstat
   (0)  
Permission of instructor required
Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.
May be taken more than once for credit.
 
CPSC  480b , Directed Reading .
1 HTBA Stanley Eisenstat
   (0)  
Permission of instructor required
Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.
May be taken more than once for credit.
 
CPSC  480a , Directed Reading .
  Stanley Eisenstat
   (0)  
Permission of instructor required

Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  480b , Directed Reading .
1 HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  480a , Directed Reading .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  480b , Directed Reading .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  480a , Directed Reading .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  480b , Directed Reading .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  480a , Directed Reading .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  480b , Directed Reading .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual study for qualified students who wish to investigate an area of computer science not covered in regular courses. A student must be sponsored by a faculty member who sets the requirements and meets regularly with the student. Requires a written plan of study approved by the faculty adviser and the director of undergraduate studies.

May be taken more than once for credit.

 
CPSC  490a , Special Projects .
1 HTBA Dana Angluin
   (0)  
Permission of instructor required
Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.
May be taken more than once for credit.
 
CPSC  490b , Special Projects .
1 HTBA Dana Angluin
   (0)  
Permission of instructor required
Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.
May be taken more than once for credit.
 
CPSC  490a , Special Projects .
3 HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.

May be taken more than once for credit.

 
CPSC  490b , Special Projects .
  Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.

May be taken more than once for credit.

 
CPSC  490a , Special Projects .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.

May be taken more than once for credit.

 
CPSC  490b , Special Projects .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.

May be taken more than once for credit.

 
CPSC  490a , Special Projects .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.

May be taken more than once for credit.

 
CPSC  490b , Special Projects .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.

May be taken more than once for credit.

 
CPSC  490a , Special Projects .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.

May be taken more than once for credit.

 
CPSC  490b , Special Projects .
HTBA Stanley Eisenstat
   (0)  
Permission of instructor required

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. The student must submit a written report about the results of the project.

May be taken more than once for credit.