Available courses

This course introduces students to Bioinformatics and Computational Biology. It familiarizes students with different cellular processes, capturing and storing such information and analysis of data with different classification and clustering techniques. It also introduces drug strategies and technologies for drug discovery and approaches for drug design.

This course introduces the concepts of Advanced search techniques in AI, knowledge based system design, advanced plan generating systems; Probabilistic Reasoning, decision networks; Making complex decisions: Sequential decision problems, partially observable Markov decision problems (POMDPs); Multiple agent theory: Cooperation among multiple agents; Learning from observations: Inductive learning, decision trees, ensemble learning; Knowledge in learning: Use of logic, explanation based learning, inductive logic programming; Statistical learning: Complete data, hidden nodes (EM method), instance based learning, neural networks and neural belief networks; Fuzzy logic and genetic algorithm. The course prepares students to design solution using AI. The course includes continuous assessment in the form of examinations.

This course provides an introduction to the fundamental principles of cryptography and its applications on the network security domain. Students will become familiar with cryptographic techniques for secure communication of two parties over an insecure (public) channel; verification of the authenticity of the source of a message; verification of the integrity of the messages transmitted via an insecure channel and unique identification of the originator of any message. Cryptanalysis attacks against the cryptographic techniques, and attack models will be presented. Furthermore, it will be illustrated how network security and management mechanisms employ cryptography to prevent, detect, and mitigate security threats against the network.

This course introduces students to different aspects of digital communication systems: channel coding, modulation and multiplexing techniques at the transmitter; different types of channel impairments including multipath fading, noise and intersymbol interference; and different types of demodulation and detection methods at the receiver with a focus on matched filters, equalizers and maximum likelihood detection. The course also helps students to design different digital communication systems with different types of devices. The course includes continuous assessment in the form of Mid Term examinations, assignments and term papers.

Introduction to reconfigurable computing; Reconfigurable computing hardware: Device Architecture, coarse grained and fine grained architecture, Reconfigurable computing System, Reconfigurable computing Management, Different types of HDL, Verilog HDL, Design of combinational and sequential circuits using Verilog HDL, Hardware/software co-design, Case study: Design of Reconfigurable computing system.

This course introduces students with advanced embedded system design which mainly focused on ASIC and FPGA based design using HDL. It incorporates both hardware and software design for embedded systems.

This course introduces students to programming and logic flow, procedural versus object oriented programming, data types, variables, constants, operators, expressions, input-output, control structures, arrays, functions, pointers, file access, structures, dynamic memory allocation, classes, objects, constructor and destructor, inheritance, polymorphism, files, exception handling, etc. The course prepares students to solve basic programming problems. The course includes continuous assessment in the form of assignments, class test, and examinations.


This course introduces the student to the concept of data structures through abstract data structures including lists, sorted lists, stacks, queues and graphs; and implementations including the use of linked lists, arrays, binary search trees, hash tables, trees, and adjacency matrices. It also introduces the student to algorithm design including greedy, divide-and-conquer, random and backtracking algorithms and dynamic programming; and specific algorithms including, for example, resizing arrays, balancing search trees, shortest path, and spanning trees.

This course introduces fundamental concepts of telecommunication networks. Underlying engineering principles of modulation, multiplexing and switching systems, IP networks, cellulartelephony, VoIP, frame relay as well as integrated networks are discussed. Topics in the course include: overview of telephone and data networks, OSI layers, physical layer and coding, data link protocol, flow control, congestion control, routing, local area networks (Ethernet, Wireless, etc.); frequency reuse in cellulartelephony,FDMA, TDMA and CDMA; introduction to satellite communication, submarine cables, digital radio, microwave etc.

This subject introduces students to different aspects of software engineering. This subject gives good understanding in the process flows of software engineering starting from the system study/ requirement analysis to coding and testing portion. The critical factors that influence the success or fail of a real life software development project are also covered in this course. In addition, the subject helps students to design and develop practical software using the software engineering process models. The course includes continuous assessment in the form of Mid Term examinations, project assignments and term papers.

This subject introduces students to the fundamental concepts of digital communication systems: channel coding, modulation and multiplexing techniques at the transmitter; channel noise; different types of switching and routing techniques, and different types of demodulation and detection methods at the receiver. In addition, the subject helps students to design different categories of practical digital communication networks with different types of devices. The course includes continuous assessment in the form of Mid Term examinations, assignments and term papers.