The requirements consist of a Basic Component and an Advanced Component. All courses must be:
- at the 1000 level or higher
- completed with a grade of B or better
- approved by the director of the Master's program and the student's advisor
The basic component consists of six courses, none of which may be reading and research courses such as CSCI 1970 and CSCI 2980. Courses are chosen as follows:
- Two must be CS courses that form a coherent major. Examples of such pairs are listed here.
- One must be a CS course (the "breadth" course) that doesn't form a pair with either course chosen as the major (see the list of pairs above).
- The three additional courses must be in CS or related areas.
Our three tracks (thesis, project, or coursework-only), each with two subtracks, allow a Master's student to choose one of six options for an Advanced Component while they work on completing Basic Component coursework. To learn more, please visit our Master's Program Tracks page.
Students entering the Master's program typically have one of two goals: they intend to pursue research in computer science and are preparing themselves to enter PhD 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's much cross-fertilization among areas, and students should have some experience in doing advanced work in areas not directly related to their own.
A student whose goal is a research career should become involved as quickly as possible with a research group as part of their Master's studies, and demonstrate and learn about research by participating in it. The resulting thesis or project report will serve to establish their suitability for entering a PhD program.
A student whose goal is to be a professional computer scientist should have some professional experience as part of their preparation. A certain amount of 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 CS courses before embarking on an internship. Other students, particularly those whose undergraduate degrees are from Brown, will have had internship experiences while undergraduates. Internships provide insights for subsequent courses and project work at Brown, and 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, 4, and 6 above, which require internships.
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's 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 the same high-quality work from them that we do from students who entered the program with prior internship experiences.
Some of our students are pursuing a Master's degree on a part-time basis while concurrently working in industry. Such students often are working as part of teams in their companies on major projects and don't need additional project experience at Brown. What is most important for them is to take additional courses to extend their expertise in their areas of interest. These students, rather than complete a project at Brown, may elect to take two such courses instead.
A Master's degree normally requires three to four semesters of full-time study, depending upon one's preparation. One is considered a full-time student if one takes at least two courses per semester.