Computer Science

Study mode:On campus Study type:Full-time Languages: English
Foreign:$ 54.7 k / Year(s) Deadline: Mar 15, 2025
61 place StudyQA ranking:3475 Duration:2 years

Photos of university / #brownu

The Department of Computer Science's master's program is suitable both for those who wish to improve their professional competence in computer science and for those who seek to prepare for further graduate study.

The program offers three different tracks (thesis, project, and coursework-only) that enable individuals to customize their studies to match their particular ambitions and experiences. Computer-science classes at Brown are taught by the same professors who have earned our department's reputation for innovative education and research. The department has expertise in a variety of areas of computer science, including algorithms and data structures, artificial intelligence, automated reasoning and planning, brain-machine interfaces, computational biology, computer security, cryptography, database management systems, distributed systems and ubiquitous computing, electronic commerce and agents, graphics and visualization, human-computer interaction, nanotechnology, natural language processing, networking, operating systems, operations research and constraint programming, programming languages, robotics and computer vision, software engineering, and stream processing.

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

Basic Component

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.

Advanced Component

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:

  1. 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.
  2. 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.
  3. Complete a project supervised and approved by her or his advisor.
  4. Complete a project supervised and approved by her or his advisor, and complete an internship.
  5. Complete two advanced courses.
  6. Complete two advanced courses and complete an internship.

Rationale

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 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.

Some of our students are pursuing a Master's on a part-time basis while concurrently working in the computer 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 one's first semester, two courses one's second semester, three courses one's third semester, and one course one's fourth semester.

Courses

CSCI0020 (CS002) The Digital World
CSCI0030 (CSCI0931) Introduction to Computation for the Humanities and Social Sciences
CSCI0040 (CS004) Introduction to Scientific Computing and Problem Solving
CSCI0080   A First Byte of Computer Science
CSCI0090-A (CS009-3) Building a Web Application
CSCI0090-B (CS009-1) Computers and Human Values
CSCI0090-C (CS009-2) Talking with Computers
CSCI0100   Data Fluency for All
CSCI0150 (CS015) Introduction to Object-Oriented Programming and Computer Science
CSCI0160 (CS016) Introduction to Algorithms and Data Structures
CSCI0170 (CS017) CS: An Integrated Introduction
CSCI0180 (CS018) CS: An Integrated Introduction
CSCI0190 (CS019) Accelerated Introduction to Computer Science
CSCI0220 (CS022) Introduction to Discrete Structures and Probability
CSCI0310 (CS031) Introduction to Computer Systems
CSCI0320 (CS032) Introduction to Software Engineering
CSCI0330   Introduction to Computer Systems
CSCI0360 (CS036) Introduction to Systems Programming
CSCI0450   Introduction to Probability and Computing
CSCI0510 (CS051) Models of Computation
CSCI0530   Directions: The Matrix in Computer Science
CSCI0920 (CS092) Educational Software Seminar
CSCI0931   Introduction to Computation for the Humanities and Social Sciences
CSCI1010 (CSCI0510) Theory of Computation
CSCI1230 (CS123) Computer Graphics
CSCI1234   Computer Graphics Lab
CSCI1250 (CS125) Introduction to Computer Animation
CSCI1260 (CS126) Compilers and Program Analysis
CSCI1270 (CS127) Database Management Systems
CSCI1280 (CS128) Intermediate 3D Computer Animation
CSCI1290 (CSCI1950-G) Computational Photography
CSCI1300   User Interfaces and User Experience
CSCI1310 (CSCI1950-S) Fundamentals of Computer Systems
CSCI1320   Creating Modern Web Applications
CSCI1340 (CS196-2) Innovating Game Development
CSCI1370 (CS137) Virtual Reality Design for Science
CSCI1380 (CS138) Distributed Computer Systems
CSCI1410 (CS141) Applied Artifical Intelligence
CSCI1420 (CSCI1950-F) Machine Learning
CSCI1430 (CS143) Computer Vision
CSCI1450 (CSCI0450) Probability and Computing
CSCI1460 (CS146) Computational Linguistics
CSCI1480 (CS148) Building Intelligent Robots
CSCI1490 (CS149) Introduction to Combinatorial Optimization
CSCI1510 (CS151) Introduction to Cryptography and Computer Security
CSCI1550 (CS155) Probabilistic Methods in Computer Science
CSCI1570 (CS157) Design and Analysis of Algorithms
CSCI1580   Information Retrieval and Web Search
CSCI1590 (CS159) Introduction to Computational Complexity
CSCI1600 (CS160) Real-time and Embedded Software
CSCI1610 (CS161) Building High-Performance Servers
CSCI1620   Computer Systems Security Lab
CSCI1660 (CS166) Computer Systems Security
CSCI1670 (CS167) Operating Systems
CSCI1680 (CS168) Computer Networks
CSCI1690 (CS169) Operating Systems Laboratory
CSCI1729   Programming Languages Lab
CSCI1730 (CS173) Design and Implementation of Programming Languages
CSCI1760 (CS176) Multiprocessor Synchronization
CSCI1780 (CS178) Parallel and Distributed Programming
CSCI1800 (CSCI1950-P) Cybersecurity and International Relations
CSCI1810 (CS181) Computational Molecular Biology
CSCI1820 (CSCI1950-L) Algorithmic Foundations of Computational Biology
CSCI1850 (CS185) Information Theory
CSCI1900 (CS190) csciStartup
CSCI1950-C   Advanced Programming for Digital Art and Literature
CSCI1950-E   Human-Robot Interaction Seminar
CSCI1950-F (CS195-5) Intro. to Machine Learning
CSCI1950-G (CS195-G) Computational Photography
CSCI1950-H   Computational Topology
CSCI1950-I   Designing, Developing and Evaluating User Interfaces
CSCI1950-J   Introduction to Computational Geometry
CSCI1950-L (CS196-1) Algorithmic Foundations of Computational Biology
CSCI1950-N   2D Game Engines
CSCI1950-P   Cybersecurity and International Relations
CSCI1950-Q   Programming for the Humanities and Social Sciences
CSCI1950-R (CS195R) Compiler Practice
CSCI1950-S   Fundamentals of Computer Systems
CSCI1950-T   Advanced Animation Production
CSCI1950-U   Topics in 3D Game Engine Development
CSCI1950-V   Advanced GPU Programming
CSCI1950-W   Topics in Data Science
CSCI1950-X   Software Foundations
CSCI1950-Y   Logic for Systems
CSCI1950-Z   Computational Methods for Biology
CSCI1951-A   Data Science
CSCI1951-B   Virtual Citizens or Subjects? The Global Battle Over Governing Your Internet
CSCI1951-C   Designing Humanity Centered Robots
CSCI1951-E   Computer Systems Security: Principles and Practice
CSCI1951-F   Computers, Freedom and Privacy: Current Topics in Law and Policy
CSCI1951-G   Optimization Methods in Finance
CSCI1951-H   Software Security and Exploitation
CSCI1951-J   Interdisciplinary Scientific Visualization
CSCI1970 (CS193/4) Individual Independent Study
CSCI1970-17 (CS194-17) Software Transactional Memory
CSCI1971 (CSCI1950N) Independent Study in 2D Game Engines
CSCI1972 (CSCI1950-U) Topics in 3D Game Engine Development
CSCI2240 (CS224) Interactive Computer Graphics
CSCI2270 (CS227) Topics in Database Management
CSCI2300 (CSCI2951-L) Human-Computer Interaction Seminar
CSCI2310 (CS231) Human Factors and User Interface Design
CSCI2330 (CS233) Programming Environments
CSCI2340 (CS234) Software Engineering
CSCI2370 (CS237) Interdisciplinary Scientific Visualization
CSCI2410 (CS241) Statistical Models in Natural-Language Understanding
CSCI2420   Probabilistic Graphical Models
CSCI2440 (CS244) Topics in Game-Theoretic Artificial Intelligence
CSCI2500-A (CS250) Advanced Algorithms
CSCI2500-B (CS250) Optimization Algorithms for Planar Graphs
CSCI2510 (CS251) Approximation Algorithms
CSCI2520 (CS252) Computational Geometry
CSCI2531   Internet and Web Algorithms
CSCI2540 (CS254) Advanced Probabilistic Methods in Computer Science
CSCI2550 (CS255) Parallel Computation: Models, Algorithms, Limits
CSCI2560 (CS256) Advanced Complexity
CSCI2570 (CS257) Introduction to Nanocomputing
CSCI2580 (CS258) Solving Hard Problems in Combinatorial Optimization: Theory and Systems
CSCI2590 (New) Advanced Topics in Cryptography
CSCI2730 (CS273) Programming Language Theory
CSCI2750 (CS275) Topics in Parallel & Distributed Computing
CSCI2820 (CSCI2950-L) Medical Bioinformatics
CSCI2950-C (CS296-5) Algorithms for Cancer Genomics
CSCI2950-E (CS296-9) Stochastic Optimization
CSCI2950-G (CS296-2) Large-Scale Networked Systems
CSCI2950-J   Cognition, Human-Computer Interaction and Visual Analysis
CSCI2950-K   Special Topics in Computational Linguistics
CSCI2950-L (CS295-2) Medical Bioinformatics: Disease Associations, Protein Folding and Immunogenomics
CSCI2950-O (CS295-7) Topics in Brain-Computer Interfaces
CSCI2950-P   Special Topics in Machine Learning
CSCI2950-Q (CS296-4) Topics in Computer Vision
CSCI2950-R   Special Topics in Advanced Algorithms
CSCI2950-T (CS295-11) Topics in Distributed Databases & Systems
CSCI2950-U   Special Topics on Networking and Distributed Systems
CSCI2950-V   Topics in Applied Cryptography
CSCI2950-W   Online Algorithms
CSCI2950-X (CS296-1) Topics in Programming Languages & Systems
CSCI2950-Z (CS296-3) Robot Learning and Autonomy
CSCI2951-A   Robots for Education
CSCI2951-B   Data-Driven Vision and Graphics
CSCI2951-C   Autonomous Agents and Computational Market Design
CSCI2951-D   Topics in Information Retrieval and Web Search
CSCI2951-E   Topics in Computer System Security
CSCI2951-F   Learning and Sequential Decision Making
CSCI2951-G   Computational Protein Folding
CSCI2951-H   Algorithms for Big Data
CSCI2951-I   Computer Vision for Graphics and Interaction
CSCI2951-J   Topics in Advanced Algorithmics: Algorithmic Game Theory, 3D Computational Geometry, Quantum Computing
CSCI2951-K   Topics in Grounded Language for Robotics
CSCI2951-L   Human-Computer Interaction Seminar
CSCI2951-M   Advanced Algorithms Seminar
CSCI2951-N   Advanced Algorithms in Computational Biology
CSCI2951-O   Foundations of Prescriptive Analytics
CSCI2951-P   Human-Robot Interaction Seminar
CSCI2951-Q   Topics in Advanced Algorithms
CSCI2951-R   Personal Informatics Seminar
CSCI2951-S   Distributed Computing through Combinatorial Topology
CSCI2951-T   Data-Drive Computer Vision
CSCI2951-U   Topics in Software Security
CSCI2951-V   Systems for Interactive Data Exploration
CSCI2951-Y   Special Topics in Formal Semantics and Notional Machines
CSCI2955   The Design and Analysis of Trading Agents
CSCI2956-F   Machine Learning Reading Group
CSCI2980 (CS297/8) Reading and Research
ENGN2502   3D Photography
ENGN2520 (CSCI1950-F) Pattern Recognition and Machine Learning
XList BIOL 1430   Computational Theory of Molecular Evolution
XList ENGN 0931   Internet of Everything
XList ENGN2911-I   3D Photography and Geometry Processing

Requirements

  • Personal Statement
  • Transcripts 
  • 3 Letters of Recommendation 
  • GRE 
  • TOEFL/IELTS 
  • A non-refundable fee of $75 is charged for processing each application received by the Graduate School. This fee must be paid when the application is submitted.
  • Graduates of non-U.S. colleges and universities who have completed the equivalent of a U.S. bachelor's degree may apply for admission to the Brown University Graduate School. Along with the application, international applicants must provide the Graduate School with original documents or official certified copies indicating the nature and scope of their educational program. 
Similar programs:
Study mode:On campus Languages: English
Foreign:$ 68.8 k / Year(s)
Deadline: Jan 1, 2025 501–600 place StudyQA ranking: 5322
Study mode:On campus Languages: English
Local:$ 48.9 k / Year(s) Foreign:$ 48.9 k / Year(s)
Deadline: Dec 15, 2024 9 place StudyQA ranking: 3375
Study mode:On campus Languages: English
Local:$ 26.8 k / Year(s) Foreign:$ 37.5 k / Year(s)
Deadline: Jan 15, 2025 201–250 place StudyQA ranking: 3567
Study mode:On campus Languages: English
Foreign:$ 32.9 k / Year(s)
Deadline: Jan 15, 2025 251–300 place StudyQA ranking: 3695
Study mode:On campus Languages: English
Local:$ 30.4 k / Year(s) Foreign:$ 30.4 k / Year(s)
Deadline: Jan 15, 2025 StudyQA ranking: 3416
Study mode:On campus Languages: English
Foreign:$ 34.3 k / Year(s)
Deadline: Feb 28, 2025 StudyQA ranking: 3660
Study mode:On campus Languages: English
Foreign:$ 50.8 k / Year(s)
Deadline: Feb 1, 2025 166 place StudyQA ranking: 4107