CS Concentration Handbook

Updated 2021-01-04

Old vs. New Requirements

If you started at Brown in September 2017 or later you are required to use the new concentration requirements. Otherwise you may use either the old or the new, though we strongly encourage using the new requirements (which, in general, aren’t a whole lot different from the old). In this document we assume the new requirements are being used.

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, either of 150 or 170 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 either 150 or 170 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, 190. 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. Doing well in this process is the only way to be admitted into 190.

We’re willing to discuss with you placement out of 190 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 (150/160 or 170/180 or 190) (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 190 

Otherwise, you must take 190 (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 019, you could also perhaps take a more advanced course at the same time. Possibilities include CSCI 330 (Intro to Computer Systems) and CSCI 1010 (Theory of Computation).

CSCI 150 covers object-oriented design and 2D graphical user interfaces using Java. It’s followed by CSCI 160, which covers algorithms and data structures using Java and Python. Even if you’ve had Java in high school, it’s likely you’ll find 150 to be a challenging course. But if you’d prefer to do something different, take CSCI 170.

CSCI 170 and its follow-on course CSCI 180 cover functional programming using languages including Racket and OCaml, followed (in 180) by object-oriented programming using Java and Scala. Algorithms and data structures are covered throughout both semesters.

CSCI 190 covers functional programming using the programming language Pyret, as well as algorithms and data structures. It moves at a much faster pace than the other intro courses. Students completing 190 may take any more advanced CS course as the second course of their intro sequence. Since 190 does not cover object-oriented programming, we allow students to take 180 after 190 as their second intro course.

How do you choose between 150/160 and 170/180? First of all, there’s no wrong choice. Both course sequences lead you into the rest of our curriculum. You might shop the first classes of both to see which instructor’s style you prefer. In 150 you will write sophisticated applications, mostly games, such as Tetris, building on existing software packages, e.g., to do graphics. In contrast, in 170 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. Neither course sequence is more advanced than the other. They are simply alternative approaches to learning programming, algorithms, and data structures.

We are developing a three-course intro sequence (111, 112, and 113) that spreads the intro-sequence content over three semesters to help students better accommodate other courses or pursuits. The sequence orders content differently than the other sequences do, so that each course is a useful stopping point for students seeking to apply CS to other disciplines. CSCI 111 is taught in both fall and spring semesters in the 2019/2020 academic year. We plan to introduce 112 in Spring 2020. Once 113 is being taught, the three-course sequence may be used in place of our other intro sequences. Until this happens, students who’ve taken and done well in CSCI 111 and who are interested in becoming concentrators may participate in a “bridge” program over winter break (via the internet) that will get them ready to take CSCI 180 in the spring. Once they have completed 180, they will be considered to have completed a full intro sequence.

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

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 or 0540 in place of CSCI 0530.

APMA 0350 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 300 and CSCI 330 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 1492, EDUC 1110, GEOL 1320, MCM 1701I, NEUR 1940B. 

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.

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.