Computer Science Master of science degree

81a88c54-918c-403f-9fff-169ff7db16ac | 90559

Overview

Computer graphics and visualization, data management, and intelligent systems are just a few topics you’ll explore while developing the skills to keep up in this ever-changing field.


The computer science masters 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.

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. 

Clusters

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.

Data manangement

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.

Distributed systems

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.

Intelligent systems

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

Security

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.

Theory

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

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

Master's thesis/project

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.

 

Industries


  • Aerospace

  • Insurance

  • Government (Local, State, Federal)

  • Internet and Software

  • Defense

  • Electronic and Computer Hardware

  • Manufacturing

Typical Job Titles

Software Developer Software Engineer
Application Developer Programmer/Analyst
Database Administrator Security Engineer
System Integration Engineer

95%

outcome rate of graduates

$95k

median first-year salary of graduates

Latest News

  • April 23, 2019

    Three researchers sit at a desk on computers.

    RIT cyber fighters go deep on Tor security

    Recognizing that the internet is not always secure, millions of people are turning to the Tor anonymity system as a way to browse the World Wide Web more privately. However, Tor has been found to have its own vulnerabilities. This has a team of faculty and students from RIT’s Center for Cybersecurity researching the extent of the problem and ways to address it.

  • May 1, 2018

    The winning RIT Dota 2 team poses for a photo with their trophy.

    RIT Dota 2 team wins Grand Championship

    RIT is securing its legacy as one of the best colleges in esports after winning its first Collegiate Starleague Dota 2 Grand Finals Championship April 28. The student team bested a bracket of North America’s 32 top universities to take home the $10,000 grand prize.

Curriculum

Computer science (thesis option), MS degree, typical course sequence

Course Sem. Cr. Hrs.
CSCI-665
Foundations of Algorithms
This course provides an introduction to the design and analysis of algorithms. It covers a variety of classical algorithms and their complexity and will equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms. Note: students who take CSCI-261 or CSCI-264 may not take CSCI-665 for credit.
3
CSCI-790
Thesis
Thesis capstone of the master's degree program. Student must submit an acceptable thesis proposal in order to enroll. It is expected that the work would lead to a paper of the caliber of those generally acceptable to a national conference.
6
 
Cluster Courses
9
 
Elective Courses
12
Total Semester Credit Hours
30

Computer science (project option), MS degree, typical course sequence

Course Sem. Cr. Hrs.
CSCI-665
Foundations of Algorithms
This course provides an introduction to the design and analysis of algorithms. It covers a variety of classical algorithms and their complexity and will equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms. Note: students who take CSCI-261 or CSCI-264 may not take CSCI-665 for credit.
3
CSCI-788
Project/Colloquium
Project capstone of the master's degree program. Students select from a set of possible projects and confirm that they have a project adviser. Students enroll in a required colloquium component that meets weekly, during which they present information, related to their projects. Projects culminate with delivery of a final report and participation in a poster session open to the public.
3
 
Cluster Courses
9
 
Elective Courses
15
Total Semester Credit Hours
30
Clusters
Computer graphics and visualization
Course
CSCI-610
Foundations of Computer Graphics*
Foundations of Computer Graphics is a study of the hardware and software principles of interactive raster graphics. Topics include an introduction to the basic concepts, 2-D and 3-D modeling and transformations, viewing transformations, projections, rendering techniques, graphical software packages and graphics systems. The course will focus on rasterization techniques and emphasize the hardware rasterization pipeline including the use of hardware shaders. Students will use a standard computer graphics API to reinforce concepts and study fundamental computer graphics algorithms. Programming projects and a survey of the current graphics literature will be required. Note: students who complete CSCI-510 may not take CSCI-610 for credit.
CSCI-711
Global Illumination
This course will investigate the theory of global illumination (GI) in computer image synthesis. Seminal computer graphics papers will be used to explore the various components of the GI pipeline and explain how the path of light in a virtual scene can be simulated and used to create photorealistic imagery. The course will emphasize the theory behind various GI rendering tools and libraries available for image synthesis. The student will put theory into practice via a set of programming assignments and a capstone project. Topics will include light and color, three-dimensional scene specification, camera models, surface materials and textures, GI rendering methods, procedural shading, tone reproduction, and advanced rendering techniques. Readings and summaries of Computer Graphics literature will be required.
CSCI-712
Computer Animation: Algorithms and Techniques
This course takes a look at computer animation from a programmer's perspective. It will investigate the theory, algorithms and techniques for describing and programming motion for virtual 3D worlds. Approaches that will be explored include keyframing systems; kinematics, motion of articulated figures, procedural and behavioral systems, and the use of motion capture data. This course is a programming-oriented course with major deliverables including the implementation of techniques presented in lecture as well as a final project concentrating on an area of a student's choice. Students enrolling in this course are expected to have proficiency in the use of at least one 3D API (e.g. OpenGL, DirectX, Java3D). Readings and summaries of Computer Graphics literature will be required. Offered every other year.
CSCI-713
Applied Perception in Graphics and Visualization
The goal of this course is to introduce students to the field of applied perception in graphics and visualization and demonstrate how it has contributed to the development of better display systems and computer graphics rendering techniques. The delivery of the course material will be done primarily through lectures with biweekly programming assignments based upon the techniques presented in class. Students will also be exposed to a wide range of technical papers and be expected to make classroom presentations on selected topics in the field of applied perception in graphics and visualization.
CSCI-714
Scientific Visualization
Visualizations of scientific data are helpful in order to understand complex, n-dimensional behavior of simulations. This course covers techniques that are needed to visualize n-dimensional data sets produced by real scientific simulations. Topics include: Visualization design, discrete visualization techniques, scalar and volume visualization techniques and perception of visualizations. Additionally topics such as distributed file systems, specialized file systems and distributed computing needed in order to create the visualizations will be covered. A team project and presentations are required. Course offered every other year.
CSCI-715
Applications in Virtual Reality
This course will investigate the application of virtual reality software and technology within a given domain. Working in sets of technical teams, students will collectively investigate and solve a large-scale visualization task within that problem domain. Focus of individual student teams may include (but is not limited to) distributed VR framework, viewing applications, interaction with VR devices / displays, and audio in virtual environments. Students will be required to read and summarize selected articles from VR literature, as well as papers specific to the problem domain being investigated, to assist in making design decisions. A report or survey of one aspect of using a virtual reality system within the given domain is also required. Students should have a strong programming background and a proficiency in a 3D API (OpenGL, DirectX, or Java3D). Students with expertise in distributed systems and an interest in Graphics or virtual reality are also encouraged to register. Offered every other year.
CSCI-716
Computational Geometry
Computational Geometry is a subfield of algorithm theory that involves the design and analysis of efficient algorithms for problems involving geometric input and output. In this course the focus will be largely on problems in 2-dimensional space (lines, line segments, polygons, planes, polyhedral, curved objects, etc.) with occasional inclusion of higher dimensional problems. There are many fields of computer science that deal with solving problems of a geometric nature. These include computer graphics, computer vision and image processing, robotics, computer-aided design and manufacturing, computational fluid-dynamics, and geographic information systems, to name a few. One of the goals of this computational geometry course is to provide the basic geometric tools necessary to solve problems in these fields. Note: Programming projects are required.
CSCI-719
Topics in Computer Vision
This course examines current topics in Computer Graphics. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances presented will be identified as belonging to the Computer Graphics and Visualization cluster.
Data manangement
Course
CSCI-620
Introduction to Big Data*
This course provides a broad introduction to the exploration and management of large datasets being generated and used in the modern world. First, practical techniques used in exploratory data analysis and mining are introduced; topics include data preparation, visualization, statistics for understanding data, and grouping and prediction techniques. Second, approaches used to store, retrieve, and manage data in the real world are presented; topics include traditional database systems, query languages, and data integrity and quality. Case studies will examine issues in data capture, organization, storage, retrieval, visualization, and analysis in diverse settings such as urban crime, drug research, census data, social networking, and space exploration. Big data exploration and management projects, a term paper and a presentation are required.
CSCI-621
Database System Implementation
This course provides a broad introduction to database management systems including data modeling, the relational model, and SQL. Database system implementation issues are covered next, where the focus is on data structures and algorithms used to implement database management systems. Topics include physical data organizations, indexing and hashing, query processing and optimization, database recovery techniques, transaction management, concurrency control, and database performance evaluation. Current research topics in database system implementation are also explored. Programming projects, a term paper, and presentations will be required.
CSCI-622
Secure Data Management
This course examines policies, methods and mechanisms for securing enterprise and personal data and ensuring data privacy. Topics include data integrity and confidentiality; access control models; secure database architectures; secure transaction processing; information flow, aggregation, and inference controls; auditing; securing data in contemporary (relational, XML and other NO SQL) database systems; data privacy; and legal and ethical issues in data protection. Programming projects are required.
CSCI-720
Big Data Analytics
This course provides a graduate-level introduction to the concepts and techniques used in data mining. Topics include the knowledge discovery process; prototype development and building data mining models; current issues and application domains for data mining; and legal and ethical issues involved in collecting and mining data. Both algorithmic and application issues are emphasized to permit students to gain the knowledge needed to conduct research in data mining and apply data mining techniques in practical applications. Data mining projects, a term paper, and presentations are required.
CSCI-721
Data Cleaning and Preparation
This course provides an introduction to the concepts and techniques used in preparing data for subsequent data mining. Topics include the knowledge discovery process; data exploration and its role; data extraction, cleaning, integration and transformation; handling numeric, unstructured, text, web, and other forms of data; and ethical issues underlying data preparation and mining. Data cleaning projects, a term paper, and presentations are required.
CSCI-729
Topics in Data Management
This course examines current topics in Data Management. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Data Management cluster, the Security cluster, or both clusters.

* Required course

Distributed systems
Course
CSCI-651
Foundations of Computer Networks*
This course is an introduction to the concepts and principles of computer networks. Students will design and implement projects using application protocols, and will study transport, network, and data link protocols and algorithms. The course also includes an introduction to local area networks, data transmission fundamentals, and network security. Programming projects and reading research papers will be required.
CSCI-652
Distributed Systems
An introduction to the study of distributed systems. The course covers distributed system architectures such as client-server and peer-to-peer, distributed system design issues such as communication, fault tolerance, coordination, and deadlock, distributed system middleware such as remote method invocation (RMI) and tuple space, and the theory of distributed algorithms such as logical clocks and leader election. Programming projects are required.
CSCI-654
Foundations of Parallel Computing
This course is a study of the hardware and software issues in parallel computing. Topics include an introduction to the basic concepts, parallel architectures and network topologies, parallel algorithms, parallel metrics, parallel languages, granularity, applications, parallel programming design and debugging. Students will become familiar with various types of parallel architectures and programming environments.
CSCI-662
Foundations of Cryptography
This course provides an introduction to cryptography, its mathematical foundations, and its relation to security. It covers classical cryptosystems, private-key cryptosystems (including DES and AES), hashing and public-key cryptosystems (including RSA). The course also provides an introduction to data integrity and authentication. Note: students who complete CSCI-462 may not take CSCI-662 for credit.
CSCI-759
Topics in Systems
This course examines current topics in Systems. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Distributed Systems cluster, the Architecture and Operating Systems cluster, the Security cluster, or some combination of these three clusters.
CSCI-762
Advanced Cryptography
This course investigates advanced topics in cryptography. It begins with an overview of necessary background in algebra and number theory, private- and public-key cryptosystems, and basic signature schemes. The course will cover number theory and basic theory of Galois fields used in cryptography; history of primality algorithms and the polynomial-time test of primality; discrete logarithm based cryptosystems including those based on elliptic curves; interactive protocols including the role of zero-knowledge proofs in authentication; construction of untraceable electronic cash on the net; and quantum cryptography, and one or more of digital watermarking, fingerprinting and stenography. Programming will be required.

* Required course

Intelligent systems
Course
CSCI-630
Foundations of Intelligent Systems*
An introduction to the theories and algorithms used to create intelligent systems. Topics include search algorithms (e.g. A*, iterative deepening), logic, planning, knowledge representation, machine learning, and applications from areas such as computer vision, robotics, natural language processing, and expert systems. Programming assignments and oral/written summaries of research papers are required. Note: students who complete CSCI-331 may not not take CSCI-630 for credit.
CSCI-631
Foundations of Computer Vision
An introduction to the underlying concepts of computer vision and image understanding. The course will consider fundamental topics, including image formation, edge detection, texture analysis, color, segmentation, shape analysis, detection of objects in images and high level image representation. Depending on the interest of the class, more advanced topics will be covered, such as image database retrieval or robotic vision. Programming assignments are an integral part of the course. Note: students who complete CSCI-431 may not take CSCI-631 for credit.
CSCI-632
Mobile Robot Computing
This course covers standard and novel techniques for mobile robot programming, including software architectures, reactive motion control, map building, localization and path planning. Other topics may include multiple robot systems, robot vision and non-traditional and dynamic robots. Students will implement various algorithms in simulation as well as on a real robot, and investigate and report on current research in the area. Course offered every other year.
CSCI-633
Biologically Inspired Intelligent Systems
There have been significant advances in recent years in the areas of neuroscience, cognitive science and physiology related to how humans process information. In this course students will focus on developing computational models that are biologically inspired to solve complex problems. A research paper and programming project on a relevant topic will be required. A background in biology is not required.
CSCI-731
Advanced Computer Vision
This course examines advanced topics in computer vision including motion analysis, video processing and model based object recognition. The topics will be studied with reference to specific applications, for example video interpretation, robot control, road traffic monitoring, and industrial inspection. A research paper, an advanced programming project, and a presentation will be required.
CSCI-732
Image Understanding
This course explores the theory and methodologies used to interpret images in terms of semantic content. Techniques from image processing and pattern recognition are extended for the purpose of scene understanding using both a bottom-up and a top-down approach. Topics include human visual perception, knowledge representation, object recognition, contextual classification, scene labeling, constraint propagation, interpretation trees, semantic image segmentation, 3D models and matching, active vision, and reasoning about images. Programming projects are required. Offered every other year.
CSCI-735
Foundations of Intelligent Security Systems
The course will introduce students to the application of intelligent methodologies applications in computer security and information assurance system design. It will review different application areas such as intrusion detection and monitoring systems, access control and biological authentication, firewall structure and design. The students will be required to implement a course project on design of a particular security tool with an application of an artificial intelligence methodology and to undertake research and analysis of artificial intelligence applications in computer security.
CSCI-736
Neural Networks and Machine Learning
The course will introduce students into the current state of artificial neural networks. It will review different application areas such as intrusion detection and monitoring systems, pattern recognition, access control and biological authentication, and their design. The students will be required to conduct research and analysis of existing applications and tools as well as to implement a course programming project on design of a specified application based on neural networks and/or fuzzy rules systems.
CSCI-737
Pattern Recognition
An introduction to pattern classification and structural pattern recognition. Topics include Bayesian decision theory, evaluation, clustering, feature selection, classification methods (including linear classifiers, nearest-neighbor rules, support vector machines, and neural networks), classifier combination, and recognizing structures (e.g. using HMMs and SCFGs). Students will present current research papers and complete programming projects such as optical character recognizers. Offered every other year.
CSCI-739
Topics in Intelligent Systems
This course examines current topics in Intelligent Systems. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Intelligent Systems cluster, the Computational Vision and Acoustics cluster, the Security cluster, or some combination of these three clusters. Course offered every other year.

* Required course

Languages and tools
Course
CSCI-641
Advanced Programming Skills
The goal of this course is to introduce the students to a programming paradigm and an appropriate programming language chosen from those that are currently important or that show high promise of becoming important. A significant portion of the learning curve occurs through programming assignments with exemplary solutions discussed later in class. The instructor will post specifics prior to registration. With the approval of the program coordinator, the course can be taken for credit more than once, provided each instance deals with a different paradigm and language. A term project involving independent investigation is also required. Note: students who complete CSCI-541 may not take CSCI-641 for credit.
CSCI-740
Programming Language Theory
This course is an introduction to the formal study of programming languages, demonstrating important intellectual tools for the precise description of programming languages and investigating the essential features of programming languages using these tools. Topics include: dynamic semantics (such as operational semantics); static semantics (such as type systems); proofs by induction on structures and derivations; formal treatment of essential programming-language features (such as assignment, scope, functions, objects, and threads). Both written and programming assignments will be required.
CSCI-742
Compiler Construction*
This course discusses design and implementation of language processors and translators. Topics include lexical, syntactic, and semantic descriptions, algorithms for analysis tools, and programming techniques, as well as interpreters and code generation for typical computer architectures. Teams of students will be required to design and implement a programming language with nested block structure and data aggregates.
CSCI-746
Software Development Tools
This course investigates and evaluates various software tools used in the development of software. Topics include simple dependency-based tools such as make and ant as well as full-featured integrated development environments. Working with and proposing modeling languages for such tools is an important part of the course. Programming projects will be required.
CSCI-749
Topics in Language and Tools
This course examines current topics in Languages and Tools. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Languages and Tools cluster, the Security cluster, or both clusters.

* Required course

Security
Course
CSCI-622
Secure Data Management
This course examines policies, methods and mechanisms for securing enterprise and personal data and ensuring data privacy. Topics include data integrity and confidentiality; access control models; secure database architectures; secure transaction processing; information flow, aggregation, and inference controls; auditing; securing data in contemporary (relational, XML and other NO SQL) database systems; data privacy; and legal and ethical issues in data protection. Programming projects are required.
CSCI-642
Secure Coding
This course provides an introduction to secure coding including topics such as principles of secure coding, security architectures and design, operational practices and testing, programmatic use of cryptography, and defenses against software exploitation. Other topics include software based fault isolation, type-safe languages, certifying compilers; proof-carrying code, and automated program analysis and program rewriting. Programming projects, presentations, and a term paper will be required.
CSCI-651
Foundations of Computer Networks*
This course is an introduction to the concepts and principles of computer networks. Students will design and implement projects using application protocols, and will study transport, network, and data link protocols and algorithms. The course also includes an introduction to local area networks, data transmission fundamentals, and network security. Programming projects and reading research papers will be required.
CSCI-662
Foundations of Cryptography
This course provides an introduction to cryptography, its mathematical foundations, and its relation to security. It covers classical cryptosystems, private-key cryptosystems (including DES and AES), hashing and public-key cryptosystems (including RSA). The course also provides an introduction to data integrity and authentication. Note: students who complete CSCI-462 may not take CSCI-662 for credit.
CSCI-729
Topics in Data Management
This course examines current topics in Data Management. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Data Management cluster, the Security cluster, or both clusters.
CSCI-734
Foundations of Security Measurement and Evaluation
The course will introduce students into the algorithmic foundations and modern methods used for security evaluation. It will combine a theoretical revision of the methods and models currently applied for computer security evaluation and an investigation of computer security through study of user's practice. The students will be required to complete a few home assignments, to deliver a class presentation, to implement a team project, to lead the team's work and to undertake research on the topic assigned.
CSCI-735
Foundations of Intelligent Security Systems
The course will introduce students to the application of intelligent methodologies applications in computer security and information assurance system design. It will review different application areas such as intrusion detection and monitoring systems, access control and biological authentication, firewall structure and design. The students will be required to implement a course project on design of a particular security tool with an application of an artificial intelligence methodology and to undertake research and analysis of artificial intelligence applications in computer security.
CSCI-739
Topics in Intelligent Systems
This course examines current topics in Intelligent Systems. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Intelligent Systems cluster, the Computational Vision and Acoustics cluster, the Security cluster, or some combination of these three clusters. Course offered every other year.
CSCI-759
Topics in Systems
This course examines current topics in Systems. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Distributed Systems cluster, the Architecture and Operating Systems cluster, the Security cluster, or some combination of these three clusters.
CSCI-762
Advanced Cryptography
This course investigates advanced topics in cryptography. It begins with an overview of necessary background in algebra and number theory, private- and public-key cryptosystems, and basic signature schemes. The course will cover number theory and basic theory of Galois fields used in cryptography; history of primality algorithms and the polynomial-time test of primality; discrete logarithm based cryptosystems including those based on elliptic curves; interactive protocols including the role of zero-knowledge proofs in authentication; construction of untraceable electronic cash on the net; and quantum cryptography, and one or more of digital watermarking, fingerprinting and stenography. Programming will be required.
CSCI-769
Topics in Theory
This course examines current topics in Theory. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Theory cluster, the Security cluster, or both clusters.

* Required course

Theory
Course
CSCI-662
Foundations of Cryptography
This course provides an introduction to cryptography, its mathematical foundations, and its relation to security. It covers classical cryptosystems, private-key cryptosystems (including DES and AES), hashing and public-key cryptosystems (including RSA). The course also provides an introduction to data integrity and authentication. Note: students who complete CSCI-462 may not take CSCI-662 for credit.
CSCI-664
Computational Complexity
This course provides an introduction to computational complexity theory. It covers the P=NP problem, time and space complexity, randomization, approximability, and relativization. Course offered every other year.
CSCI-716
Computational Geometry
Computational Geometry is a subfield of algorithm theory that involves the design and analysis of efficient algorithms for problems involving geometric input and output. In this course the focus will be largely on problems in 2-dimensional space (lines, line segments, polygons, planes, polyhedral, curved objects, etc.) with occasional inclusion of higher dimensional problems. There are many fields of computer science that deal with solving problems of a geometric nature. These include computer graphics, computer vision and image processing, robotics, computer-aided design and manufacturing, computational fluid-dynamics, and geographic information systems, to name a few. One of the goals of this computational geometry course is to provide the basic geometric tools necessary to solve problems in these fields. Note: Programming projects are required.
CSCI-740
Programming Language Theory
This course is an introduction to the formal study of programming languages, demonstrating important intellectual tools for the precise description of programming languages and investigating the essential features of programming languages using these tools. Topics include: dynamic semantics (such as operational semantics); static semantics (such as type systems); proofs by induction on structures and derivations; formal treatment of essential programming-language features (such as assignment, scope, functions, objects, and threads). Both written and programming assignments will be required.
CSCI-749
Topics in Language and Tools
This course examines current topics in Languages and Tools. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Languages and Tools cluster, the Security cluster, or both clusters.
CSCI-761
Topics in Advanced Algorithms
This course focuses on advanced algorithms and data structures in a specialized area of computer science or in a specific scientific domain. Both practical and theoretical aspects of algorithms will be explored to provide coverage of the state of the art and shortcomings of computing in the specialized area. This includes proofs of correctness and complexity analysis of the algorithms. Students will write a term paper that explores the current state of research in the area or reports on the student's implementation and experiments with algorithms for a chosen problem. Students will also be required to make presentations. The instructor will post the specifics of each course offering before the registration. With the approval of the program coordinator, this course can be taken for credit more than once, provided each instance concerns a different specialized area or domain.
CSCI-762
Advanced Cryptography
This course investigates advanced topics in cryptography. It begins with an overview of necessary background in algebra and number theory, private- and public-key cryptosystems, and basic signature schemes. The course will cover number theory and basic theory of Galois fields used in cryptography; history of primality algorithms and the polynomial-time test of primality; discrete logarithm based cryptosystems including those based on elliptic curves; interactive protocols including the role of zero-knowledge proofs in authentication; construction of untraceable electronic cash on the net; and quantum cryptography, and one or more of digital watermarking, fingerprinting and stenography. Programming will be required.
CSCI-769
Topics in Theory
This course examines current topics in Theory. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Theory cluster, the Security cluster, or both clusters.

Admission Requirements

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.

Prerequisites

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

Learn about admissions and financial aid 

Additional Info

Bridge courses

If an applicant lacks any prerequisites, bridge courses may be recommended to provide students with the required knowledge and skills needed for the program. If any bridge courses are indicated in a student's plan of study, the student may be admitted to the program on the condition that they successfully complete the recommended bridge courses with a grade of B (3.0) or better (courses with lower grades must be repeated). Generally, formal acceptance into the program is deferred until the applicant has made significant progress in this additional course work. Bridge program courses are not counted as part of the 30 credit hours required for the master's degree. During orientation, bridge exams are conducted. These exams are the equivalent to the finals of the bridge courses. Bridge courses will be waived if the exams are passed.

Faculty

Faculty members in the department are actively engaged in research in the areas of artificial intelligence, computer networking, pattern recognition, computer vision, graphics, visualization, data management, theory, and distributed computing systems. There are many opportunities for graduate students to participate in these activities toward thesis or project work and independent study.

Facilities

The computer science department provides extensive facilities that represent current technology, including:

  • a graduate lab with more than 15 Mac’s and a graduate library;
  • specialized labs in graphics, computer vision, pattern recognition, security, database, and robotics; and
  • six general purpose computing labs with more than 100 workstations running Linux, Windows, and OS X; plus campus-wide wireless access. 

Maximum time limit

University policy requires that graduate programs be completed within seven years of the student's initial registration for courses in the program. Bridge courses are excluded.