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.
Our requirements are built on a core set of foundation courses, each representing an essential area within computer science. Concentrators choose the upper-level courses that align with their interests. Students may not use more than two CSCI 1970 courses to complete the requirements for the Sc.B. and one CSCI 1970 course for the A.B. requirements.
For up-to-date information on our concentration requirements please see https://cs.brown.edu/degrees/undergrad/concentrating-in-cs/concentration-requirements-2024. Please see https://cs.brown.edu/degrees/undergrad/concentrating-in-cs/concentration-handbook/ for additional information regarding our concentration requirements (including allowed substitutions and policies).
Requirements for the Standard Track of the Sc.B. degree
Requirements for the Standard Track of the Sc.B. degree
Prerequisites (0-3 courses) | ||
Calculus prerequisite: students must complete or place out of second semester calculus. | ||
Single Variable Calculus, Part II | ||
or MATH 0170 | Single Variable Calculus, Part II (Accelerated) | |
or MATH 0190 | Single Variable Calculus, Part II (Physics/Engineering) | |
Concentration Requirements | ||
Core-Computer Science: | ||
Select one of the following introductory course Series: | 2 | |
Series A | ||
Introduction to Object-Oriented Programming and Computer Science and Program Design with Data Structures and Algorithms | ||
Series B | ||
Computer Science: An Integrated Introduction and Program Design with Data Structures and Algorithms | ||
Series C | ||
Accelerated Introduction to Computer Science | ||
AND | ||
an additional CS course numbered 200 or above not otherwise used to satisfy a concentration requirement; this course may be CSCI 0200, a Foundations course, or a 1000-level course. | ||
Series D 1 | ||
Computing Foundations: Data and Program Design with Data Structures and Algorithms | ||
Introductory Math Foundations | 1 | |
Introduction to Discrete Structures and Probability | ||
or MATH 1530 | Abstract Algebra | |
Foundations Courses | ||
ScB students must take one course from each foundation area. | ||
Foundations Areas | ||
a. Algorithms/Theory Foundations | 1 | |
Data Structures, Algorithms, and Intractability: An Introduction | ||
b. AI/Machine Learning/Data Science Foundations | 1 | |
Foundations of AI | ||
c. Systems Foundations, Concentration credit for only one of 300/330 | 1 | |
Fundamentals of Computer Systems | ||
or CSCI 0330 | Introduction to Computer Systems | |
CSCI Electives | 5 | |
Five CSCI courses at the 1000 level 2 | ||
Four Additional Electives. These can include: | 4 | |
Introduction to Software Engineering | ||
1000-level and 2000-level CSCI courses (no more than three non-technical courses as defined in concentration handbook) | ||
Capstone | ||
A capstone taken in the senior year (from the list of approved capstone courses in the concentration handbook). The capstone may also be used to satisfy another requirement. | ||
Total Credits | 15 |
- 1
Students wishing to go directly from CSCI 0111 to CSCI 0200 will need to successfully complete additional exercises to receive an instructor override code for CSCI 0200.
- 2
None of these can be CS non-technical courses. The list is in the concentration handbook. [https://cs.brown.edu/degrees/undergrad/concentrating-in-cs/concentration-handbook/]
Requirements for the Professional Track of the both the Sc. B. and A.B. degrees.
The requirements for all undergraduate professional tracks within concentrations are standardized and additional information can be found here:
Honors
Honors in CS requires a two-semester research project (including writeup and presentation) during the last two semesters. In addition, honors candidates must have earned A's or S-with-distinction in 2/3 (rounding up) of the courses used towards the concentration, excluding introductory-sequence courses (CS courses numbered 0200 or below) and the calculus prerequisite. See the department’s honors webpage for more details.
Requirements for the Standard Track of the A.B. degree
Concentration Requirements (10 courses) | ||
Core Computer Science: | ||
Select one of the following series: | 2 | |
Series A | ||
Introduction to Object-Oriented Programming and Computer Science and Program Design with Data Structures and Algorithms | ||
Series B | ||
Computer Science: An Integrated Introduction and Program Design with Data Structures and Algorithms | ||
Series C | ||
Accelerated Introduction to Computer Science | ||
AND | ||
An additional CS course 200 or above not otherwise used to satisfy a concentration requirement; this course may be CSCI 0200, a Foundations course, or a 1000-level course. | ||
Series D 1 | ||
Computing Foundations: Data and Program Design with Data Structures and Algorithms | ||
Introductory Math Foundations | 1 | |
Introduction to Discrete Structures and Probability | ||
Foundations Courses | ||
AB students must take one course from each foundation area | ||
Foundation Areas | ||
a. Algorithms/Theory Foundations | 1 | |
Data Structures, Algorithms, and Intractability: An Introduction | ||
b. AI/Machine Learning/Data Science Foundations | 1 | |
Foundations of AI | ||
c. Systems Foundations | 1 | |
Fundamentals of Computer Systems | ||
or CSCI 0320 | Introduction to Software Engineering | |
or CSCI 0330 | Introduction to Computer Systems | |
CSCI Electives | 2 | |
Two CSCI courses at the 1000 level. 2 | ||
Two additional electives. These can include: | 2 | |
Introduction to Software Engineering (if not used towards System Foundations) | ||
1000-level and 2000-level CSCI courses (at most one can be a non-technical course as defined in concentration handbook). | ||
One approved 1000-level course outside of CS (see the concentration handbook for the current list) | ||
Capstone | ||
A capstone taken in the senior year (from the list of approved capstone courses in the concentration handbook). The capstone may also be used to satisfy another requirement. | ||
Total Credits | 10 |
- 1
Students wishing to go directly from CSCI 0111 to CSCI 0200 will need to successfully complete additional exercises to receive an instructor override code for CSCI 0200.
- 2
Neither of these can be non-technical courses. The list is in the concentration handbook. [https://cs.brown.edu/degrees/undergrad/concentrating-in-cs/concentration-handbook/]
Requirements for the Professional Track of the both the Sc. B. and A.B. degrees.
The requirements for all undergraduate professional tracks within concentrations are standardized and additional information can be found here:
Honors
Honors in CS requires a two-semester research project (including writeup and presentation) during the last two semesters. In addition, honors candidates must have earned A's or S-with-distinction in 2/3 (rounding up) of the courses used towards the concentration, excluding introductory-sequence courses (CS courses numbered 0200 or below) and the calculus prerequisite. See the department’s honors webpage for more details.