## Courses Offered in MSc Computer Science

The courses are mainly drawn from the
branch of theoretical Computer Science. A few system
oriented courses too have been included with extra
emphasis on implementation. A list of courses offered in the MSc Computer Science programme
is given below. For a detailed listing of the topics covered under each course, please see MSc Computer Science Programme Prospectus.

### Theoretical Computer Science

- Automata Theory
- Discrete Mathematics and Logic
- Introduction to Probability
- Theory of NP-Completeness
- Computational Complexity
- Probability and Stochastic processes

### Algorithms

- Analysis of Algorithms
- Graph Algorithms
- Computational Geometry
- Computer Graphics(*)
- Introduction to Discrete Optimization
- Advanced Data structures
- Approximation and Online algorithms
- Machine Learning
- Data Mining

### Programming and Systems

- Concepts of Programming Languages.
- Programming Skill Development Project
- Object Oriented Programming using Design Patterns
- Compiler Design
- Theory of Operating systems
- Design and Implementation of Database Management System
- Android Programming for Handheld Devices
- Distributed Systems
- Computer Architecture

- Summer Project (1st Year)
- Final Semester Project (2nd Year)

## Tentative Courses

- Web Technologies
- Design Patterns and Implementation

Laboratory work is a compulsory part of the
programme. The academic content has been chosen in order to
infuse passion for excellence in the learners and the
teachers. Every student is subject to a process of
continuous evaluation comprising periodic assignments,
quizzes, presentations, group discussions, and of course
written examinations. We believe that this comprehensive
approach can really motivate the student to strive for
cultivation of knowledge with the professional career coming
as a by-product.