Computer science is now a critical tool for pursuing an everbroadening range of topics, from outer space to the workings of the human mind. In most areas of science and in many liberal arts fields, cuttingedge work depends increasingly on computational approaches. The undergraduate program at Brown is designed to combine breadth in practical and theoretical computer science with depth in specialized areas. These areas range from traditional topics, such as analysis of algorithms, artificial intelligence, databases, distributed systems, graphics, mobile computing, networks, operating systems, programming languages, robotics and security, to novel areas including games and scientific visualization.
Requirements for the Standard Track of the Sc.B. degree
Prerequisites (1 or 2 courses)  
Two semesters of Calculus, for example:  
Introductory Calculus, Part I and Introductory Calculus, Part II  
or MATH 0170  Advanced Placement Calculus  
Concentration Requirements (15 courses)  
CoreComputer Science:  
Select one of the following introductory course Series:  2  
Series A  
Introduction to ObjectOriented Programming and Computer Science and Introduction to Algorithms and Data Structures  
Series B  
Computer Science: An Integrated Introduction and Computer Science: An Integrated Introduction  
Series C  
Accelerated Introduction to Computer Science  
and an additional CS course not otherwise used to satisfy a concentration requirement; this course may be CSCI 0180, an intermediatelevel course, or an advanced course  
Select three of the following intermediatelevel courses, one of which must be mathoriented and one systemsoriented:  3  
Introduction to Discrete Structures and Probability (math)  
Introduction to Software Engineering (systems)  
Introduction to Computer Systems (systems)  
or CSCI 0310  Introduction to Computer Systems  
CSCI 1010  Theory of Computation  
Probability and Computing ^{*}  
Additional Computer Science Courses: ^{1}  
Select one theoretical computer science course: ^{2}  1  
Introduction to Combinatorial Optimization  
Introduction to Cryptography and Computer Security  
Probability and Computing: Randomized Algorithms and Probabilistic Analysis  
Design and Analysis of Algorithms  
Introduction to Computational Complexity  
Multiprocessor Synchronization  
Computational Topology  
Introduction to Computational Geometry  
Algorithmic Foundations of Computational Biology  
Select one artificial intelligence course: ^{2}  1  
Applied Artificial Intelligence  
Machine Learning  
Computer Vision  
Probability and Computing  
Computational Linguistics  
Building Intelligent Robots  
Introduction to Combinatorial Optimization  
Information Retrieval and Web Search  
Select one computer science systems course: ^{2}  1  
Introduction to Computer Graphics  
Compilers and Program Analysis  
Database Management Systems  
Computational Photography  
Fundamentals of Computer Systems  
Creating Modern Web Applications  
Innovating Game Development  
Distributed Computer Systems  
RealTime and Embedded Software  
Building HighPerformance Servers  
Introduction to Computer Systems Security  
Operating Systems  
Computer Networks  
Design and Implementation of Programming Languages  
csciStartup  
Four additional advanced computer science courses  4  
A capstone course ^{3}  1  
Math: Two semesters of Mathematics or Applied Mathematics beyond MATH 0100/0170. One of these courses must be a linear algebra course  2  
Linear Algebra  
Honors Linear Algebra  
Directions: The Matrix in Computer Science  
Total Credits  15 
^{1} 

^{2}  No course may be used to satisfy more than one area requirement. 
^{3}  Capstone: a onesemester course, normally taken in the student's last undergraduate year, in which the student (or group of students) use a significant portion of their undergraduate education, broadly interpreted, in studying some current topic in depth, to produce a culminating artifact such as a paper or software project. 
Requirements for the Professional Track of the Sc.B. degree.
The requirements for the professional track include all those of the standard track, as well as the following:
Students must complete two twotofourmonth fulltime professional experiences, doing work that is related to their concentration programs. Such work is normally done within an industrial organization, but may also be at a university under the supervision of a faculty member.
On completion of each professional experience, the student must write and upload to ASK a reflective essay about the experience addressing the following prompts, to be approved by the student's concentration advisor:
 Which courses were put to use in your summer's work? Which topics, in particular, were important?
 In retrospect, which courses should you have taken before embarking on your summer experience? What are the topics from these courses that would have helped you over the summer if you had been more familiar with them?
 Are there topics you should have been familiar with in preparation for your summer experience, but are not taught at Brown? What are these topics?
 What did you learn from the experience that probably could not have been picked up from course work?
 Is the sort of work you did over the summer something you would like to continue doing once you graduate? Explain.
 Would you recommend your summer experience to other Brown students? Explain.
Requirements for the Standard Track of the A.B. degree
Prerequisites  
Two semesters of Calculus, for example:  
Introductory Calculus, Part I and Introductory Calculus, Part II  
Advanced Placement Calculus  
Concentration Requirements (9 courses)  
Core Computer Science:  
Select one of the following series:  2  
Series A  
Introduction to ObjectOriented Programming and Computer Science and Introduction to Algorithms and Data Structures  
Series B  
Computer Science: An Integrated Introduction and Computer Science: An Integrated Introduction  
Series C  
Accelerated Introduction to Computer Science  
and an additional CSCI course not otherwise used to satisfy a concentration requirement; (this course may be CSCI 0180, an intermediatelevel CSCI course, or a 1000 level course)  
Three intermediate courses from the following, of which one must be mathoriented and one must be systemsoriented:  3  
Introduction to Discrete Structures and Probability (math)  
Introduction to Software Engineering (systems)  
Introduction to Computer Systems (systems)  
or CSCI 0310  Introduction to Computer Systems  
CSCI 1010  Theory of Computation (math)  
Directions: The Matrix in Computer Science (math)  
Probability and Computing ^{*}  
Four additional courses in computer science or related areas are required. ^{1}  4  
Total Credits  9 
^{1} 

Requirements for the Professional Track of the A.B. degree.
The requirements for the professional track include all those of the standard track, as well as the following:
Students must complete two twotofourmonth fulltime professional experiences, doing work that is related to their concentration programs. Such work is normally done within an industrial organization, but may also be at a university under the supervision of a faculty member.
On completion of each professional experience, the student must write and upload to ASK a reflective essay about the experience addressing the following prompts, to be approved by the student's concentration advisor:
 Which courses were put to use in your summer's work? Which topics, in particular, were important?
 In retrospect, which courses should you have taken before embarking on your summer experience? What are the topics from these courses that would have helped you over the summer if you had been more familiar with them?
 Are there topics you should have been familiar with in preparation for your summer experience, but are not taught at Brown? What are these topics?
 What did you learn from the experience that probably could not have been picked up from course work?
 Is the sort of work you did over the summer something you would like to continue doing once you graduate? Explain.
 Would you recommend your summer experience to other Brown students? Explain.