

Core Courses
Code
|
Name
|
CH
|
Pre-requisite
|
Advanced Algorithm Design & Analysis
|
3
|
--
|
|
Description
|
|||
This course aims to provide an advance level of Design, analysis and complexity of algorithms, General techniques for solving problems such as sorting; searching; number-theoretic algorithms; string matching; approximation algorithms, algorithms for social networks, optimization algorithms and randomization algorithm.
|
|||
Code
|
Name
|
CH
|
Pre-requisite
|
Mathematical Methods for Computing
|
3
|
--
|
|
Description
|
|||
This course covers the fundamental mathematics required by Computer Science. Topics include formal logic notation, proof methods; induction, well-ordering; sets, relations; Graphs and Trees; Number theory; asymptotic notation and growth of functions; permutations and combinations, counting principles; discrete probability and statistics, recursive definition and structural induction; state machines and invariants; recurrences; generating functions.
|
|||
Code
|
Name
|
CH
|
Pre-requisite
|
Advanced Software Engineering
|
3
|
--
|
|
Description
|
|||
This course contains Advance software Engineering concepts and principles with practical ides on various Software engineering process .This course delves in details on software architecture, software design, software construction, software testing , software configuration management and software deployment .
|
|||
Code
|
Name
|
CH
|
Pre-requisite
|
Distributed Operating Systems
|
3
|
--
|
|
Description
|
|||
This course covers general issues of design and implementation of distributed operating systems. It covers advanced topics in processes and threads, concurrent programming, distributed interprocess communication, distributed process scheduling, virtualization, distributed file systems, security in distributed systems, distributed middleware and applications such as the web and peer-to-peer systems.
|
|||
Code
|
Name
|
CH
|
Pre-requisite
|
Research Methodology
|
2
|
--
|
|
Description
|
|||
This course is designed to impart education in the foundational methods and techniques of academic research in the field of computer science. The students would examine and be practically exposed to the main components of a research framework i.e., problem definition, research design, data collection, ethical issues in research, report writing, and presentation. It will provide students with the training required to develop the skills to review and critically analyse extant theory (literature) on topics related to their research projects, justify the rationale for research, develop effective research designs for their projects, understand the role of theories in research, and learn to write research proposals. Students will acquire skills in both qualitative and quantitative research techniques and learn to report research findings (empirical work) with implications and draw conclusions.
|
|||
Code
|
Name
|
CH
|
Pre-requisite
|
Research Thesis Proposal
|
3
|
--
|
|
Description
|
|||
This Course prepares students for undertaking thesis by introducing, workshops and seminars, Literature Survey and writing research proposals in their research area. Students will prepare a Proposal in consultation with their prospective supervisor(s). The research proposal will include background information in the form of problem statement, critical review of relevant research, motivation and background, scope, methodology, significance of the research, expected outcomes and work-plan .The project proposal should be approved by the department.
|
|||
Code
|
Name
|
CH
|
Pre-requisite
|
Research Thesis
|
6
|
--
|
|
Description
|
|||
This course is the continuation of 698-CSS-3 Thesis proposal where students will build upon their initial work and further the study. Students are expected to complete the study in light of the observations and recommendations from the presentation of 698-CSS-3 and as guided by the supervisor. Students are required to document the research work in form of a thesis of publishable quality and defend the work in front of the program’s thesis committee.
|
Elective Courses
Code | Name | CH | Pre-requisite |
662-CCS-3 | Heuristic Methods and Evolutionary Computing | 3 | -- |
Description | |||
Many practical or theoretical problems in computer science, operations research, bioinformatics, and engineering have been proven to be hard problems (NP-hard or even NP-complete). NP- problems usually refer to those problems which cannot be solved within polynomial time. Over the past few decades, heuristic and evolutionary methods have proven to be powerful tools for dealing with such kind of problems. These techniques can obtain high quality solutions within reasonable computational time for many hard problems. In this course, different well known heuristic and evolutionary methods such as simple local search methods, simulated annealing, guided local search, Tabu search and genetic algorithms are explored and studied to solve some well-known NP-hard problems.
|
|||
Code | Name | CH | Pre-requisite |
663-CCS-3 | Intelligent Agents | 3 | -- |
Description | |||
Intelligent agents are software programs that can sense their environment, choose rational actions based on their precepts, and execute these actions. This module gives a broad introduction to the new and rapidly expanding field of agent-based computing. It introduces the key concepts and models of the field, dealing both with the individual agents and with their interactions. It also explores the essential theory behind methodologies for developing systems that demonstrate intelligent behavior including dealing with uncertainty, learning from experience and following problem solving strategies found in nature. Students will be given the experience in developing a small-scale agent-based application with suitable programming language and tools.
|
|||
Code | Name | CH | Pre-requisite |
664-CCS-3 | Artificial Neural Networks and evolution | 3 | -- |
Description | |||
The course provides a comprehensive foundation to Artificial Neural Networks and Machine Learning with applications to Pattern Recognition and Data Mining. Learning processes: supervised and unsupervised, deterministic and statistical. Clustering. Single Layer and multilayer perceptions. Backpropagation, and Bio Inspired learning algorithms. Radial-Basis function networks and Support Vector Machines.
|
|||
Code | Name | CH | Pre-requisite |
665-CCS-3 | Advanced Machine Learning | 3 | -- |
Description | |||
Machine learning is the science of getting computers to act without being explicitly programmed. In the past decade, machine learning has given us self-driving cars, practical speech recognition, effective web search etc., This course provides a broad introduction to machine learning concepts such as Supervised Learning , UnSupervised Learning, Reinforcement Learning and various, Pattern Recognition algorithms. The course also focuses on application of optimization techniques for various real time problems. Classifiers such a Support Vector Machine, Principle Component Analysis are also explored as part of the course.
|
|||
Code | Name | CH | Pre-requisite |
666-CCS-3 | Computational Aspects of Robotics | 3 | -- |
Description | |||
This course is an overview of the field of robotics. The intent of this course is to give students an in depth understanding of how robots work, and the application and use of computers to typical robotic problems. Students will also be exposed to current research directions in robotics. The course will cover the essentials of programming and interacting with robots, and we will be using a small programmable mobile robotic platform for hands-on experience with robots. Topics include coordinate frames and kinematics, computer architectures for robotics, integration and use of sensors, world modeling systems, design and use of robotic programming languages, and applications of artificial intelligence for planning, assembly, and manipulation.
|
|||
Code | Name | CH | Pre-requisite |
642-CCS-3 | Software Design and Architecture | 3 | -- |
Description | |||
This course introduces the principles and elements of software architecture associated with the requirements, design, construction and implementation of large and complex software systems. Topics include software architecture (concepts, terminology and notation), its foundation, design, architecture patterns and styles, modelling, visualization, implementation, and application of software architecture principles and techniques to design software architectures taking into account both functional and non-functional requirements. The course will balance an emphasis on design principles with an understanding of how to apply techniques and methods to create successful software systems. The course also includes object-oriented design techniques through the use of Components and connectors in the UML2 superstructure. It specifies parts of the design using an object constraint language (OCL) and advanced knowledge of Model driven engineering and model-driven architecture.
|
|||
Code | Name | CH | Pre-requisite |
622-CCS-3 | Advanced Mobile Application Development | 3 | -- |
Description | |||
This course aims to provide a thorough grounding in the principles of software development for mobile devices. The Android and iOS (iPhone/iPad) platforms will be used as an example, although the modules emphasize general principles that are common across all mobile platforms. An important aim of the module is to demonstrate the real-world application of object-oriented programming principles and design patterns in software for mobile devices
|
|||
Code | Name | CH | Pre-requisite |
612-CCS-3 | Natural Language Processing | 3 | -- |
Description | |||
This course aims at identifying areas where Natural Language processing (NLP) could be used. It will give fundamental knowledge of the basic elements of natural language technology, such as grammatical formalisms, parsing methods, and text understanding. Computations of Meaning-representations for natural language sentences are explained. The course presents discourse interpretation for solving many problems that NLP systems face between sentences.
|
|||
Code | Name | CH | Pre-requisite |
623-CCS-3 | Theory and Design of Programming Languages | 3 | -- |
Description | |||
The goal of the course is to change the thinking of the programmer about programming and to make him see himself as a designer of languages and not only a user of a language. The programmer will be able to choose the rules by which languages are put together and will not just be a follower of the rules that other programmers have chosen.
|
|||
Code | Name | CH | Pre-requisite |
613-CCS-3 | Advanced Pattern Recognition And Image Processing | 3 | -- |
Description | |||
The course introduces mechanics of Human Visual System, the basic concepts of different Digital Image Processing stages: Enhancement, Restoration, Segmentation, Representation, and Compression, the general structure of Pattern Recognition which includes feature selection, extraction, representation, object identification and classification, and relates the applications of the various Image Processing concepts to numerous real-world situations. The course also makes analysis of case studies of real time pattern recognition applications.
|
|||
Code | Name | CH | Pre-requisite |
621-CSE-3 | Advanced Network Security | 3 | -- |
Description | |||
Network security is considered as an essential and challenging goal in computer networks design. The effectiveness of a network security policy is measured by its ability to identify threats and combat them by choosing the most effective set of tools. This course provides students with key knowledge about the principles, practices, and challenges of network security, focusing in particular on the security aspects of the Web and the Internet. The content of this course is organized as follows. A review of Internet architecture and protocols is given in Chapter 1. Then Chapter 2 to 6, cover important network security tools and applications, including PKI, DNS Security, HTTPS, SSL/TLS, QUIC, IPsec, BGP, EAP, and Wi-Fi Protected Access. Finally, Chapter 7 looks at network defence tools such as firewalls, AG, IPS, and IDS.
|
|||
Code | Name | CH | Pre-requisite |
602-CSE-3 | Cryptography | 3 | -- |
Description | |||
A Cryptography is an indispensable element of cybersecurity. This course is an introduction to classical and modern cryptography. Generally, the contemporary subject of cryptography and information protection is a combination of mathematics, engineering, and computer science. This course contains such mixture and it is organized as follows. Chapter 1 covers various topics of mathematics that underlie the subject of cryptography. Then, an introduction to how security is defined in modern cryptography is given in Chapter 2. Chapter 3 discusses information-theoretic cryptography, in particular, the one-time pad, and secret sharing. Symmetric encryptions and authentication primitives (i.e.block ciphers, stream ciphers, and hash functions) and schemes (such as modes of operation, message authentication codes, blockchains, etc.) are detailed through Chapters 4 and 5. Subsequently, Chapters 6 and 7 provide the standard techniques for performing public key encryption and public key signatures, respectively. Finally, standard and advanced protocols that make use of the already discussed primitives (encryption, message authentication, and secret sharing) are studied through Chapter 8.
|
|||
Code | Name | CH | Pre-requisite |
633-CSE-3 | Secure Software System | 3 | -- |
Description | |||
Poor software design and engineering are the root causes of most security vulnerabilities in deployed systems today. Moreover, with code mobility now common place--particularly in the context of web technologies and digital rights management system designers are increasingly faced with protecting hosts from foreign software and protecting software from foreign hosts running it. This class takes a close look at software as a mechanism for attack, as a tool for protecting resources, and as a resource to be defended.
|
|||
Code | Name | CH | Pre-requisite |
623-CSE-3 | Emerging technologies in Cyber security | 3 | -- |
Description | |||
The worldwide reach of the Internet allows malicious cyber criminals to coordinate and launch attacks on cyber from anywhere in the world. This purpose of this course is to introduce the theoretical foundations and practical solution techniques for securing critical cyber systems. Examples of such systems include cloud computing, world wide web, big data, sensor network, wireless network, Windows platform and end user security. Finally, real systems that utilize security solutions are presented in the last chapter.
|