UMBC’s Computer Science and Electrical Engineering Department offers both M.S. and Ph.D. programs in Computer Science. Below you will find information on both Computer Science graduate programs, and information about how to apply. We also offer a M.P.S. (Masters in Professional Studies) in Cybersecurity, two graduate certificate programs in Cybersecuity and are developing an M.P.S. program and graduate certificate programs in Data Science.
M.S. in Computer Science
Students pursuing a Masters of Science (M.S.) in Computer Science must choose between the thesis and non-thesis options. The thesis option requires the completion of 30 credits, including six credits of CMSC 799. The thesis must be defended with an oral examination and approved by the student’s master’s thesis committee. The non-thesis option requires the completion of 33 credits. All students must complete CMSC 641 Algorithms, one course chosen from the “system” area, and one course chosen from the “applications” area. The degree must be completed within five years and students must maintain a minimum G.P.A. of 3.0. For more details about the Master’s program in Computer Science, see the Computer Science Graduate Handbook (linked in the main menu above).
Ph.D. in Computer Science
Students pursuing a Doctorate of Philosophy (Ph.D.) in Computer Science are required to complete 11 courses, including three core courses in addition to 18 credit hours of doctoral dissertation research. Ph.D. students must complete and defend their dissertation, pass the comprehensive portfolio, and pass the preliminary examination and admission to candidacy. In addition, Ph.D. students must complete a minimum of three years of full-time graduate study, with at least one year of full-time study at UMBC. The program must be completed within 4 years after admission to doctoral candidacy and students must maintain a G.P.A. of 3.0. For more details about the Ph.D. program in Computer Science, see the Computer Science Graduate Handbook (linked in the main menu above).
- CMSC 641: Design and Analysis of Algorithms
- one course chosen from the “system” area
- one course chosen from the “applications” area
In addition to the core courses, a wide range of elective and special topics courses are offered in areas such as: cybersecurity and information assurance, natural language processing, databases, data mining, mobile and wearable computing, cognitive systems and architectures, semantic web, machine learning, and networking. For a list of Computer Science graduate courses, see the Graduate Course Catalog.
- Artificial Intelligence: Intelligent decision support, semantic representations and ontologies, interactive AI systems, preference modeling, reasoning under uncertainty.
- Machine Learning and Data Mining: Knowledge-intensive learning, preference learning, unsupervised perceptual learning, privacy-preserving data mining, ML applications.
- Multi-Agent Systems: Trust modeling, self-organizing agent networks and swarm systems.
- Wireless sensor networks: mobile applications, context-aware systems.
- Web 2.0: Semantic web, knowledge discovery and modeling, policy models, service-oriented computing.
- Graphics and Visualization: Light and shading, realistic and artistic rendering, graphics hardware, understanding data, use of color and texture for visualization, perceptual studies and evaluation.
- Game Development: Use of computer science concepts in game programming, especially graphics and AI, networks, parallel programming, and databases. Multidisciplinary team development.
- Systems: Operating systems, distributed systems, cloud computing, and high-performance computing.
- Security: cognitive security, IoT security, cryptography, system security, code and malware analysis.
Meet the Professors
Dr. Tim Finin specializes in artificial intelligence and has been working on developing smart phones that can gauge their user’s “context.” “What I have always found interesting since I was an undergraduate was the idea that we could make machines as smart as people,” explains Dr. Finin, whose research involving semantic web technology is directed towards realizing that goal.
A list of the Department’s Regular Faculty is here.
How to Apply
Pre-requisites for Admission
An applicant to the graduate program in computer science is expected to have a strong background in computer science and mathematics courses. Applicants are expected to have taken the equivalent of the following UMBC courses:
- CMSC 203: Discrete Structures
- CMSC 313: Computer Organization & Assembly Languages
- CMSC 331: Principles of Programming Languages
- CMSC 341: Data Structures
- CMSC 411: Computer Architecture
- CMSC 421: Principles of Operating Systems
- CMSC 441: Algorithm Design and Analysis
- MATH 151: Calculus I
- MATH 152: Calculus II
- MATH 221: Introduction to Linear Algebra
- At least one more advanced math course
AND, at least 1 course from the following list:
- CMSC 435: Computer Graphics
- CMSC 451: Automata Theory & Formal Languages
- CMSC 455: Numerical Computations
- CMSC 461: Database Management Systems
- CMSC 471: Artificial Intelligence
- CMSC 481: Computer Networks
The Application Process
Apply online through UMBC’s Graduate School Website. Applicants must also submit:
- An Official Transcript
- Three Letters of Recommendation
- Statement of purpose
- Graduate Record Examination (GRE) scores
- TOEFL scores (International students only)
- Fall: January 7th
- Spring: June 1st
- Fall: January 7th (for financial consideration), June 1st
- Spring: June 1st (for financial consideration), November 1st