The computer science master is designed for students who have an undergraduate degree (or minor) in computer science, as well as those who have a strong background in a field in which computers are applied, such as engineering, science, or business. You’ll apply theoretical principles underlying computer science, ensuring you acquire the intellectual tools necessary to keep up-to-date in this rapidly evolving discipline. With focused course work in areas such as computer graphics and visualization, data management, distributed systems, intelligent systems, programming languages and tools, and security, you’ll be prepared for career advancement in a range of areas.
The program consists of a core curriculum, a diverse set of clusters, and many additional electives. The clusters provide students with the opportunity to obtain depth in a computer science discipline. The electives add the necessary breadth of knowledge required by industry. This combination prepares our graduates to engineer modern computing systems and contribute to all aspects of systems life cycles.
Clusters are offered in a variety of areas, including computer graphics and visualization, data management, distributed systems, intelligent systems, programming languages and tools, security, and theory. Certain pre-approved courses from other departments also may be counted toward the degree.
The program helps students prepare for academic and research careers in computer science or a related discipline. The program is designed for students who have an undergraduate major or minor in computer science as well as those who have a strong background in a field in which computers are applied.
Faculty members in the department are actively engaged in research in artificial intelligence, wireless networks, pattern recognition, computer vision, visualization, data management, combinatorics, and distributed computing systems. There are many opportunities for graduate students to participate in these activities toward thesis or project work and independent study.
Applicants should have a baccalaureate or equivalent degree from an accredited institution and a minimum grade point average of 3.0 (B). RIT undergraduate students in computer science, computational math, biomedical computing, or computer engineering technology may study for both their BS and MS degrees through accelerated programs. Applicants from foreign universities must submit the Test of English as a Foreign Language (a score of at least 213) and Graduate Record Exam scores. GRE scores also can be considered for applicants whose undergraduate grade point average is lower than 3.0.
Plan of study
The program consists of 30 credit hours of course work, which includes one core course, three courses in a cluster, four electives, and a thesis or project. For those choosing to complete a project in place of a thesis, students complete one additional elective. The degree is offered on a full- or part-time basis.
Full-time students take three or four courses per semester and may be able to complete the course work in three semesters. Full-time students who are required to take additional bridge courses may be able to complete the course work in four semesters.
Part-time students take one or two courses per semester and may be able to complete the course work in four to five semesters. The time required to complete a master’s project is one semester. To complete a master’s thesis, two semesters is typical.
Students select three cluster courses from the following areas:
Computer graphics and visualization
The computer graphics and visualization cluster provides the technical foundations for graduate studies in computer graphics and image understanding. Areas for further study include graphics programming, rendering and image synthesis, computer animation and virtual reality, image processing, and analysis, and data visualization.
The data management cluster studies the foundational data management and knowledge discovery challenges prevalent in design, analysis, and organization of data. The courses cover general database issues including database design, database theory, data management, and data mining.
This area studies systems formed from multiple cooperating computers, including the analysis, design, and implementation of distributed systems, distributed middleware, and computer networking protocols, including security.
The intelligent systems cluster encompasses the study of algorithms and architectures that enable effective decision making in complex environments. Courses cover computer vision, robotics, virtual theater, sensor networks, data mining, document recognition, and the theoretical foundations of decision-making (e.g., Markov chains and the properties of voting protocols).
Languages and tools
The languages and tools cluster combines language design and implementation together with architecture and the use of software development tools. Students specializing in this cluster gain a broad understanding of theoretical and applied knowledge.
The security cluster spans topics from networking to cryptography to secure databases. By choosing different domains in which to study security students gain a broad understanding of both theoretical and applied knowledge.
The theory cluster studies the fundamentals of computation, which includes complexity theory to determine the inherent limits of computation, communication, and cryptography and the design and analysis of algorithms to obtain optimal solutions within those limits.
Electives provide a breadth of experience in computer science and applications areas. Students who wish to include courses from departments outside of computer science need prior approval from the graduate program director. Refer to the course descriptions in the departments of computer science, engineering, mathematical sciences, and imaging science for possible elective courses.
Students may choose the thesis or project option as the capstone to the program. Students who choose the project option must register for the Project course (CSCI-788). Students participate in required in-class presentations that are critiqued. A summary project report and public presentation of the student's project (in poster form) occurs at the end of the semester.
- Government (Local, State, Federal)
- Internet and Software
- Electronic and Computer Hardware
Typical Job Titles
- Software Developer
- Software Engineer
- Application Developer
- Database Administrator
- Security Engineer
- System Integration Engineer
Computer Science (thesis option), MS degree, typical course sequence
- CSCI-665 Foundations of Algorithms
- CSCI-790 Computer Science MS Thesis
- Cluster Courses
Computer Science (project option), MS degree, typical course sequence
- CSCI-665 Foundations of Algorithms
- CSCI-788 Computer Science MS Project
- Cluster Courses
To be considered for admission to the MS in computer science, candidates must fulfill the following requirements:
- Complete a graduate application.
- Hold a baccalaureate degree (or equivalent) from an accredited university or college.
- Submit official transcripts (in English) of all previously completed undergraduate and graduate course work.
- Have a minimum cumulative GPA of 3.0 (or equivalent).
- Submit scores from the GRE. Applicants with undergraduate degrees from foreign colleges and universities are required to submit GRE scores. GRE scores from other students may be requested.
- Submit a personal statement of educational objectives outlining the applicant’s research/project interests, career goals, and suitability to the program.
- Submit two letters of recommendation from academic or professional sources.
- International applicants whose native language is not English must submit scores from the TOEFL, IELTS, or PTE. A minimum TOEFL score of 88 (internet-based) is required. A minimum IELTS score of 6.5 is required. The English language test score requirement is waived for native speakers of English or for those submitting transcripts from degrees earned at American institutions.
Applicants must satisfy prerequisite requirements in mathematics (differential and integral calculus, probability and statistics, discrete mathematics, and computer science theory) and computing (experience with a modern high-level language [e.g., C++, Java], data structures, software design methodology, introductory computer architecture, operating systems, and programming language concepts).