Master of Science in Computer Science

Master of Science in Computer Science

The Master of Science in Computer Science (M.Sc. C.S.) program aims to provide both breadth and depth of knowledge in the concepts and techniques related to the theory, design, implementation, and applications of computer systems. Students are required to take courses which cover advanced topics in theoretical computer science and computer systems. Students of the M.Sc. C.S. program are expected to write a thesis under the guidance of a faculty adviser. Full-time students should be able to complete the program in two years.


Curriculum

Core Courses
One Theory Course 3 units
One Systems Course 3 units
One Theory or Systems Course 3 units
9 units
In addition, students need to take the following:
CS 296 Seminar 1 unit
Thesis Option:
Specialization Courses 9 units
Elective 3 units
CS 298 Special Problem 3 units
CS 300 Thesis 6 units
TOTAL NUMBER OF UNITS IN THE PROGRAM 31 units
The core course in Theory should be taken from among the following:
CS 204 (Theory of Computation)
CS 210 (Advanced Algorithms and Data Structures)
The core course in Systems should be taken from among the following:
CS 250 (Advanced Operating Systems)
CS 270 (Advanced Database Systems)
CS 220 (Survey of Programming Languages)
CS 260 (Advanced Software Engineering)
Theory Specialization Courses
CS 204* Theory of Computation
CS 208 Complexity Theory
CS 210* Advanced Algorithms and Data Structures
CS 211 Combinatorial Optimization
CS 213 Communication Theory
CS 214 Parallel Algorithms
CS 216 Randomized Algorithms
CS 222 Programming Language Theory
CS 225 Compiler Design and Construction
CS 231 Numerical Computing
CS 236 Scientific Computing
CS 247 Cryptography
CS 271 Database Theory
CS 290 Advanced Topics in Theoretical Computer Science
CS 294 Advanced Topics in Computational Science
CS 297 Special Topics
CS 298 Special Problems
ES 201 Advanced Mathematical Methods in Engineering I
ES 202 Advanced Mathematical Methods in Engineering II
* - required for Ph.D. C.S.
Systems Specialization Courses
CS 220* Survey of Programming Languages
CS 237 Biomedical Informatics
CS 239 Parallel Computing
CS 240 Computer Graphics
CS 242 Data Visualization
CS 250* Advanced Operating Systems
CS 253 Computer Security
CS 255 Advanced Computer Networks
CS 256 Computer Systems Performance Analysis
CS 257 Distributed Systems
CS 258 Mobile Computing
CS 259 Network Performance, Modeling and Monitoring
CS 260* Advanced Software Engineering
CS 262 Methods of Software Development
CS 265 Software Quality Assurance
CS 266 IT Project Management
CS 267 Software Engineering for the Web
CS 268 Web Science
CS 270* Advanced Database Systems
CS 280 Intelligent Systems
CS 281 Robotic Systems
CS 282 Computer Vision
CS 283 Data Mining
CS 284 Machine Learning
CS 286 Natural Language Understanding
CS 291 Advanced Topics in Net-Centric Computing
CS 292 Advanced Topics in Software Technology
CS 293 Advanced Topics in Computer Systems
CS 295 Advanced Topics in Intelligent Systems
CS 297 Special Topics
CS 298 Special Problems
EE 277 Modern VLSI Design
EE 267 Real-Time Systems
EE 270 Digital Communication I
EE 274 Digital Signal Processing I
EE 264 Computer Architecture
GE 203 Principles of Geographic Information Systems
GE 213 Advanced Geographic Information Systems
IE 253 Information Systems I
IE 254 Information Systems II
* - required for Ph.D. C.S.