Master of Science in Computer Science

The Master of Science in Computer Science (MSCS) 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 MSCS 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 Checklist

Last Updated: May 8, 2025

Code Title Description
CS 204 Theory of Computation Formal models of computation; recursive function theory; undecidability. Resourcebounded computational complexity, non-determinism, NPcompleteness.
CS 208 Complexity Theory Computational models, measures of complexity, complexity classes: nondeterministic, alternating, probabilistic, parallel. Boolean circuits. Complete problems.
CS 210 Advanced Algorithms and Data Structures Advanced data structures; algorithm design techniques; mathematical techniques in the analysis of algorithms.
CS 211 Combinatorial Optimization Design and analysis of algorithms for combinatorial optimization problems, worst-case complexity, NP- Completeness proofs, heuristics. Open problems.
CS 213 Communication Theory Mathematical theory of communication. Information Theory, Communication Channels. Coding. Cryptography.
CS 214 Parallel Algorithms Models of parallel computation. Performance measures, scalability, pipelining, techniques for analyzing parallel algorithms. Interconnection network topologies. Applications.
CS 216 Randomized Algorithms Construction and analysis of randomized algorithms. Expected performance of randomized algorithms, fundamental limitations on probabilistic computations, complexity issues, applications.
CS 220 Survey of Programming Languages Comparative study of different types of modern programming languages; imperative, functional, logic-based and object-oriented. Syntax, semantics and implementation of programming languages.
CS 222 Programming Language Theory Fundamental concepts underlying all programming languages. Semantic aspects including binding times, visibility, retention, storage management, abstraction mechanisms and extensibility. Operational and denotational semantic specifications.
CS 225 Compiler Design and Construction Theory of compiler design and construction: techniques in error correction and recovery; code generation and optimization.
CS 231 Numerical Computing Algorithm design for numerical computation. Error analysis. Performance evaluation of numerical software.
CS 233 Probabilistic Methods in Computer Science Random combinatorial structures and their applications to computer science.
CS 236 Scientific Computing Problems and methods in scientific computing. Applications from science and engineering.
CS 239 Parallel Computing Parallel computer architectures. Programming for parallel architectures. Representation, program dependence, control structures.
CS 240 Computer Graphics Solid modeling: Euler operators, finite element methods. Rendering: filling, shading, ray tracing. Natural modeling: L-systems, fractals. Image processing: filtering, antialiasing, enhancement.
CS 242 Data Visualization Visualization techniques for data from science, business, social science, demographics, and information management.
CS 245 Network Optimization Algorithms for network optimization problems; shortest paths, maximum flows, minimum-cost flows, multicommodity flows, dynamic flows, minimum cuts, matching, and assignment problem
CS 247 Cryptography Primality testing, finite fields, elliptic curves. Protocols: public key cryptography, digital signatures, zero knowledge proofs, and other cryptographic protocols.
CS 248 Computational Mathematics Overview of computational mathematics. Algorithms for computing with algebraic structures. Computer algebra systems.
CS 250 Advanced Operating Systems Synchronization and communication mechanisms, virtual memory management,file systems, deadlock control, resource allocation, protection and access control. Case study of specialized systemsother cryptographic protocols.
CS 252 Advanced Computer Architecture
CS 253 Computer Security Encryption, digital signatures,authentication, key management. Secure electronic commerce. Network Security. File security.
CS 255 Advanced Computer Networks The OSI Reference Model and layers. Distributed computing. Networked multimedia systems. Clint-server computing. Communication and internet working.
CS 256 Computer Systems Performance Analysis Overview of performance evaluation. Measurement techniques and tools. Applications of probability theory and techniques. Experimental design and analysis. Simulation and queuing models
CS 257 Distributed Systems Computer communications networks and their protocols. Event ordering and synchronization. Deadlocks. Network operating systems and languages for distributed computing. Distributed databases. Fault tolerance and recovery strategies. Applications.
CS 258 Mobile Computing Mobile computing systems. Data management, packet transmission, mobile IP, routing protocols, reliability and issues in mobile wireless networks.
CS 259 Network Performance, Modeling and Monitoring Network performance evaluation. Measurement techniques and tools. Simulation, queuing models, case studies, practicals.
CS 260 Advanced Software Engineering Structured approach to requirements analysis, system design, implementation and maintenance of software systems. Formal description and documentation techniques.
CS 262 Methods of Software Development Modern approaches to software development. Prototyping and automated tools. Computer Aided Systems Engineering (CASE) methods and tools. Object-oriented Programming Systems (OOPS).
CS 265 Software Quality Assurance Quality Management, Quality Assurance, Quality Control. Measurement and Analysis. Maturity Model.
CS 266 IT Project Management Detailed discussions of project management knowledge areas and processes. Case studies. Simulations and walk through of real-world IT projects from initiation and planning to evaluation and closing.
CS 267 Software Engineering for the Web Software process and requirements analysis, design, development and testing for web-based systems, software development tools, configuration management systems, case studies.
CS 268 Web Science The Web as a full communications medium that fosters full collaboration, social interaction, and commerce. Case studies.
CS 270 Advanced Database Systems Data models and their underlying mathematical foundations; database manipulation and query languages; functional dependencies; physical data organization and indexing methods; concurrency control; crash recovery; database security; distributed databases.
CS 271 Database Theory Data models and their underlying mathematical foundations; database manipulation and query languages; functional dependencies; physical data organization and indexing methods; concurrency control; crash recovery; database security; distributed databases.
CS 280 Intelligent Systems Fundamental issues in Intelligent Systems. Intelligent search and optimization methods. Knowledge representation and reasoning. Learning, natural language understanding, pattern recognition, knowledge-based systems and other methods in intelligent Systems
CS 281 Robotic Systems Biologically-motivated robotic systems. Reactive, deliberative, and hybrid architectures. Knowledge representation for robotics systems. Sensor fusion and perceptual strategies. Adaptation and social behavior. Knowledge representation and reasoning. Learn
CS 282 Computer Vision Image formation; early vision; segmentation from texture and motion; object representation; matching and inference; knowledge-based vision.
CS 283 Data Mining Decision trees, association rules, clustering. Intrusion detection. Design and use of serial, distributed and parallel data mining algorithms.
CS 284 Machine Learning Pattern recognition, parametric and nonparametric learning, decision trees, Bayesian and neural networks, reinforcement learning, genetic algorithms, computational learning theory.
CS 286 Natural Language Understanding Computational properties of natural languages. Morphological, syntactic and semantic processing from an algorithmic perspective. Models of acquisition and parsing.
CS 287 Speech Processing Models of speech processing, speech recognition and synthesis. Speech recognition systems. Text-to-speech systems. Applications.
CS 289 Digital Image Processing
CS 290 Advanced Topics in Theoretical Computer Science
CS 291 Advanced Topics in Net-Centric Computing
CS 292 Advanced Topics in Software Technology
CS 293 Advanced Topics in Computer Systems
CS 294 Advanced Topics in Computational Science
CS 295 Advanced Topics in Intelligent Systems
CS 296 Graduate Seminar
CS 297 Special Topics
CS 298 Special Problem