Master of Science
 

Computer Science

Required Courses

CS510 Analysis and Design of Algorithms
Pre-req:  CS310 (Analysis of Algorithms)
This course introduces the participants to the general techniques for developing algorithms and covers topics like divide and conquer, greedy, dynamic programming, search and traverse, backtracking, branch and bound. Time, space complexity; graph, matrix, and set algorithms along with complexity and intractable problems are also discussed.

CS511 Theory of Computation
Pre-req:  CS300 (Theory of Automata and Formal Languages)
This course introduces students to the fundamentals of the theory of computation including Sets, Relations, and Languages; Finite Automata; Context-free Languages; Turing Machines; Undecidability; Computational Complexity; and NP-completeness.

CS520 Computer Architecture
Pre-req:  CS225 (Computer Organization and Assembly Language)
The course will cover the following topics: Instruction Set Principles, Pipelining, Memory Hierarchy/ Cache Design, Storage System Design, High Performance Arithmetic, Multiprocessor design, Interconnection Networks and Fault-Tolerant Computing.

CS525 Operating Systems
Pre-requisite: CS325 Operating Systems
This course will cover an exciting range of materials from the broad field of operating systems, including basic operating system structure, file systems and storage servers, memory management techniques, process scheduling and resource management, threads, distributed and peer-to-peer systems, security and a few other "hot" topics. It will also examine influential historical systems and important current efforts, extracting lessons both on how to build systems as well as how to evaluate them.

CS541 Advanced Software Development
Pre-requisite: CS141 Object oriented design and programming
The objective of this course is to produce software architects who can undertake a senior level design & development responsibilities. The course revolves around design patterns and practices which are used to implement distributed enterprise level software. The course will be taught from a designer's perspective, and is divided into following modules: Presentation Tier, Web Tier, Business Tier, Data Access Tier, Packaging, Deployment, Configuration and Security.

Electives

Electives can be selected from any graduate-level (i.e. numbered 500 or above) courses that are not part of the degree's core requirement or from the following list that frequently updated according to interests of the faculty, industry, and students:

  • Databases
  • Advanced Database Management Systems
  • Human-Computer Interaction
  • Web-Usability Engineering
  • Distributed Systems
  • Patterns in Software
  • Decision Support Systems
  • Data Warehousing and Mining
  • Software Business Management
  • Software Project Management
  • Special Topics