Master's Program Handbook

Updated 8/28/2019


The requirements for a Master’s of Science (ScM) degree in Computer Science consist of a basic component and an advanced component. All courses (with one exception listed below) must be at the 1000-level or higher. All courses must be completed with a grade of B or better.

The courses in your program must be approved by the director of graduate studies (master’s) as well as by your advisor.

Basic Component            

The basic component consists of six courses. None of these courses may be reading and research courses (in particular, they can’t be CSCI 2980).

The six courses are chosen as follows:

We allow you to take one sub-1000-level courses as part of your master’s requirements if you need it to satisfy prerequisites for a 1000-level course. In particular, we currently allow you to take one of either CSCI 320 or 330 if you subsequently take a 1000-level course for which it is a prerequisite. Note that to get graduate-level credit for such courses, you must do extra work in the course (beyond what undergraduates do) that will be arranged by the instructor.

Advanced Component

The advanced component requires you to complete one of the following four 2-course options. No more than one Reading and Research course (CSCI 2980) may be used in options 3 and 4. An “advanced course,” as used below, is either a 2000-level CS course or a 1000-level CS course that includes a master’s supplement. Master’s supplements are nominally half-credit courses, but you may do the work of these courses without officially registering for them (since doing so would require you to pay extra tuition). Examples of such supplements are CSCI 1234 (supplementing 1230), CSCI 1690 (supplementing 1670), and CSCI 1620 (supplementing 1660).

“Internships,” as used below, must be approved by the student’s advisor and are paid work in the area of the student’s master’s studies and are explained further below.

The four options are:

  1. Complete a research project supervised and approved by your research advisor.

  2. Complete a research project supervised and approved by your research advisor, and complete an internship.

  3. Complete two advanced courses.

  4. Complete two advanced courses and complete an internship.

Note that options 2 and 4 are known as the internship track.


Students entering the master’s program typically have one of two goals: they intend to pursue research careers in computer science and are preparing themselves to enter Ph.D. programs, or they intend to become professional computer scientists and pursue careers in industry. In both cases, students should take collections of courses that not only give them strength in particular areas of computer science, but also include complementary areas that familiarize them with other ways of thinking about the field. For example, a student whose interests are in the practical aspects of designing computer systems should certainly take courses in this area, but should also be exposed to the mindset of theoretical computer science. In a rapidly changing discipline, there is much cross-fertilization among areas and students should have some experience in doing advanced work in areas not directly related to their own.

Students whose goals are research careers should become involved as quickly as possible with research groups as part of their master’s studies, and demonstrate and learn about research by participating in it. The resulting research reports will serve to establish their suitability for entering Ph.D. programs.

Students whose goals are to be professional computer scientists should have some professional experience as part of their preparation. A certain amount of basic coursework is required before a student can qualify for a pedagogically useful internship. Students with limited experience in computer science should take a few advanced computer science courses before embarking on an internship. Other students, particularly those whose undergraduate degrees were at Brown, will likely have had internship experiences while undergraduates. Internships provide insights for subsequent courses and project work at Brown. Students without such experiences are at a disadvantage with respect to their peers. Thus we strongly encourage students who have not had such experience to choose one of options 2 or 4, for which internships are required.

Note that these internships are not courses and the work is not evaluated as it would be for a course. Students’ advisors will assist them in choosing and obtaining internships, but it is up to students themselves to insure that they get as much benefit as possible from their experiences. They must be able to take advantage of these experiences while completing their master’s projects — we expect as high-quality work from them as we do from students who entered the program with prior internship experiences.

Getting Through the Program

Your Advisor

When you enter our master’s program an advisor will be assigned to you, based on your interests as expressed in your application. This person will discuss your initial course selection with you and be available to sign necessary forms. You may stay with this advisor for your entire time at Brown, but you’re free to choose someone else to be your advisor (if they agree). In particular, you’re not committed to work with your initial advisor if you choose to do a research project -- you’re free to select any CS faculty member as your research advisor.

Master’s Contract

So that you can be sure you have an approved plan for your master’s program and so the department can track its students, we ask that you fill out a master’s contract, which is a PDF document you can find here. You might print it out and bring it with you to your first meeting with your advisor. Once it is filled out and signed by your advisor, please make a copy of it for yourself and give the original to the master’s program coordinator (currently Lauren Clarke). For new students, please do this by the end of the second week of the semester.

If you make changes to your plan (which most students do), it’s not necessary to update the contract immediately, but you should make sure it is up to date soon after the start of each semester.

Full-Time Status

Being a full-time student at Brown is important both for international students and for students with college loans to pay off. Our policy is that if you are registered for two or more courses in a semester, then you are a full-time student. If you are in your final semester and need only one course to complete, being registered for that one course makes you a full-time student. Thus, since eight courses are required to complete our requirements, a number of sequences are possible. For example, you might start with two courses the first semester, then take three in each of the next two semesters. You might start with three courses the first semester, then take two in each of the next two semesters and finish off with one course the fourth semester. Or you might take two courses in each of four semesters. Again, as long as you’re registered for at least two courses in all but your last semester, you are considered a full-time student.

Note that it’s important that you stay registered for at least two courses for the entire semester. If you decide to drop a course towards the end of the semester (perhaps because you’re concerned about your grade), you might jeopardize your full-time status. If you get a C or an NC in a course, while it won’t count towards your degree requirements, it does count towards the two courses required for full-time status. Please, don’t drop a course without first discussing it with your advisor or the director of graduate studies (master’s).

Taking Additional Courses

While at Brown, you might want to take courses that are not part of your master’s program. While doing this is fine (assuming you pay tuition for them!), note that if you are an international student, once you have completed eight courses, it’s possible your visa may be terminated (since you were given the visa to complete the eight courses required of our master’s degree). If you would really like to take additional courses, you might do so during the last semester of your master’s program (but check with OISSS before registering).

Which Track? The Advanced Component

You may choose to participate in a research project as part of your master’s, or you may choose to simply take courses. In either case, you will take two 2000-level courses as the advanced component of your master’s. For the “courses-only” track, our intent is that you not be directly involved in research and thus not take reading and research courses (i.e., CSCI 2980). If you are doing research as part of your master’s, then your advanced component should consist of two instances of 2980.

Should you start the master's program with the intent of doing research but decide after one semester of 2980 that you'd prefer to do the courses-only track, we will allow one semester of 2980 to count toward your requirements. However, you should make sure you arrange with the professor the work you will need to do to pass (with an A or B) 2980. Note that it’s common for professors to give grades of “Incomplete” for the first instance of 2980, to be changed to an A or B after the research is completed (typically when the second instance of 2980 is completed).

What if you start your master’s program with the intent of doing the courses-only track, but get interested in a research project for your final semester? For this situation, you may take two instances of 2980 in one semester, thus devoting a lot of time in that one semester to completing your research.

The Research-Project Report

If you are doing a research project as part of your master’s, you are required to prepare a report describing the research. The format of this report is agreed upon by you and your advisor. Your project (and thus your degree) is not complete until your advisor approves your report. The report should describe what you did and what you learned from the project, and will appear on the department’s web page. (Examples of past reports can be found at

If your research was a group effort, perhaps a project led by your research advisor that involved a number of students, it’s likely that a joint paper was written by you and others describing the work and was published or presented at a conference. In such cases, you should write a separate project report that references the group paper and describes your part of the project. It is this separate report that will appear on our web page (and that must be approved by your advisor).

Transfering Courses from Other Institutions

Brown’s graduate school allows at most one course taken elsewhere to be transferred to Brown to be used towards your master’s requirements. This course must have been taken after you received your bachelor’s degree and must not have been used towards any other degree. The course should be a four-credit course taken in the semester system (as opposed to a three-credit course or a course taken in the quarter system). If, for example, you’ve taken two three-credit courses in the semester system, or two or more courses in the quarter system, they might be combinable into something equivalent to a Brown course. It’s also important that the course (or combined courses) cover the same material as one of our courses (and thus replace that course). If you think you have a course (or courses) that qualifies please contact the director of graduate studies (master’s). You must receive a B or higher for a course to be considered for transfer credit.

Please note that 5th-year master’s students may not use transfer courses to satisfy degree requirements.

Brown has a cross-registration agreement with Harvard. We allow Harvard CS (and related) courses to be used for Master’s credit even if they aren’t equivalent to Brown courses, as long as you get approval from the Director of Graduate Studies (Master’s). A course taken at Harvard counts as a transfer course, thus the one-course limit applies.

The Internship Track

If you are an international student, you might be interested in the internship track, which requires you to complete an internship (in addition to the other degree requirements) as part of completing your master’s degree. Since the internship is a requirement, you will qualify for a CPT (curricular practical training), which allows you to do a paid internship in the US. (Note that if you are not an international student, you don’t need a CPT to do an internship and thus this track is not really relevant for you.)

The internship should be two-to-four months of full-time work that’s related to your course of study in Computer Science. Since you are expected to be a full-time student during the academic year, we generally grant CPTs for internships only for summer work. If you are here for two summers, we regret to say that we may issue a CPT only for one summer’s internship.

Fifth-Year Master’s Students

Fifth-year master’s students are those who were undergraduates at Brown and were accepted into the fifth-year master’s program, which allows them to use two courses taken as an undergraduate towards their master’s requirements. Any two courses may be used (as long as they satisfy requirements of the master’s), but you must have received an A or a B in them (an S is not sufficient). It doesn’t matter whether they were used to satisfy undergraduate concentration requirements. You indicated which two courses you were to use in your application materials, but you may choose to use different courses if you’d like.

Again, please note that 5th-year master’s students may not use transfer courses to satisfy degree requirements (this is a university rule).