CS Concentration Handbook

Updated Nov 14 2024

Calculus Prereq

Taking MATH 100, 170, or 190 satisfies our calculus prereq. ECON 170 does as well. So does taking a third-semester (multivariable) calculus course (MATH 180, 200, or 350), which may be used both to satisfy an intermediate-course requirement (2020 requirements) and to satisfy our prereq requirement; you can also use Physics 0720. If you received a 4 or 5 on the Calculus AB AP exam, you may place out of Math 90 (but you will still need to take Math 100, 170, or 190). If you received a 4 or 5 on the Calculus BC AP exam, you may place out of Math 100 (and thus satisfy our calculus prereq). For other placement possibilities, see the Math department’s web page (http://www.math.brown.edu/~calcplacement/CalcPlacement.html). Note that if you are using placement to satisfy our Calculus prereq, please make sure it appears on your transcript. See the deans if you need to make this happen.

If you got an A in the equivalent of Math 100 in high school but do not have an AP credit, we will excuse you from this requirement if you complete both linear algebra (Math 520, Math 540, APMA 0260, or CSCI0530) and probability and statistics (CSCI 1450, APMA 1650, or APMA 1655).

Intro Courses

Taking AP CS in high school may give you a good introduction to computer science, but it doesn’t provide advanced placement in CS at Brown. It’s really important that you take one of our intro sequences. If you’ve had no CS in high school, any of 0111, 0150 or 0170 are the best courses to start with. If you’ve had a little CS in high school, perhaps one of the AP courses, it is still the case that one of 0111, 0150 or 0170 are the best courses to start with. If you’ve had a fair amount of CS in high school, you might consider our accelerated intro to CS, 0190. Rather than just a placement exam, this course has a placement process, given in the summer, that combines the study of online material with an online exam (so you can try for 0190 even if you are new to CS). Doing well in this process is the only way to be admitted into 0190.

We’re willing to discuss with you placement out of 0190 only if you’ve done both of the following:

  1. you’ve taken a substantial amount of CS in high school that is equivalent to one of our introductory sequences (up through CS0160, 0180, or 0200) (note that it’s unlikely you’ve done this unless you’ve taken college courses while in high school; even so, courses offered at many colleges are not the equivalent of our courses -- this is why you’re attending Brown!)

  2. you’ve passed the placement process for 0190 

Otherwise, you must take 0190 (or one of the other intro sequences). If we do allow you to skip our intro courses (and you concentrate in CS), you must take two additional, more advanced CS courses in their place.

If you have an exceptional background in CS and place into 0190, you could also perhaps take a more advanced course at the same time. Possibilities include CSCI 0330 (Intro to Computer Systems) and CSCI 1010 (Theory of Computation). If you take 0190 but have not studied object-oriented programming previously, we strongly recommend that you take 0200 after 0190. If you skip 0200, you will need to take one additional CS course (of your choosing) to replace the second half of the intro sequence.

How do you choose between 0111, 0150, and 0170? First of all, there’s no wrong choice. Each one leads you into the rest of our curriculum. You might shop the first classes of more than one to see which instructor’s style you prefer. In 0111, you'll write programs to process and manage data and small programming projects. In 0150 you will write sophisticated applications, mostly games, such as Tetris, building on existing software packages, e.g., to do graphics. In contrast, in 0170 you don’t build on existing software packages, but instead write essentially everything yourself. Thus you won’t produce a Tetris game, but you’ll understand every line of code used in your assignments, because you wrote them yourself. 0111 maintains a lower workload than 0150 or 0170, but the courses are equally suited for new programmers. All feed into the rest of the curriculum (either directly into 0200, or first via 0112 which builds on 0111). They are simply alternative approaches to getting started with computing and programming.

For more information about the courses and choosing among them, consult our Which Introductory Course page, which provides an overview of the courses and includes an overview video by the instructors of all of our intro courses.

There are different rules for transfer students: see below.

Concentrating In CS

We offer an AB and an ScB in Computer Science, as well as a few joint concentrations: an ScB in Applied-Math/CS, both an AB and an ScB in CS/Economics, and an ScB in Math/CS. An AB and an ScB Computational Biology is offered by the Center for Computational Molecular Biology. Please see our current concentration requirements at http://cs.brown.edu/degrees/undergrad/concentrating-in-cs/.

Which Concentration?

Both an AB and an ScB in Computer Science are sufficient for getting a job or going on to graduate school. An AB allows you to have more time to pursue other interests, such as a second concentration. An ScB gives you a broader education in CS. But employers typically don’t care whether your degree is an AB or an ScB. What’s important is that you have a Brown CS degree. Either degree is more than sufficient for getting into top master’s programs, as well as into top PhD programs. What’s particularly important for the latter are letters of recommendation from faculty that make the case that you will excel as a researcher.

The joint concentrations, with the possible exception of some Computational Biology tracks, are best viewed as, essentially, a double concentration in the two disciplines, with some efficiency gained by combining the two. Thus, for example, if you get an ScB in Applied-Math/CS, your CS background is roughly the same as if you did an AB in CS, and thus your prospects for CS jobs and CS graduate school are good.

Intermediate/Foundations Courses

Intermediate courses are taken either after or along with the intro courses and not only give you breadth in key areas of computer science, but prepare you for our advanced courses. We consider them an essential part of our concentrations and suggest you complete them in your first two or three years. We don’t allow substitutions except for:

MATH 1530 in place of CSCI 0220. If you want to use MATH 1001 or APMA 1001 for 0220, you also need to have a course that covers probability. (MATH 750/760 is NOT a valid substitution for 0220.)

APMA 1650, APMA 1655, or MATH 1620 (for which MATH 1610 is a prerequisite) in place of CSCI 1450. (ECON 1620 is NOT a valid substitution)

MATH 0520, MATH 0540, APMA 0260, or APMA 1170 in place of CSCI 0530 (linear algebra).

MATH 200 or MATH 350 in place of MATH 180 (before Jan 2023, we allowed APMA 0350 and 0360)

For the systems intermediate courses, you may count at most one of CSCI 0300 and CSCI 0330 towards the concentration, due to overlap in the contents of these courses.

Multivariable Calculus or Linear Algebra from High School

You may have taken, MV Calculus or Linear Algebra in high school. Brown’s policy is that courses taken while you were in high school may not be used for college credit. However, if you took such a course at a college (and have a transcript to prove it), even though you were in high school at the time we’re willing to excuse you from taking the course at Brown if needed as a prereq for a course or if it’s a degree requirement. However, this will not count towards the number of courses you need to take for the concentration. 

If you received an A in the equivalent of MATH 180 in high school, you may replace it with one of APMA 1210, APMA 1720, APMA 1740, MATH 1060, or MATH 1130.

If you received an A in the equivalent of MATH 520 in high school, you may replace it with one of APMA 1170, APMA 1860, MATH 1530, MATH 1540, or MATH 1060. You should, however, make sure that your linear course actually covered the content of the ones at Brown, as the CS courses that require linear will assume you have all of that background (it is up to you to check this). 

Nuances for the Joint CS Concentrations

The joint-CS concentrations sometimes have different rules from the straight CS concentrations. For example:

Additional Courses

2020 Requirements

In the 2020 requirements, both the AB and ScB concentrations make use of pathways, which consist of related advanced (1000-level) courses (of which one chooses two) and associated intermediate courses. For the AB one must complete one pathway, for the ScB one must complete two pathways. CSCI 1970 cannot be used as a pathway course (though it can be used as a capstone).

CS AB concentrators must take four additional courses and CS ScB concentrators must take eight additional courses. While these may include one (1) intermediate course you haven’t used to satisfy our intermediate requirements, most will be at the 1000-level (or 2000-level).

Among the additional courses, you need one CSCI 1000-level course that is not listed within the pathways you are using for your concentration. CS 1970 cannot be used to satisfy this requirement.

2024 Requirements

In the 2024 requirements, you need to take 4 (AB) or 8 (ScB) 1000- and 2000-level courses. Unlike in the 2020 requirements, there are no requirements for pathways or breadth courses.

Arts/Policy/Humanities Courses

The department has designated some 1000-level courses as "arts/humanities/policy" courses: the 2020 requirements allow you a maximum of two (2) of these towards CS AB concentration requirements and a maximum of four (4) of these towards CS ScB requirements. Those two may be pathway or elective courses. In the 2024 requirements, these limits are 1 (AB) and 3 (ScB).

At present, the designated courses are 1040, 1250, 1280, 1360, 1370, 1800, 1805, 1860, 1870, 1952B, 1952X, 2002, 2402C, 2952S, 2999A, APMA 1910, DEVL 1810, IAPA 1701A, IAPA 1801, PLCY 1702X.

Non-CS Courses that Can Count Towards CS Requirements

We allow certain non-CS courses to be used to satisfy concentration requirements, but, unless explicitly mentioned otherwise, they may not be used as intermediate, pathway, or capstone courses. An ScB may include three such courses among the 1000-level courses; an AB may include one (for an AB, only one of a non-CS course or an extra intermediate course may be used). Here is the current list:

Contact a director of undergraduate studies to ask about courses not on this list. The following non-CS courses have already been denied: APMA 1920, BIOL 1555, BIOL 1565, BIOL 1595, CLPS 1250, CLPS 1492, EDUC 1110, DATA 1050, DATA 1150, EEPS 1320, ENGN 1931Q, ENGN 1931W, GEOL 1320, HIST 1956, IAPA 1804A, MCM 1701I, NEUR 1940B, PHIL 1485, SOC 1340. 

(Note: For declarations made prior to July 1, 2021, the following courses were also allowed: NEUR 1020, 1030, 1040, 1650, 1670, 1680; ECON 1110, 1130, 1160, 1620, 1630, 1660. Students who matriculated in the 2019-2020 academic year who had not yet declared and made plans to use these courses may contact one of the directors of undergraduate students to request permission to declare with these courses.)

(For declarations made prior to Sep 28, 2023, the following courses were also allowed: ENGN 1931Q)

Research and Independent Study

We encourage you to get involved in research projects (and other forms of independent study). You may get course credit for this: each faculty member has a section of CSCI 1970 (CSCI 2980 is strictly for graduate students). If you are doing a project under the direction of a faculty member, you may register for their section of 1970. This will count as an additional CS course under our degree requirements; we allow two such courses to be used to satisfy concentration requirements (though there is no limit to the number that can be used toward the 30 courses required by the university for graduation). CSCI 1973 is a variant of 1970 that could be used in conjunction with Brown's writing requirement with the approval of both your research advisor and a Director of Undergraduate Studies (but this is rarely used and not encouraged).

Capstone Courses

Under the 2024 requirements, all students are required to complete a capstone course (only ScBs need to do this in the 2020 requirements). The same course may satisfy both capstone and another requirement (it does not have to be an additional course). Both the CS department and Brown are pretty insistent that capstones be taken during the senior year -- it is a capstone, after all. There are rare exceptions. They’ve been cases in which a student really wants to use a particular course as their capstone, but it’s not going to be offered their senior year, or wants to work with a particular faculty member who won’t be here during their senior year. We most definitely do not allow courses taken in the first two years to be used as capstones. A list of courses that may be used as capstones is here. Note that the list includes CSCI 1970, our independent study course. There may be other courses that can be used as capstones: ask the instructors.

The capstone course must be in one of your pathways for the ScB in the 2020 requirements (it may be one of the two pathway courses, or it may be an additional course that also lies in the pathway). In the 2024 requirements, any course on the capstone list is allowed for AB or ScB students.

Courses outside of the CS department may NOT be used as capstones.

Registering for capstone

Once you have selected and are enrolled in a capstone course, fill out the capstone notification form. This is due by March 1 (May graduates) or October 1 (December graduates) in the year that you are graduating. Please do not fill out the form before you are enrolled in the capstone course (desire to capstone is not a valid argument for getting an override into a course). If you later change your mind and want to use a different course for capstone, simply fill in the form again (we'll use your most recent submission when clearing you for graduation).

The work required to capstone a course might be different from the work required if you’re not doing a capstone. Check your course website or ask the instructor what you'll need to do to satisfy capstone requirements for your selected course. 

Honors Theses

See this page for detailed instructions. If you are doing an honors thesis, the thesis takes the place of the capstone. You should sign up for CSCI 1970 in each of the two semesters you are working on your thesis.

Note that if you are doing an honors thesis in a joint concentration, you should have faculty from both departments on your committee. For example, if you are doing an ScB in APMA/CS and your thesis advisor is in CS, then your reader should be in Applied Math; but if your advisor is in Applied Math, your reader should be in CS. Note also that the rules for honor theses may be different in the other department. We have agreements with the other departments that students will do their theses under the rules of the department their thesis advisor belongs to.

Double Concentrating vs. The Combined AB/ScB

You might wish to double concentrate. The university imposes no limits on the amount of overlap between concentrations (it used to, but no longer). Instead, it leaves it to the department to set such rules. We permit an overlap of two courses at the 1000-level and above; we do not limit overlaps for MATH courses numbered below 1000 or a first-semester CS intro course. (Practically, this means Calculus (MATH 100/180/200) and Linear Algebra (MATH 520/540) do not count against the two, but APMA 1650 does). Other concentrations have different rules, however, so make sure you are abiding the rules of both. Please be aware that the deadline for declaring a second concentration is the end of your seventh semester. This is a pretty strict deadline.

One very confusing item is the (five-year) combined ScB and AB degree. This is not the same as a double concentration. You may have a double concentration with two AB concentrations, an ScB and an AB concentration (or even two ScB concentrations). Double concentrations are done in the normal eight semesters (or, with permission from the deans, nine semesters). Your diploma will say you’ve completed an ScB if at least one concentration is an ScB, otherwise it will say you’ve completed an AB. Your transcript will indicate which concentrations you’ve completed. The combined ScB and AB program is a ten-semester, 38-course program, for which your diploma will say you’ve graduated with the combined ScB and AB degree. 

Studying Abroad

Many students would like to study abroad for a semester (typically in the junior year). We fully support you on this and will be happy to talk to you about places where you might study. Note there are English-speaking programs in non-English-speaking countries as well as programs that require proficiency in the language of the country.

We allow up to two courses taken elsewhere to be used for concentration credit for AB degrees and up to three courses taken elsewhere to be used for concentration credit for ScB degrees. Our criteria for these courses are that they must be equivalent to something we actually teach (or have recently taught). This rules out independent-study courses at other schools. In general, the faculty member who teaches the equivalent Brown course decides equivalency. For zero-level courses, either of the directors of undergraduate study may make the decision. 

Note that some schools (Oxford and Cambridge in particular) require students studying abroad with them to stay for two semesters. Nevertheless, we still allow only two courses for AB’s and three for ScB’s to be used for concentration credit.

Transfer Students

We relax the rules on how many courses taken elsewhere may be used for concentration credit for transfer students. What we allow is generally decided on a case-by-case basis. We want to balance making sure your Brown CS degree really involves mostly Brown courses with not requiring you to redo courses you’ve taken elsewhere. We also allow transfer students to skip our intro courses if they’ve had what appears to be a reasonable intro sequence at their original school. Contact one of the directors of Undergraduate Studies for assistance with transfer credits.

Professional Track

If you are an international student on an F1 visa and would like to do a paid summer internship in the US, you will need a CPT (curricular practical training -- an adjunct to your visa). To get a CPT, you must either get course credit for the internship (which is frowned upon for paid internships), or the internship must be a degree requirement. If you sign up for the professional track, you must complete 2-6 months of full-time professional experiences doing work that is related to your concentration, whereby each internship must be at least one month in duration. Thus these experiences become a degree requirement. In addition, you must upload into ASK essays about each of your internships or research experiences (see here for details and instructions for obtaining a CPT). Note that internships abroad (for which you don’t need CPTs) may be used to satisfy profesional-track requirements. In most cases, the professional track takes care of your needs. But there are some special cases:

  1. You might have an internship in the summer after your first year. Even though you’re a first-year student, you should declare your concentration (and declare the professional track).

  2. But you then might get internships after both your sophomore and junior years. For your third internship, you will need to take an independent study course that somehow elaborates on the internship. While officially Brown does not permit course credit for paid internships, it bends the rules for these cases. See the rules for non-professional-track students at https://www.brown.edu/about/administration/international-student-and-scholar-services/students/F1-Student/f-1-student-employment/cpt/cpt-undergraduates

  3. You might get an internship after your junior year, having not had a prior internship. But have you had a non-US internship or a research experience during some previous summer while you’ve been at Brown? If so, then that internship or experience may count as your first internship for the professional track, and the one in your last summer is your second. If there’s no such experience, then you must do as described in item 2 above.

The Professional Track does not offer much benefit to US citizens and permanent residents.

TAing For Course Credit

If you TA for course credit (in certain courses you must do this), you register for either CSCI 81 (full credit) or CSCI 82 (half credit) -- the choice of whether it’s full credit or half credit is strictly up to you, and does not depend upon how much work you do in the course (all UTAs for a course are expected to do the same amount of work). While the credit for 81 and 82 counts towards the 30 credits required for graduation, it does not count towards any CS concentration requirement.

Starting CS Late

It’s possible to complete our AB requirements in two years and our ScB requirements in three years. But if you are late getting started in our program, you might want to consider petitioning the university’s committee on academic standing (CAS) for permission to take a 9th semester at Brown so as to have more time to complete our concentration requirements.

Staying For A Master’s

Our master’s program requires eight courses. There are three different ways of getting into the program:

  1. Concurrent bachelor’s/master’s (aka the four-year master’s program). [This prorgram is being discontinued; it will last be available to students in the class of 2026]. You apply for this while you are a junior. If admitted you are simultaneously a ugrad and a grad student during your senior year. Both your bachelor’s and your master’s are awarded at the same time. We do not allow students doing ABs to enter this program for our ScM -- you must be doing an ScB. You must complete ten courses outside of your concentration. There should be at least two courses in each of the major divisions of the university: physical sciences, biological sciences, social sciences, and the humanities (see https://www.brown.edu/academics/college/degree/sites/brown.edu.academics.college.degree/files/uploads/Concurrent_AB_MA.pdf). This is a university rule, not a CS rule, and is strictly enforced by CAS (the university’s committee on academic standing). Furthermore, they want you to have completed this breadth requirement before you enter the concurrent program. You should also have very good grades in all courses. If admitted, there may be a two-course overlap between courses used for the ugrad concentration and the master’s; these two courses must not be taken S/NC and you must get B’s or better in them. You must complete a minimum of 36 courses in eight or nine semesters.

  2. Fifth-year master’s (intended for CS concentrators). You apply for this while you are a ugrad (i.e., you have until commencement to get your application in). If admitted, you may use two courses taken as a ugrad as part of your master’s requirements (note that, since the lowest passing grade for our grad students is a B, such courses may not be taken S/NC and the grades must be B’s or higher). While we will admit non-concentrators, they should have CS courses that are pretty close to what’s required for our AB’s. Note that those in the 5th-year program not only can but must complete in two semesters. The regular master’s requires three or four semesters. Thus the 5th-year program is a very time- and cost-efficient mechanism for getting a master’s degree. If admitted into the fifth-year program, you may defer admission for up to two years.

  3. Regular master’s (open to all). Our master’s FAQ (http://cs.brown.edu/degrees/masters/faq/) spells out what we’re looking for in preparation. In this program, no courses taken as a ugrad may be applied to your master’s requirements. The deadlines for applications are October 15 for spring admission and March 15 for fall admission.

University Requirements

Brown has rather minimal requirements for graduation beyond completing at least one concentration:

  1. You must pass at least 30 courses.

  2. You must complete at least 32 enrollment units (what this means is, essentially, you must pay for 32 courses). If you are a full-time student and not a transfer student, this isn’t a problem -- you do four enrollment units each semester. It is a potential issue if you are a transfer student, have taken time off, or are a part-time student. You should talk to the deans about making sure you have a sufficient number of enrollment units (note that the number is reported on your Banner transcript).

  3. You must complete the writing requirement. This consists of passing a WRIT course in your first two years and either another WRIT course or some other writing project during your second two years. The second requirement must be satisfied by the end of your seventh semester. Thus honors theses, which are completed in the eighth semester, aren’t useful for this. Note that students who haven’t completed their writing requirements have been prevented from graduating.

Clarifications, Exceptions, Etc.

If you have questions or concerns about this guide, please go over them with your concentration advisor, if you’re currently a concentrator. Otherwise, you might contact either of the directors of undergraduate study (Profs Doeppner and Fisler). If for some reason you feel an exception should be made to some aspect of our rules, please contact one of the directors of undergraduate study.