Ph.D. Requirements
Requirements for the Ph.D. program can be found at https://cs.brown.edu/degrees/doctoral/reqs/reqs_phd.2015.pdf
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:
http://www.brown.edu/academics/gradschool/programs/computer-science
Requirements for the Masters Degree
Degree requirements are divided into two components: the Basic Component (six courses) and the Advanced Component (two courses). Students must have a B average for all eight courses. All courses must be taken for a grade (they may not be taken S/NC).
Basic Component
The basic component consists of six courses at the 1000 level or higher. Three of them must be CSCI courses. Three of them may be courses related to Computer Science, but offered in other departments and approved by the DGS (master’s). An (evolving) list of such courses is on our website.
Advanced Component
One of:
- Two instances of CSCI 2980 in which the student completes a master’s project under the direction of a CS faculty member and provides a project report approved by that faculty member. Thus the master’s project represents two semesters of work.
- Two 2000-level CSCI courses other than 2980.
Restrictions
No more than two courses (in the combined Basic and Advanced components) may be Arts/Humanities/Policy courses without advisor and DGS approval. These courses are listed in our website, but currently are: {1250, 1280, 1360, 1370, 1800, 1805, 1860, 1870, 1952B, 1952X, 2002, 2402C, 2952S, 2999A, APMA 1910, DEVL 1810, IAPA 1701A, IAPA 1801, PLCY 1702X}.
No more than three instances of 2980 may be used.
Rationale
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 PhD programs, or they intend to become professional computer scientists and pursue careers in industry. In both cases, some students might 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 might also gain some breadth, taking courses in, perhaps, artificial intelligence. However, some students might feel they’ve obtained sufficient breadth from their undergraduate studies, and feel the need to take courses only in their areas of specialization. Thus, while we suggest to students that they should explore both depth in a particular area as well as breadth in a broad collection of areas, we allow them to take whatever collection of CS courses they (and their advisors) feel serves their needs.
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 PhD 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.
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 an internship, 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 1040 | The Basics of Cryptographic Systems | 1 |
CSCI 1230 | Introduction to Computer Graphics * | 1 |
CSCI 1234 | Computer Graphics Capstone | .5 |
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 | Interaction Design | 1 |
CSCI 1310 | Fundamentals of Computer Systems | 1 |
CSCI 1330 | Computer Systems | 1 |
CSCI 1340 | Introduction to Software Engineering | 1 |
CSCI 1360 | Human Factors in Cybersecurity | 1 |
CSCI 1380 | Distributed Computer Systems | 1 |
CSCI 1420 | Machine Learning | 1 |
CSCI 1430 | Computer Vision | 1 |
CSCI 1440 | Algorithmic Game Theory | 1 |
CSCI 1460 | Computational Linguistics | 1 |
CSCI 1470 | Deep Learning | 1 |
CSCI 1510 | Introduction to Cryptography and Computer Security | 1 |
CSCI 1515 | Applied Cryptography | 1 |
CSCI 1550 | Probabilistic Methods in Computer Science | 1 |
CSCI 1570 | Design and Analysis of Algorithms | 1 |
CSCI 1600 | Real-Time and Embedded Software | 1 |
CSCI 1620 | Computer Systems Security Lab | 0.5 |
CSCI 1650 | Software Security and Exploitation | 1 |
CSCI 1660 | Introduction to Computer Systems Security * | 1 |
CSCI 1670 | Operating Systems * | 1 |
CSCI 1680 | Computer Networks | 1 |
CSCI 1690 | Operating Systems Laboratory | 0.5 |
CSCI 1710 | Logic for Systems | 1 |
CSCI 1730 | Design and Implementation of Programming Languages | 1 |
CSCI 1760 | Multiprocessor Synchronization | 1 |
CSCI 1800 | Cybersecurity and International Relations | 1 |
CSCI 1805 | Computers, Freedom and Privacy | 1 |
CSCI 1810 | Computational Molecular Biology | 1 |
CSCI 1860 | Cybersecurity Law and Policy | 1 |
CSCI 1870 | Cybersecurity Ethics | 1 |
CSCI 1880 | Introduction to Computer Security | 1 |
CSCI 1950N | 2D Game Engines | 1 |
CSCI 1950U | Topics in 3D Game Engine Development | 1 |
CSCI 1951A | Data Science | 1 |
CSCI 1951C | Designing Humanity Centered Technology | 1 |
CSCI 1951L | Blockchains and Cryptocurrencies | 1 |
CSCI 1951T | Surveying VR Data Visualization Software for Research | 1 |
CSCI 1951X | Formal Proof and Verification | 1 |
CSCI 1951Z | Fairness in Automated Decision Making | 1 |
CSCI 1952Q | Algorithmic Aspects of Machine Learning | 1 |
CSCI 1952X | Contemporary Digital Policy and Politics | 1 |
CSCI 1952Y | Computer Architecture | 1 |
CSCI 1952Z | Robots as a Medium: Creating Art with Teams of Robots | 1 |
CSCI 2002 | Privacy and Personal Data Protection | 1 |
CSCI 2230 | Computer Graphics | 1 |
CSCI 2240 | Interactive Computer Graphics | 1 |
CSCI 2270 | Topics in Database Management | 1 |
CSCI 2340 | Software Engineering | 1 |
CSCI 2370 | Interdisciplinary Scientific Visualization | 1 |
CSCI 2390 | Privacy-Conscious Computer Systems | 1 |
CSCI 2440 | Advanced Algorithmic Game Theory | 1 |
CSCI 2470 | Deep Learning | 1 |
CSCI 2540 | Advanced Probabilistic Methods in Computer Science | 1 |
CSCI 2660 | Computer Systems Security | 1 |
CSCI 2670 | Operating Systems | 1 |
CSCI 2810 | Advanced Computational Molecular Biology | 1 |
CSCI 2840 | Advanced Algorithms in Computational Biology and Medical Bioinformatics | 1 |
CSCI 2951E | Topics in Computer Systems Security | 1 |
CSCI 2951I | Computer Vision for Graphics and Interaction | 1 |
CSCI 2951O | Foundations of Prescriptive Analytics | 1 |
CSCI 2951U | Topics in Software Security | 1 |
CSCI 2951X | Reintegrating AI | 1 |
CSCI 2952G | Deep Learning in Genomics | 1 |
CSCI 2952N | Advanced Topics in Deep Learning | 1 |
CSCI 2952O | A Practical Introduction to Advanced 3D Robot Perception | 1 |
CSCI 2952Q | Robust Algorithms for Machine Learning | 1 |
CSCI 2952R | Systems Transforming Systems | 1 |
CSCI 2952S | Topics in Cyber and Digital Policy | 1 |
CSCI 2999A | Cybersecurity Management Within Business, Government, and Non-Profit Organizations | 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.