CS Concentration Handbook

Updated 2022-02-17

Calculus Prereq

Taking MATH 100, 170, or 190 satisfies our calculus prereq. 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 and to satisfy our prereq requirement. ECON 170 also satisfies this requirement. 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.

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 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. (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, or APMA 1170 in place of CSCI 0530.

APMA 0350 or APMA 0360 in place of MATH 0180 (APMA 0330 is NOT a valid substitution)

You may have taken, say, 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, you still must take three (Brown) intermediate courses if doing an AB and five if doing an ScB. For example, if you completed a linear algebra course at Stanford while in high school, you do not need to take a Brown linear algebra course as part of satisfying the AI/ML pathway (the notion of a pathway is defined below). But you still must take three or five intermediate courses, depending on the degree.

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.

Additional Courses

Both our 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.

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

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: BIOL 1555, BIOL 1595, CLPS 1250, CLPS 1291, CLPS 1492, EDUC 1110, GEOL 1320, HIST 1956, MCM 1701I, NEUR 1940B. 

(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.)

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).

Capstone Courses

ScB students are required to complete a capstone course as one of their additional courses. We’re 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.

Note that the capstone course must be in one of your pathways for the ScB (it may be one of the two pathway courses, or it may be an additional course in the pathway).

It’s important that you fill out a capstone registration form and have it signed by the capstone-course instructor before the end of shopping period in the semester you’re taking the course: the work required of a capstone in a course might be different from the work required if you’re not doing a capstone.

There is no capstone requirement for the AB.

Honors Theses

See here. If you are doing an honors thesis and an ScB, 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. If you are intending to double concentrate, please check with the other concentration to make sure you’re abiding by their rules on overlap as well. Note that we don’t include the calculus prereq in this overlap, since so many concentrations require it. We’re also reasonably happy to overlook other basic math courses from the overlap, such as linear algebra. 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 do two summer internships or research experiences, thus making it 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). 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.