Course Description

 
 
 

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.