Computer Science

Computer science is now a critical tool for pursuing an ever-broadening range of topics, from outer space to the workings of the human mind. In most areas of science and in many liberal arts fields, cutting-edge 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
Advanced Placement Calculus
Concentration Requirements (15 courses)
Core-Computer Science:
Select one of the following introductory course Series:2
Series A
Introduction to Object-Oriented 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 intermediate-level course, or an advanced course
Select three of the following intermediate-level courses, one of which must be math-oriented and one systems-oriented:3
Introduction to Discrete Structures and Probability (math)
Introduction to Software Engineering (systems)
Introduction to Computer Systems (systems)
Introduction to Computer Systems
Models of Computation (math)
Introduction to Probability and Computing *
Additional Computer Science Courses: 1
Select one theoretical computer science course: 21
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
Introduction to Multiprocessor Synchronization
Computational Topology
Introduction to Computational Geometry
Algorithmic Foundations of Computational Biology
Select one artificial intelligence course: 21
Introduction to Artificial Intelligence
Introduction to Machine Learning
Introduction to Computer Vision
Introduction to Probability and Computing
Introduction to Computational Linguistics
Building Intelligent Robots
Introduction to Combinatorial Optimization
Information Retrieval and Web Search
Select one computer science systems course: 21
Introduction to Computer Graphics
Introductory Compiler Construction
Database Management Systems
Computational Photography
Fundamentals of Computer Systems
Creating Modern Web Applications
CSCI 1340 - Innovating Game Development
Distributed Computer Systems
Introduction to Embedded and Real-Time Software
Building High-Performance Servers
Introduction to Computer Systems Security
Operating Systems
Computer Networks
Introduction to Programming Languages
Software System Design
Four additional advanced computer science courses4
A capstone course 31
Math: Two semesters of Mathematics or Applied Mathematics beyond MATH 0100/0170. One of these courses must be a linear algebra course2
Linear Algebra
Honors Linear Algebra
Directions: The Matrix in Computer Science
Total Credits15
1
  • Normally these advanced courses must be at the 1000-level or higher, though an intermediate-level course not used to satisfy a core requirement may be used. 
  • These courses must include two pairs of courses with each pair forming a coherent theme. A list of pre-approved pairs may be found at the approved-pairs web page. You are not restricted to pairs on this list, but any pair not on the list must be approved by the director of undergraduate studies.
  • Five of the eight courses must be computer science courses.
  • Among the eight courses may be approved 1000-level courses in Mathematics, Applied Mathematics, Biology, Engineering, Economics, Music, Cognitive, Linguistic, and Psychological Sciences, Neuroscience, and other departments that cover material relevant to the student's concentration.
  • CSCI 1450 may be used either as a math-oriented intermediate course or as an advanced course. CSCI 1450 was formerly known as CSCI 450: they are the same course and hence only one may be taken for credit. Applied Math 1650 may be used in place of CSCI 1450. However, concentration credit will be given for only one of Applied Math 1650 and CSCI 1450.
2

  No course may be used to satisfy more than one area requirement.

3

Capstone: a one-semester 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 two-to-four-month full-time 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 Object-Oriented 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 intermediate-level CSCI course, or a 1000 level course)
Three intermediate courses from the following, of which one must be math-oriented and one must be systems-oriented:3
Introduction to Discrete Structures and Probability (math)
Introduction to Software Engineering (systems)
Introduction to Computer Systems (systems)
Introduction to Computer Systems
Models of Computation (math)
Directions: The Matrix in Computer Science (math)
Introduction to Probability and Computing *
Four additional courses in computer science or related areas are required. 14
Total Credits9
1
  • Three must be advanced courses (at the 1000-level or higher), the fourth may be either an intermediate-level course not used to satisfy a core requirement or an advanced course. These three courses must include a pair of courses forming a coherent theme. A list of pre-approved pairs may be found at the approved-pairs web page. You are not restricted to pairs on this list, but any pair not on the list must be approved by the director of undergraduate studies.
  • CSCI 1450 may be used either as a math-oriented intermediate course or as an advanced course. CSCI 1450 was formerly known as CSCI 450: they are the same course and hence only one may be taken for credit. Applied Math 1650 may be used in place of CSCI 1450. However, concentration credit will be given for only one of Applied Math 1650 and CSCI 1450.

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 two-to-four-month full-time 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.