Master of Science in Computer Science

Curriculum

The MSCS program requires completion of 25 units of coursework and a 6-unit thesis.

Theory Core Courses (3 units)

All MS Computer Science students are required to take the Theory Core Courses, which provide advanced theoretical foundations for understanding computation, algorithms, and the principles underlying computer science. These courses develop students’ ability to analyze computational problems, evaluate algorithmic solutions, and apply mathematical and theoretical concepts to advanced computing problems.

CODE

TITLE

DESCRIPTION

UNITS

CMSC 204

Theory of Computing

Decidability and undecidability of problems and the efficiency of solving them with respect to computing models.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 210

Advanced Algorithms and Data Structures

Advanced data structures, algorithm design techniques, and mathematical techniques for algorithm analysis.

(3 hrs lec | Prerequisite: None)

3 units

System Core Courses (3 units)

All MS Computer Science students are required to take the Systems Core Courses, which provide advanced knowledge of the principles, design, implementation, and evaluation of computer systems. These courses strengthen students’ competencies in analyzing and developing computing systems and provide the necessary foundation for advanced study and research in systems-oriented areas of computer science.

CODE

TITLE

DESCRIPTION

UNITS

CMSC 220

Survey of Programming Languages

Comparative study of different types of modern programming languages, including their syntax, semantics, and implementation.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 250

Advanced Operating Systems

Advanced concepts and technologies of modern operating systems.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 255

Advanced Computer Networks

Advanced networking concepts and emerging technologies in the field of computer networks.

(3 hrs lec | Prerequisite: COI)

3 units

CMSC 260

Advanced Software Engineering

Structured approach to requirements analysis, system design, implementation, and maintenance of software systems.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 270

Advanced Database Systems

Fundamental concepts and current developments in database systems theory and practices.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 280

Intelligent Systems

Cutting-edge developments in deep learning, computer vision, natural language processing, and other intelligent systems.

(3 hrs lec | Prerequisite: None)

3 units

Specialization Courses (9 units)

Students are required to take Specialization Courses that provide advanced and focused study in selected areas of computer science. These courses allow students to develop expertise in areas aligned with their academic interests, professional goals, and intended research or thesis work. The specialization courses also provide opportunities to examine current developments, methods, and emerging research problems in their chosen area.

CODE

TITLE

DESCRIPTION

UNITS

CMSC 204

Theory of Computation

Decidability and undecidability of problems and the efficiency of solving them with respect to computing models.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 210

Advanced Algorithms and Data Structures

Advanced data structures, algorithm design techniques, and mathematical techniques in the analysis of algorithms.

(3 hrs lec| Prerequisite: None)

3 units

CMSC 211

Combinatorial Optimization

Design and analysis of algorithms for different combinatorial optimization problems.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 220

Survey of Programming Languages

Comparative study of different types of modern programming languages including their syntax, semantics, and implementation.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 225

Compiler Design and Construction

Theory of compiler design and techniques in error correction and recovery, code generation, and optimization.

(3 hrs lec | Prerequisite: COI)

3 units

CMSC 242

Data Visualization

Visualization techniques for data from science, business, social science, demographics, and information management. 

(3 hrs lec | Prerequisite: None)

3 units

CMSC 250

Advanced Operating Systems

Advanced concepts and technologies of modern operating systems.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 253

Computer Security

Assessment of cybersecurity risks, including theoretical and practical considerations.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 255

Advanced Computer Networks

Advanced networking concepts and emerging technologies in the field of computer networks.

(3 hrs lec | Prerequisite: COI)

3 units

CMSC 257

Distributed Systems

Fundamental concepts and techniques in the design and implementation of distributed systems.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 258

Mobile Computing

Principles and practices of mobile computing systems.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 259

Network Performance, Modeling, and Monitoring

Network performance evaluation using measurement techniques and tools, simulation, and queuing models.

(3 hrs lec | Prerequisite: COI)

3 units

CMSC 260

Advanced Software Engineering

Structured approach to requirements analysis, system design, implementation, and maintenance of software systems.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 265

Software Quality Assurance

Introduction of principles, concepts, and techniques that are applied to manage and control software quality.

(3 hrs lec | Prerequisite: CMSC 260 or COI)

3 units

CMSC 266

IT Project Management

Project management knowledge areas and processes.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 270

Advanced Database Systems

Fundamental concepts and current developments in database systems theory and practices.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 280

Intelligent Systems

Cutting-edge developments in deep learning, computer vision, natural language processing, and other intelligent systems.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 282

Computer Vision

Fundamentals of image processing, object recognition, and knowledge-based vision.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 284

Machine Learning

Concepts, techniques, algorithms, and applications of machine learning with emphasis on the latest developments in the field and real-world applications.

(3 hrs lec | Prerequisite: CMSC 280 or COI)

3 units

CMSC 285

Natural Language Processing

Linguistic and algorithmic foundations of Natural Language Processing.

(3 hrs lec | Prerequisite: CMSC 280 or COI)

3 units

CMSC 295*

Advanced Topics in Computer Science

The specific topic, syllabus, and requirements shall be at the discretion of the designated course instructor. May be repeated for a maximum of 6 units.

(3 hrs lec | Prerequisite: None)

3 units

CMSC 297*

Special Topics in Computer Science


The specific topic, syllabus, and requirements shall be at the discretion of the designated course instructor. May be repeated for a maximum of 6 units.

(3 hrs lec | Prerequisite: None)

3 units

*CMSC 295 and CMSC 297 may be repeated for a maximum of 6 units each. The specific topic, syllabus, and requirements of this course shall be at the discretion of the designated course instructor. The topic shall be indicated together with the course number and title in the student’s permanent record. At least two sample syllabi are given in the appendix for each course, i.e., (1) CMSC 295 Advanced Topics in Computer Science (Membrane Computing) and CMSC 295 Advanced Topics in Computer Science (Computational Modelling and Simulation), and (2) CMSC 297 Special Topics in Computer Science (Service Science, Management, and Engineering), CMSC 297 Special Topics in Computer Science (Dynamical Systems and  Optimal Control), and CMSC 297 Special Topics in Computer Science (Research Methods in Human- Computer Interaction).

Elective Courses (3 units)

The specialization courses listed may be taken as graduate electives.

Other Required Courses

In addition to the theory core, system core, specialization, and elective courses, students are required to complete CMSC 296 (Graduate Seminar), CMSC 298 (Special Problem), and CMSC 300 (Thesis).