The MSCS program requires completion of 25 units of coursework and a 6-unit thesis.
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 |
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 |
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).
The specialization courses listed may be taken as graduate electives.
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).