The department of Computer Science offers two graduate degrees in computer science. The Master of Science (Sc.M.) degree for those who wish to improve their professional competence in computer science or to prepare for further graduate study, and the Doctor of Philosophy (Ph.D) degree.
For more information on admission, please visit the following website:
Requirements for the Ph.D. program can be found at https://cs.brown.edu/degrees/doctoral/reqs/reqs_phd.2015.pdf
Requirements for the Masters Degree
The requirements consist of a basic component and an advanced component. All courses must be at the 1000 level or higher. All courses must be completed with a grade of B or better.
The courses in student's program must be approved by the director of the Master's program (as well as by the student's advisor).
The basic component consists of six courses. None of these courses may be reading and research courses such as CSCI 1970 and CSCI 2980.
The six courses are chosen as follows:
- Two must be CS courses that form a coherent major. Examples of such pairs are listed at http://cs.brown.edu/degrees/undergrad/concentrations/approvedpairs/.
- One must be a CS course (the "breadth" course) that does not form a pair (according to the approved-pairs web page) with either of the courses chosen as the major.
- The three additional courses must be in CS or related areas.
The advanced component requires the student to complete one of the following five options. Reading and research courses (such as CSCI 2980) may be used as part of options 1, 2, 3, and 4, but not as part of options 5 and 6. An “advanced course,” as used below, is either a 2000-level CS courses or a 1000-level CS courses that includes a Master's supplement. Master's supplement are nominally half-credit courses, but students may do the work of these courses without officially registering for them. Examples of such supplements are CSCI 1234 (supplementing 1230), CSCI 1690 (supplementing 1670), and 1729 (supplementing 1730).
“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. They may be full, or part time. A full-time internship must last at least two months but no more than four months. A part-time internship must last at least four months but no more than six months. Normally the internship will be performed between the student's second and third semesters in the program.
The six options are:
- Complete a thesis supervised by her or his advisor and approved by a committee consisting of the advisor and at least one other faculty member.
- Complete a thesis supervised by her or his advisor and approved by a committee consisting of the advisor and at least one other faculty member, and complete an internship.
- Complete a project supervised and approved by her or his advisor.
- Complete a project supervised and approved by her or his advisor, and complete an internship.
- Complete two advanced courses.
- Complete two advanced courses and complete an internship.
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 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.
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 her or his suitability for entering a Ph.D. program.
A student whose goal is to be a professional computer scientist should have some professional experience as part of her or his 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 Computer Science courses before embarking on an internship. Other students, particularly those whose undergraduate degrees were at Brown, will 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 of of options 2, 4, and 6, 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 ensure 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.
A Master's degree normally requires three to four semesters of full-time study, depending upon one's preparation.
|CSCI 1010||Theory of Computation||1|
|CSCI 1230||Introduction to Computer Graphics *||1|
|CSCI 1250||Introduction to Computer Animation||1|
|CSCI 1260||Compilers and Program Analysis||1|
|CSCI 1270||Database Management Systems||1|
|CSCI 1280||Intermediate 3D Computer Animation||1|
|CSCI 1300||User Interfaces and User Experience||1|
|CSCI 1310||Fundamentals of Computer Systems||1|
|CSCI 1320||Creating Modern Web Applications||1|
|CSCI 1370||Virtual Reality Design for Science||1|
|CSCI 1380||Distributed Computer Systems||1|
|CSCI 1410||Artificial Intelligence||1|
|CSCI 1420||Machine Learning||1|
|CSCI 1430||Computer Vision||1|
|CSCI 1450||Probability for Computing and Data Analysis||1|
|CSCI 1460||Computational Linguistics||1|
|CSCI 1510||Introduction to Cryptography and Computer Security||1|
|CSCI 1550||Probabilistic Methods in Computer Science||1|
|CSCI 1570||Design and Analysis of Algorithms||1|
|CSCI 1590||Introduction to Computational Complexity||1|
|CSCI 1600||Real-Time and Embedded Software||1|
|CSCI 1610||Building High-Performance Servers||1|
|CSCI 1660||Introduction to Computer Systems Security *||1|
|CSCI 1670||Operating Systems *||1|
|CSCI 1680||Computer Networks||1|
|CSCI 1730||Design and Implementation of Programming Languages||1|
|CSCI 1760||Multiprocessor Synchronization||1|
|CSCI 1780||Parallel and Distributed Programming||1|
|CSCI 1800||Cybersecurity and International Relations||1|
|CSCI 1810||Computational Molecular Biology||1|
|CSCI 1820||Algorithmic Foundations of Computational Biology||1|
|CSCI 1950Y||Logic for Systems||1|
|CSCI 1951A||Data Science||1|
|CSCI 1951C||Designing Humanity Centered Robots||1|
|CSCI 1951G||Optimization Methods in Finance||1|
|CSCI 1951J||Interdisciplinary Scientific Visualization||1|
|CSCI 2240||Interactive Computer Graphics||1|
|CSCI 2270||Topics in Database Management||1|
|CSCI 2310||Human Factors and User Interface Design||1|
|CSCI 2330||Programming Environments||1|
|CSCI 2340||Software Engineering||1|
|CSCI 2370||Interdisciplinary Scientific Visualization||1|
|CSCI 2410||Statistical Models in Natural-Language Understanding||1|
|CSCI 2420||Probabilistic Graphical Models||1|
|CSCI 2500A||Advanced Algorithms||1|
|CSCI 2500B||Optimization Algorithms for Planar Graphs||1|
|CSCI 2510||Approximation Algorithms||1|
|CSCI 2540||Advanced Probabilistic Methods in Computer Science||1|
|CSCI 2550||Parallel Computation: Models, Algorithms, Limits||1|
|CSCI 2590||Advanced Topics in Cryptography||1|
|CSCI 2730||Programming Language Theory||1|
|CSCI 2750||Topics in Parallel and Distributed Computing||1|
|CSCI 2820||Advanced Algorithms in Computational Biology and Medical Bioinformatics||1|
|CSCI 2950K||Special Topics in Computational Linguistics||1|
|CSCI 2950T||Topics in Distributed Databases and Systems||1|
|CSCI 2950U||Special Topics on Networking and Distributed Systems||1|
|CSCI 2951E||Topics in Computer Systems Security||1|
|CSCI 2951F||Learning and Sequential Decision Making||1|
|CSCI 2951K||Topics in Collaborative Robotics||1|
|CSCI 2951M||Advanced Algorithms Seminar||1|
|CSCI 2951N||Advanced Algorithms in Computational Biology||1|
|CSCI 2951O||Foundations of Prescriptive Analytics||1|
|CSCI 2951S||Distributed Computing through Combinatorial Topology||1|
|CSCI 2951T||Data-Driven Computer Vision||1|
|CSCI 2951U||Topics in Software Security||1|
|* Students may arrange with the instructor to receive 2000 level credit for additional coursework in CSCI 1230, 1660 or 1670|
Concurrent ScB (NUS) and ScM in Computational Biology (Brown University)
The School of Computing at National University of Singapore and The Department of Computer Science at Brown have established a concurrent Bachelor’s and Master’s degree program in Computational Biology. After having first completed four years of under- graduate study at National University of Singapore (NUS), qualified students will attend Brown University to complete their fifth and final year of study in computational biology. After the successful completion of requirements set forth by both universities, the students will simultaneously earn both their Sc.B. and Sc.M. degrees. The Sc.B will be awarded by the National University of Singapore, while the Sc.M. is awarded by Brown University.