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 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 Computing Foundations: Program Organization and Program Design with Data Structures and Algorithms | ||
Introductory Math Foundations | 1 | |
Introduction to Discrete Structures and Probability | ||
or APMA 1650 | Statistical Inference I | |
or CSCI 1450 | Advanced Introduction to Probability for Computing and Data Science | |
or MATH 1530 | Abstract Algebra | |
Foundations Courses | ||
ScB students must take one course from each foundation area. | ||
Foundations Areas | ||
a. Algorithms/Theory Foundations (Choose one) | 1 | |
CSCI 0500 | Data Structures, Algorithms, and Intractability: An Introduction | |
Theory of Computation | ||
Probabilistic Methods in Computer Science | ||
Design and Analysis of Algorithms | ||
b. AI/Machine Learning/Data Science Foundations | 1 | |
Artificial Intelligence | ||
or CSCI 1420 | Machine Learning | |
or CSCI 1430 | Computer Vision | |
or CSCI 1460 | Computational Linguistics | |
or CSCI 1470 | Deep Learning | |
or CSCI 1951A | Data Science | |
c. Systems Foundations | 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 arts/policy/humanities courses) | ||
Approved 1000-level courses 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 | 15 |
- 1
Students wishing to go directly from CSCI 0111 to CSCI 0200 (without CSCI 0112) will need to successfully complete additional exercises to receive an instructor override code for CSCI 0200.
- 2
None of these can be arts/humanities/policy courses [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 the professional track include all those of the standard track, as well as the following:
Students must complete full-time professional experiences doing work that is related to their concentration programs, totaling 2-6 months, whereby each internship must be at least one month in duration in cases where students choose to do more than one internship experience. Such work is normally done at a company, but may also be at a university under the supervision of a faculty member. Internships that take place between the end of the fall and the start of the spring semesters cannot be used to fulfill this requirement.
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.
Honors
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.
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 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 Computing Foundations: Program Organization and Program Design with Data Structures and Algorithms | ||
Introductory Math Foundations | 1 | |
Introduction to Discrete Structures and Probability | ||
or APMA 1650 | Statistical Inference I | |
or CSCI 1450 | Advanced Introduction to Probability for Computing and Data Science | |
Foundations Courses | ||
AB students must take one course from each foundation area | ||
Foundation Areas | ||
a. Algorithms/Theory Foundations (choose one) | 1 | |
CSCI 0500 | Data Structures, Algorithms, and Intractability: An Introduction | |
Theory of Computation | ||
Probabilistic Methods in Computer Science | ||
Design and Analysis of Algorithms | ||
b. AI/Machine Learning/Data Science Foundations | 1 | |
Artificial Intelligence | ||
or CSCI 1420 | Machine Learning | |
or CSCI 1430 | Computer Vision | |
or CSCI 1460 | Computational Linguistics | |
or CSCI 1470 | Deep Learning | |
or CSCI 1951A | Data Science | |
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 an arts/policy/humanities course) | ||
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 (without CSCI 0112) will need to successfully complete additional exercises to receive an instructor override code for CSCI 0200.
- 2
Neither of these can be arts/humanities/policy courses [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 the professional track include all those of the standard track, as well as the following:
Students must complete full-time professional experiences doing work that is related to their concentration programs, totaling 2-6 months, whereby each internship must be at least one month in duration in cases where students choose to do more than one internship experience. Such work is normally done at a company, but may also be at a university under the supervision of a faculty member. Internships that take place between the end of the fall and the start of the spring semesters cannot be used to fulfill this requirement.
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.
Honors
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.