Theory of computation: The course introduces some fundamental concepts in automata theory and formal languages including grammar finite automaton regular expression formal language pushdown automaton and Turing machine. Not only do they form basic models of computation they are also the foundation of many branches of computer science e.g. compilers software engineering concurrent systems etc. The properties of these models will be studied and various rigorous techniques for analyzing and comparing them will be discussed by using both formalism and examples.
Software Engineering and Testing Methodologies: The objective of this course is to provide fundamental knowledge of software engineering and make student aware of best software engineering practices and contemporary software engineering tools.
Linux Programming Lab: The course is designed to make the students research/industry ready as by using the open source applications along with any of the Linux flavor operating systems.
Design and Analysis of Algorithms: This course introduces concepts related to the design and analysis of algorithms. Specifically it discusses recurrence relations and illustrates their role in asymptotic and probabilistic analysis of algorithms. It covers in detail greedy strategies divide and conquer techniques dynamic programming and max flow - min cut theory for designing algorithms and illustrates them using a number of well-known problems and applications.
Introduction to Graph Theory and its Application: This course is to teach students the basic graph theory concepts and their applications in computer science.
Introduction Mathematical and Statistical Techniques: In this subject the fundamental concepts and principles of Mathematical & Statistical Techniques together with the challenging issues in Computer Science software development will be introduced.  Discussion on various topics related to mathematics and Computer Science will also be conducted.
Data Warehouse: This course introduces advanced aspects of data warehousing encompassing the principles to analyze the data identify the problems and choose the relevant models and algorithms to apply.