CSE Courses

CSE/ECE-3xx/5xx : Speech Recognition and Understanding (Credits: 4)
This is an introductory course on Speech Recognition and Understanding offered to undergraduate and graduate students. The goal is to develop understanding of traditional as well as contemporary speech processing techniques and enable students to develop applications using existing tools. Students will be given theory and programming assignments targeted towards solving real-world speech recognition problems. Groups of two or three will do a course project and show a demonstration at the end of the semester.
CSE101 : Introduction to Programming (Credits: 4)
Introduction of Programming is the first programming course in the college curriculum, and aims to bridge the gap between students who have prior coding experience and those who have none. The main goal of this course is to prepare students to understand basic algorithms and data structures, write organized code, and to gain practical experience with debugging, compiling and running programs.
CSE102 : Data Structures and Algorithms (Credits: 4)
Pre-requisite: CSE101 ,CSE121
This course is aimed at giving students a background in basic data structures and algorithms along with their impact in solving real life problems using a computer. The major focus will be on covering the basic data structures, b) Algorithm analysis using recurrence relations and c) problem solving using Java.
CSE111 : Digital Circuits (Credits: 4)
Analog and Digital representations of information; Logic and arithmetic; Binary variables; Basic logic operations and gates; Essentials of Boolean algebra; Expressing a logical problem as a Boolean function; Positional number systems; Arithmetic operations; Combinational circuit design using multiplexers and gates; Sequential circuits ndash; Latches, Flip-flops, Ripple counters; Sequence generator using flip-flops; Synchronous counters; Basic constituents of a processor; Simple processor architecture.
CSE112 : Computer Organization (Credits: 4)
Introduction to computer systems: General overview of computer abstraction and technology. Instruction set architecture: instruction type, format, operand, addressing mode. Computer arithmetic: addition, subtraction, multiplication and division. Floating point representation. Basics of microprocessor: pipeline, datapath and control. Data and control hazards. Parallelism: Instruction Level Parallelism (ILP). Memory hierarchy: Exploiting locality using cache memory, virtual memory. I/O and storage: performance of disk and file systems.
CSE121 : Discrete Mathematics (Credits: 4)
Discrete Mathematics is the study of mathematical structures (objects) which are discrete, distinct in nature. This course provides the mathematical basis for the understanding of computers and modern computation. It is the backbone of computer science and has a lot of applications in cryptography and engineering.
CSE131 : System Management (Credits: 4)
This course exposes the students to how a computer functions, and how they can manage their own systems. Starting with an Operating Systems installation, dual-OS installation and OS installation on a virtual machine, to knowing Linux commands, writing shell scripts, using tools such as sed and awk, connecting the machine to the network, setting up WiFi, understanding networking, setting up a website, use of Internet tools, cloud based systems, the course covers a vast ground.
CSE201 : Advanced Programming (Credits: 4)
Pre-requisite: CSE101 ,CSE102
The Advanced Programming course is a successor to the Introduction to Programming course. This course teaches some advanced programming concepts. It builds upon prior knowledge of students about programming using languages like C. This is going to be an intensive hands-on course and is going to heavily based on programming assignments, labs and practical exams. The course begins with a discussion on Introduction to Object Oriented Paradigm and Programming Concepts. Students will learn the key elements of a typical object oriented application such as objects, classes, messages, interfaces, abstraction, inheritance, encapsulation and polymorphism. We will make use of Java language to demonstrate the concepts. However, the concepts can be applied using other programming languages. After covering the basics of object oriented programming, we will cover advanced Java programming features such as the Basic Error amp; Exception handling, IO amp; Streams, Concurrent programming with Threads , GUI programming, Collections Framework, and unit testing with JUnit. Throughout the course, students will use an integrated development environment like Eclipse and learn to make use of Java documentation and also learn to create documentation, using JavaDoc, with code.
CSE202 : Fundamentals of Database Systems (Credits: 4)
Pre-requisite: CSE102
A course on fundamentals of database systems. Database Management Systems (DBMS) are an integral component of modern computing environment and applications. This is a first course in databases at the undergraduate level covering fundamentals concepts, aspects of database design, database languages and database system implementation. Students are taught concepts and algorithms in a general setting that is not tied to one particular database system. The course emphasizes both theory and application of database systems. Topics covered in the course are: introduction to the relational model, introduction to SQL, intermediate and advanced SQL, database design using entity relationship approach, data storage and querying, indexing and hashing and transaction management.
CSE222 : Analysis and Design of Algorithms (Credits: 4)
Pre-requisite: CSE102 , CSE121 ,CSE101
This is a follow-up course to DSA (Data Structures and Algorithms). The focus of this course in on the design of algorithms, proofs of correctness and methods to analyse resource requirements of their algorithms. Students learn fundamental algorithmic design paradigms such as greedy algorithms, dynamic programming, divide and conquer, etc. and also learn some more data structures. The later part of the course focuses on the limitations of algorithms. In particular, the theory of NP-completeness. Students are also required to design and implement algorithms using the techniques the learn.
CSE230 : System Administration (Credits: 2)
Pre-requisite: CSE131
This course is intended for second year B.Tech students, who wish to improve skills through hands-on experience in system administration. This course will be followed by another course on Network Administration. Students, who successfully complete these courses, will be offered part-time work for System and Network Admin in the institute and will be expected to work for at least two semesters.
CSE231 : Operating Systems (Credits: 4)
Pre-requisite: CSE102
Operating system is the interface between the hardware and the user; it is responsible for the management and coordination of activities and the sharing of the resources of the computer. Operating system offers a number of services to application programs and users. Applications access these services through application programming interfaces (APIs) or system calls. By invoking these interfaces, the application can request a service from the operating system, pass parameters, and receive the results of the operation. The course on Operating System has two components: theory and programming. Theory component covers the underline concepts and principles of operating system whereas programming component involves the practical implementation of theoretical concepts.
CSE232 : Computer Networks (Credits: 4)
Pre-requisite: CSE101 ,CSE102
This is the introductory course in computer networks. It teaches the standard layers in network, circuit and packet switching, protocols at the link layer, routing algorithms, TCP/IP protocol, and new challenges in wireless networks.
CSE233 : Network Administration (Credits: 2)
This course is intended for second year B.Tech students, who wish to improve skills through hands-on experience in network administration. This course is a follow up of the course on System Administration. Students’, who successfully complete these courses, will be offered part-time work for System and Network Admin in the institute and will be expected to work for at least two semesters.
CSE234 : Computer Architecture and Operating Systems (Credits: 4)
The overall objective of this course is to provide a comprehensive overview of the basic features of a computer. It puts together basic computer organization, systems software and operating systems. The course lays the basis for more advanced topics in computer science, both hardware and software. 
CSE300 : Software Engineering (Credits: 4)
A one-semester undergraduate level course in software engineering focusing on cloud computing, software as a service (SaaS), and Agile development using Extreme Programming (XP). The course curriculum takes advantage of the fact that Agile + SaaS + Cloud has not only revolutionized software, but made it easier and more effective to teach. The course will cover topics such as: SaaS, SOA, Cloud, Agile methodology, Plan and Document, Pair Programming, SCRUM, Test Driven Development, Behavior Driven Design and User Stories, Lo-Fi User Interface Sketches and Storyboards, 3-Tier Architecture & Horizontal Scaling, Rails Basics, Software Processes and Development Lifecycle, Design Patterns and Project Management.
CSE301/CSE601 : Compilers (Credits: 4)
The course covers principles of compiler design including introduction to compiler technology, overview of compiler followed by in depth study of various phases and component of compilers including lexical analysis, syntax analysis, semantic analysis, intermediate code generation, run time environment as well as machine code generation and optimization. The student will learn writing a complete working compiler in a modular fashion through intensive lab assignments and will be exposed to some advanced topics in compilers .
CSE304 : Practice of Programming (Credits: 4)
This course focus on programming techniques related to the most important activities of software development, namely, low level design, coding, debugging, and testing. In particular, the course would emphasize on techniques that would enable the students to write high-quality code for large and complex software. The techniques would be essential to achieve the required level of scalability as well as quality associated with the correctness, security, dependability, performance, portability, and maintainability of programs.
CSE312/CSE512 : Sensing Systems and Data Analytics in Building Energy Management (Credits: 4)
This course is designed to allow students to put together an end-to-end system involving software development, hardware design, data collection and data analytics for the upcoming research domain of Cyber Physical Systems (or Internet of Things as some people would prefer to call it). Specifically, the course focusses on Building Energy Consumption within the broader perspective of Cyber Physical Systems.
CSE319/CSE519 : Modern Algorithm Design (Credits: 4)
The field of algorithm design has matured and grown in scope over the last sixty years – starting with the basic algorithmic questions of sorting and searching, to algorithms for problems from various disciplines; so that neary every field of human endeavour is being revolutionized by the algorithmic viewpoint. Students of this course will learn to use these modern tools irrespective of their future field of study or specialization.
CSE320 : Advanced Algorithms (Credits: 4)
Discrete optimization problems form the basis of solutions to problems in several areas of computer science, operations research and economics. The work-horse of discrete optimization is integer and linear programming. The course will introduce the theory of linear programs, as well as algorithms for solving them. We will then look at fundamental discrete optimization problems, study LP based techniques, as well as specialized combinatorial algorithms for solving these problems. We will also briefly cover integer programming and techniques to solve them. Students may be required to write a survey paper, or do a research project.
CSE322 : Theory of Computation (Credits: 4)
The course gives an overview over basic formal grammars and abstract machine models used in Computer Science. In particular, finite automata, pushdown automata, context-free grammars and Turing machines are studied with respect to their properties and limits. Based on Turing machines the concepts of decidability and recursive enumerability are introduced.
CSE333/533 : Computer Graphics (Credits: 4)
Pre-requisite: MTH100 , CSE101 , CSE201 , CSE102 ,CSE222
This course will provide basic concepts of computer graphics including necessary mathematics and algorithms. Primary focus of this course will be to understand the basics of 2D/3D rendering. The course will also cover various aspects of the rendering pipeline and realistic image synthesis using raytracing. The standard shader based OpenGL rendering API will be introduced, and used with lab exercises, assignments, and projects. The students will learn building complete graphics systems through projects.
CSE340/CSE540 : Digital Image Processing (Credits: 4)
Pre-requisite: MTH100 ,MTH201
Course includes fundamental theories and algorithms of digital image acquisition, color representation, sampling and quantization, frequency transform via DFT, enhancement, filtering, restoration, analysis, feature extraction, segmentation, morphological transform, and compression. Practical applications such as JPEG compression will be covered.
CSE341/541 : Advanced Biometrics (Credits: 4)
Pre-requisite: MTH201
This course will introduce advanced topics in biometrics to students. The course will involve studying algorithms for image quality, feature extraction and matching. To understand the concepts involved, topics from machine learning, image processing and pattern recognition will also be presented. The projects will enable them to design, implement, and analyze biometric systems.
CSE342/CSE542 : Pattern Recognition (Credits: 4)
Pre-requisite: MTH201
This course will introduce students to salient topics in pattern classification. Fundamentals and advanced theoretical and mathematical concepts related to classification techniques and learning paradigms will be discussed. The programming assignments will provide hands-on experience of implementing some of these techniques. The project component of this course will test the student’s ability to design, apply, and evaluate classifiers on appropriate datasets. The application domain for the projects will be from diverse areas such as object recognition, handwritten character recognition, and emotion recognition.
CSE343/CSE543 : Machine Learning (Credits: 4)
Pre-requisite: MTH100 , MTH201 , CSE101 ,MTH203
This is an introductory course on Machine Learning (ML) that is offered to undergraduate and graduate students. The contents are designed to cover both theoretical and practical aspects of several well-established ML techniques. The assignments will contain theory and programming questions that help strengthen the theoretical foundations as well as learn how to engineer ML solutions to work on simulated and publicly available real datasets. The project(s) will require students to develop a complete Machine Learning solution requiring preprocessing, design of the classifier/regressor, training and validation, testing and evaluation with quantitative performance comparisons.
CSE344/CSE544 : Computer Vision (Credits: 4)
Pre-requisite: MTH100
This is an introductory course on Computer Vision offered to undergraduate and graduate students. The goal is to develop understanding of the fundamental concepts in computer vision and enable students to understand and develop applications using existing tools. Students will be given theoretical and programming assignments targeted towards solving real-world computer vision problems. Groups of two or three will do a course project and show a demonstration at the end of the semester.
CSE345/CSE545 : Foundations of Computer Security (Credits: 4)
This course provides a principled introduction to techniques for defending against hostile adversaries in modern computer systems and computer networks. Topics covered in the course include Threat modeling; ACL mechanism, Access control list; Access Control; Matrix Types of ACL; network security, including cryptography and cryptographic protocols, firewalls, and network denial-of-service attacks and defenses; Crime-ware addressing issues like phishing, malware, social engineering; Auditing; Multilevel and multi-lateral security Information flow control, MAC, MLS; Security protocols. More advanced topics will additionally be covered as time permits, such as: Program Security; techniques to provide privacy in Internet applications; and protecting digital content (music, video, software) from unintended use.
CSE350/CSE550 : Network Security (Credits: 4)
Pre-requisite: CSE231 ,CSE232
Network security complements Security Engineering (CSE352/552) class. While Security Engineering focuses on host centered security postures, issues, and ptential defenses. Network Security approaches computer security from the point of view of network traffic flowing between communication peers, viz. confidentiality, system availability, authenticating and authorizing user accessing a networked service, access controls, anonymity and privacy.
CSE421/CSE621 : Complexity Theory (Credits: 4)
Computational problems can be studied from the point of view of computational resources (e.g., running time) required to solve them – this forms the notional of computational difficulty. Apart from the nature of the problem, the difficulty also depends on the underlying model of computation, including non-deterministic, non-uniform and randomized models. Problems can be related to each other based on their resource usage, and problems with similar difficulty can be grouped together to form a classification of computational problems into complexity classes. Computational complexity is about studying the above concepts, and is especially concerned with giving precise upper and lower bound on the amount of resources required to solve certain problems. This has had a profound impact on current algorithm design and cryptography, and still sees applications in areas outside of theoretical computer science.
CSE440 : Intelligent Systems I (Credits: 4)
The development of intelligent software systems is an area that is becoming increasingly important in applied Computer Science. The goals of this course are to enable students: (a) to understand the basic concepts and techniques underlying classical Artificial Intelligence, namely problem solving, search, representation and reasoning, decision making and learning; and (b) to read and to write programs in the Prolog programming language to help understand these concepts better.
CSE441 : Advance Biometrics (Credits: 4)
Pre-requisite: CSE340/CSE540
The course will utilize the concepts studied in Image Analysis and Pattern Recognition/Machine Learning courses. Project work will involve the implementation of advanced biometric algorithms pertaining to the face, fingerprint, iris, and multimodal modalities.
CSE501 : Designing Human-Centered Systems (Credits: 4)
Why are things so hard to use these days? Why does not this thing I just bought work? Why is this web site so hard to use? Why are users not liking my design? Why is my app not getting popular? These are frustrations that we have all faced from systems not designed with people in mind. The question this course will focus on is: how can we design human-centered systems that people find useful and usable? This course is an introduction to designing, prototyping, and evaluating user interfaces. If you take only one course in Human-Computer Interaction, this is the course for you. This course is heavily inspired by the course that Prof. Jason Hong teaches at CMU, Designing Human-Centered Systems.
CSE502 : Foundations of Parallel Programming (Credits: 4)
Pre-requisite: CSE101 , CSE102 ,CSE201
Constrained by the heat and power usage, today all computing devices are composed of multicore processors, with little or no increase in clock speed per core. In order to harness the power of the multicore processors, software applications being developed also needs to be parallelized. This makes parallel programming a very important paradigm of computing.This course introduces the fundamentals of parallel programming. It will cover both traditional approaches and new advancements in the area of parallel programming. A key aim of this course is to provide hands-on knowledge on parallel programming by writing parallel programs in different programming models taught in this course.
CSE503 : Program Analysis (Credits: 4)
Pre-requisite: CSE102 ,CSE201
This course will focus on static and dynamic program analysis techniques that can be used to perform tasks such as program verification, profiling, optimization, repair, and comprehension. The students will learn the concepts behind the techniques, and will apply their learning to develop analyses using the state-of-art tools. Ensuring program correctness can be very challenging. Programmers depend on testing to build some confidence in the expected behavior of programs. Although testing is essential, the complexity as well as the criticality of modern software demands more rigorous techniques, in addition to testing, to ensure software correctness. The properties that programs need to satisfy vary from safety properties to security properties and in terms of expressiveness from simple predicates that check the program states at specific execution points to regular expressions and context-free grammars that check the legality of traversed program paths. In this course, we will focus on program verification and the students will learn about static analysis techniques, i.e., the techniques that can be applied to programs without running the programs as well as about dynamic analysis (or runtime monitoring) techniques that analyze programs during runtime. The students will learn about the strengths and weaknesses of both techniques. In the static analysis, we will primarily focus on dataflow analysis, and learn about some standard analyses that are used in program verification and optimization. However, the course will also introduce students to some advanced static analysis topics such as symbolic execution, and will cover some topics related to security analysis. We will primarily use Java as programming language and “Soot” as a static analysis tool. In the dynamic analysis part, the students will learn to specify properties of interest mainly using regular expressions and finite state automata, and use aspects to build runtime monitors to check those properties. In the process, they will learn to develop ´┐Żaspects´┐Ż to instrument and monitor programs.
CSE506 : Data Mining (Credits: 4)
Pre-requisite: CSE202 , CSE101 , MTH100 ,MTH201
Data mining aims at finding the useful patterns in large data sets. Interest in the field is motivated by the growth of computerized data collection due to ubiquity of Internet enabled devices. This course will cover a set of techniques designed to be used for finding interesting patterns from the data. The techniques include classification, clustering, association rule minin and sequence mining. Students will learn and use the open source R statistical software, see http://www.r-project.org, and machine learning packages such as Weka in this course.
CSE507 : Database System Implementation (Credits: 4)
Pre-requisite: CSE102 ,CSE202
This course covers topics relating to components of a Database System including file structures, access methods, query processing and optimization, transactions, concurrency control, recovery, distributed databases, security and some trend topics (e.g., distributed databases, spatial databases, etc.)
CSE508 : Information Retrieval (Credits: 4)
Pre-requisite: CSE201 , CSE102 ,CSE202
This course will teach basic concepts, tools & techniques in the field of Information Retrieval (IR) & Search. It will cover theoretical foundations, implementation aspects, issues and state-of-the-art in the area of information retrieval, representation, organization, indexing and categorization. The course will cover topics such as retrieval models, inverted index construction, performance evaluation in information retrieval, search engine architecture, crawling, indexing, ranking, text categorization & clustering. In the end, trends and research issues will also be discussed.
CSE510A : Big Data Analytics (Credits: 2)
Pre-requisite: CSE102
Distributed processing frameworks have emerged as a feasible and cost effective way of analyzing the increasing volume of data. This course provides a solid understanding of two of the most popular of distributed processing frameworks – Hadoop and a more recent incarnation called Spark. Examples and hands-on exercises will prepare those taking this course to be able to apply these frameworks in practice.
CSE511 : Computer Architecture (Credits: 4)
This course forms a strong foundation in the understanding and design of modern computing systems. Building on a computer organization base, this course explores techniques that go into designing a modern microprocessor. Fundamental understanding of computer architecture is key not only for students interested in hardware and processor design, but is a foundation for students interested in compilers, operating systems, and high performance programming. This course will explore how the computer architect can utilize the increasing number of transistors available to improve the performance of a processor. Focus will be given to architectures that can exploit different forms of parallelism, whether they be implicit or explicit. This course covers architectural techniques such as multi-issue superscalar processors, out-of-order processors, Very Long Instruction Word (VLIW) processors, advanced caching, and multiprocessor systems.
CSE521 : Logic for Computer Science (Credits: 4)
Pre-requisite: CSE322
This courses introduces formal logics and their applications in computer science. The logics considered in detail are Propositional Logic and First Order Logic for which the concepts of syntax, semantics, satisfiability, validity, and logical deductions are clarified. Proof systems and logic algorithms are studied. Applications within Computer Science are illustrated.
CSE522 : Verification of Reactive Systems (Credits: 4)
Pre-requisite: CSE322
The course introduces abstract models for concurrent, reactive, non-terminating systems which are used for verification purposes. Various concepts of correctness in terms of equivalence or compliance with formal properties expressed in a temporal logic are considered. Algorithm verifying equivalence or compliance are analysed with respect to their complexity. During the second part of the course the students will use software tools to verify simple systems.
CSE523 : Randomized Algorithms (Credits: 4)
Pre-requisite: CSE102 , CSE121 ,MTH201
This course studies algorithms which, by design, may not be correct 100% of the time, or run within the stipulated resource always, but definitely do so in an overwhelmingly large number of cases. The course will be split into three main logical sections – tools from probability theory, algorithms which are probabilistic and analysis of deterministic algorithms for different input distributions. Some of the topics include Markov chain, random walk, Monte Carlo sampling, Minimax theorem, Randomised algorithms, Probabilistic analysis of Quicksort and Hashing.
CSE524 : Theory of Modern Cryptography (Credits: 4)
Pre-requisite: MTH201 ,CSE121
This course introduces students to the theoretical foundations of modern cryptography. We will study multiple notions of security under various models with a focus on provable guarantees of security. We will show how to use primitives having weak security properties to construct schemes satisfying very strong notions of security. The emphasis of the course will be on general principles related to encryption (symmetric amp; public key), digital signature, message authentication and key distribution but, for concreteness, we shall also look at a number of examples and applications. The focus will be analysis of provable properties, using theoretical tools like one-way functions, collision-resistant hashing, pseudorandomness, number-theoretic results. Other advanced topics that could be covered are commitment schemes, zero-knowledge proofs, random oracles, secret sharing, advanced notions of security, and multi-party cryptographic protocols.
CSE525 : Introduction to Graduate Algorithms (Credits: 4)
This course is an advanced form of an introductory algorithms course, and is meant to have a thorough grounding in core Algorithms required for pursuing PG degree in Computer Science. The course covers topics such as asymptotic notation, recurrence relation, graph algorithms, heaps, dynamic programming, greedy algorithms, divide and conquer, NP-completeness where the UG contents of each topic is first reviewed (in a fast-paced manner), and is followed by some advanced content.
CSE528A : Convex Optimisation (Credits: 2)
Pre-requisite: CSE344/CSE544
This short course is to introduce students (final year UG+ PG) to the world of optimisation, specifically through convex problems. Knowing which problems are Convex will help them to quickly decide on various tools available to solve them. They will also learn about various problems in domains of signal processing, machine learning and communications.
CSE530 : Distributed Systems Security (Credits: 4)
Pre-requisite: CSE231 ,CSE232
The aims of this course are to study the fundamental characteristics of distributed systems, including their models and architectures; the implications for software design; some of the techniques that have been used to build them; and the resulting details of good distributed algorithms and applications.
CSE531 : Multi-agent systems (Credits: 4)
Multi-agent systems is the study of interaction between multiple self-interested agents. The aim of this course is to provide an introduction to multi-agent systems, methods and algorithms to analyze several such systems under different settings. In particular, this course focuses on Game theory – cooperative and non-cooperative games, auctions and negotiation based methods. The multi-agent system techniques are general and have wide range of applications like e-commerce, robotics, health management, etc. The main application domain for this course is multi-robot systems.
CSE535 : Mobile Computing (Credits: 4)
The course prepares and trains the students to program mobile devices with understanding on constaints and opportunites that mobile devices offer. This course will cover challenges in mobile systems. It will also cover latest research in the field of Mobile Computing.
CSE538 : Wireless Networks (Credits: 4)
The course provides an in depth introduction to the state-of-the-art modeling of wireless networks, their simulation, and experimentation.
CSE541 : Advance Biometrics (Credits: 4)
The course will utilize the concepts studied in Image Analysis and Pattern Recognition/Machine Learning courses. Project work will involve the implementation of advanced biometric algorithms pertaining to the face, fingerprint, iris, and multimodal modalities.
CSE546 : Applied Cryptography (Credits: 4)
Pre-requisite: CSE121
In this course on Applied cryptography, we will learn about the following topics:Security notions, adversary powers, Perfect securityStream ciphers, block ciphers, hash functionsMessage authenticationPublic key cryptographySome interesting Cryptograhic protocols
Some mathematics will be required, and will be taught as needed. No background is necessary. Interest in mathematics and theoretical computer science is a prerequisite.
CSE552 : Security Engineering (Credits: 4)
Pre-requisite: CSE231
This course is designed to present the students a “host” centric approach to various aspects of computer software security. Broadly, the course would cover: Traditional multi-level security models (Bell La-Padula, Biba etc.), access controls, security in traditional computer programs and attacks against them (buffer/heap overflow attacks), defences against such attacks, writing secure programs (Secure Coding), Viruses/Malware and Trojans, OS level hardening, application and system level security primitives and APIs, cryptographic system primitives and APIs (how to (not) use (and break) them), system level authentication frameworks, introduction to allied topics-IDS, network security etc.
CSE555 : Introduction to Spatial Computing (Credits: 4)
Pre-requisite: CSE202 ,CSE102
This course introduces fundamental ideas underlying geo-spatial science, systems and services. These include spatial concepts and data models, spatial query languages, spatial storage and indexing, query processing and optimization, spatial networks and spatial data mining.
CSE556 : Natural Language Processing (Credits: 4)
This course will cover a broad range of topics related to NLP, including basic text processing (such as tokenization, stemming), language modeling, morphology, syntax, dependency parsing, distributional and lexical Semantics, sense disambiguation, information extraction etc. We will also introduce underlying theory from probability, statistics, machine learning that are essential to understand fundamental algorithms in NLP such as language modeling, HMM etc. This course will end with more advanced topics in NLP such as stylometry analysis, sentiment analysis, named-entity disambiguation, machine translation etc. The term projects will provide opportunity to the students to get hands-on experience on designing different real-world NLP models.
CSE560 : GPU Computing (Credits: 4)
Pre-requisite: CSE101 ,CSE102
This course will introduce parallel computing paradigms with focus on GPU programming to harness the massively parallel GPU architecture in solving computationally demanding tasks. The NVIDIA CUDA and industry standard OpenCL frameworks will be introduced and used with most of the labs. This is a project based course where the students will work on scientific computational problems.
CSE561 : Probabilistic Graphical Models (Credits: 4)
Pre-requisite: MTH201
This course will introduce the basic concepts of probabilistic graphical models. Graphical Models are a unified framework that allow to express and manipulate complex probability distributions in a compact and efficient way. They allow to one to reach mathematically sound conclusions in presence of limited and noisy observations. Many machine learning applications are tackled by the use of these models.
CSE562 : Advanced Computer Vision (Credits: 4)
This course will cover advanced topic in computer vision. We will examine data sources, features, and learning algorithms useful for understanding and manipulating visual data. The emphasis will be on scalability issues as well as acquiring the knowhow to work on interdisciplinary problems. The goal of this course is to give students the background and skills necessary to perform research in computer vision and its application domains such as robotics, healthcare, and forensics. Students should understand the strengths and weaknesses of current approaches to research problems and identify interesting open questions and future research directions.
CSE563 : Multimedia Computing and Applications (Credits: 4)
By the end of the course, the students will be familiar with the common computing fundamentals employed in a variety of multimedia and social media applications such as content-based multimedia processing, mining, retrieval and summarization, multimodal-based semantic and sentiment detection, and recommendations on social networks. The students will be exposed to the core techniques and algorithms spanning across the common and emerging multimedia applications such as the analysis of social media contents, users and their social relationships, and multimodal semantic and sentiment analysis. They will have experience in applying these techniques to novel situations and will be able to do analytical as well as empirical performance evaluation of the particular technique in the overall application context.
CSE565 : Software Defined Networking (Credits: 4)
Pre-requisite: CSE232
Traditionally, networking equipments consists of proprietary switching hardware with embedded software. This not only made manageability of networks complex but also stymied innovation. SDN paradigm proposed to change this, primarily by separating networking software into data and control planes. The data plane’s goal is to do switching in distributed hardware equipments. The control plane centrally governs what will be the switching rules at the data plane. As the control plane is separated from the switching hardware, it is easier to change its software, thereby speeding up software development cycle and in turn lowering the barrier for innovation. The separation of planes and centralization of control plane simplifies manageability of networks. In addition to these two benefits, SDN also facilitates network virtualization, which is a key enabler Cloud Computing. In this course, we will begin by getting familiarized to the aforementioned functions in the traditional networks. We will then learn how SDN changes the way networks will function now. We will look at open source technologies that enable deployment of SDN on real hardware and in simulation. We will see how all of networking functions, e.g. switching, routing, firewall, load balancers, and VPN, are instrumented in the new paradigm. We will explore SDN via lectures from the instructor, assignments, presentations of research papers by students, and a course project.
CSE570 : Virtual Reality (Credits: 4)
This course will introduce fundamentals of virtual reality (VR) systems. This will include fundamentals of real-time rendering, geometric modelling, display optics, sensors and tracking, vestibular systems and interface design. Advanced areas of VR including telepresence, procedural modelling of large virtual worlds, and designing multi-model interactions and interfaces for VR will also be discussed. This will be a project-based course using game engine based VR development.
CSE576 / ECE576 : Smart Sensing for Internet of Things (Credits: 4)
This course will introduce students to sensors and sensing systems that are in the “real-world” and are increasingly connected to the internet and are accessible via web technologies. The objective of the course is to understand IoT sensing systems, protocols, and technologies. An integral part of the course will be a IoT project that the students will have to design, build and demonstrate. The final project will span the full research cycle – from problem formulation to obtaining & analyzing results to paper writing.
CSE577 : Advanced Internet of Things (Credits: 4)
This course will be dealing with advanced topics in Internet of Things. This course is a sequel of the Internet of Things course which introduced students to basics of foundational IoT technologies. This course delves deeper into some of the technologies pertinent to IoT. Students are expected to learn by implementing protocols etc. in their programmming assignments. They will be exposed to some of the latest research findings in IoT and expected to perform thought exercises by writing research project proposals extending the frontiers of current IoT research. Finally, students will implement working prototypes of IoT systems inspired by algorithms proposed in research papers.
CSE5OM : Ontology Modelling (Credits: 4)
Knowledge Graphs (semantic descriptions of entities and their relationships) are heavily used in knowledge enabled applications across several domains such as life science, geoscience, healthcare, Internet of Things, smart cities etc. Commercial enterprises such as Google, Microsoft, Amazon, LinkedIn, IBM, GE, Siemens, Accenture, etc., use knowledge graphs in several of their applications. Ontologies encode knowledge of a domain in a machine processable form and act as the schema for the data in the knowledge graphs. In this course, we will learn how to design ontologies to capture domain knowledge and use them to power intelligent applications.
CSE5TAC : Topics in Adaptive Cybersecurity (Credits: 4)
Pre-requisite: CSE345/CSE545 ,CSE350/CSE550
This course focuses on providing students an interactive discussion based learning platform for exploration of topics in adaptive cyber security. The learning will be through instruction, course project and more importantly through discussions on student(s) presentation of assigned research papers. The instruction part of the course will cover basic contents required to understand the course materials, including topics such as threat intelligence, situational awareness and real-time adaptive security. Through this course, students can learn the state of the art and open problems in adaptive cyber security, thus enhancing their potential to perform research or pursue a career in this emerging area.
CSE5xx : Approximation Algorithms (Credits: 4)
A large number of scenarios arising in communication, transportation, e-commerce, logistics etc. can be modeled as combinatorial optimization problems. Since most of these problem are NP-hard, one needs to design heuristics which run fast and find sufficiently good solutions. The goal of this course is to introduce a systematic study of such heuristics, called approximation algorithms, and develop a mathematical tool kit to analyze their worst case performances. The lectures also cover some barriers to approximability of problems.
CSE5xx/ECE5xx : Reinforcement Learning (Credits: 4)
The course will introduce reinforcement learning as an approximate dynamic programming problem. We will consider exact versions of value and policy iteration, followed by approximations based on gradient methods, temporal difference based methods, and last but not least, simulation based methods like Q-learning.
CSE600A/ECE600A : Object Oriented Programming and Design (Credits: 2)
It is a 2 credit postgraduate level core course in advanced object oriented programming, designed to improve programming skills, and ability to use contemporary software development practices and tools. The course curriculum focuses on large software development, collaborative development environment, automatic testing and deployment, common libraries and continuous integration. It also aims to enhance the quality of design in terms of scalability and maintainability with design principles and design patterns. Along with course, students get an opportunity to learn development tools like IDEs and common frameworks.
CSE601 : Compilers (Credits: 4)
Pre-requisite: MTH100 , CSE101 ,CSE201
The course covers principles of compiler design including introduction to compiler technology, overview of compiler followed by in depth study of various phases and component of compilers including lexical analysis, syntax analysis, semantic analysis, intermediate code generation, run time environment as well as machine code generation and optimization. The student will learn writing a complete working compiler in a modular fashion through intensive lab assignments and will be exposed to some advanced topics in compilers.
CSE602 : Program Optimization (Credits: 4)
With the emergence of many new computing platforms such as multi-core, GPUs etc. automatic program optimization has taken on a renewed importance. In this course, students will analyze programs and find and leverage opportunities to improve performance, memory footprint, locality etc. The course will cover optimizations such as redundancy elimination, code scheduling, vectorization, data layout and parallelization. A course project using state-of-the-art tools will give students hands-on experience in this area.
CSE606 : Data Warehousing (Credits: 4)
The international market for Business Intelligence and Data warehouse is increasing rapidly and is currently estimated to be in hundreds of billion of US dollars. A number of Indian companies, even in NCR of Delhi, are already carrying out projects in the area. Yet, there is an acute shortage of skilled human resources in the subject and the course attempts to plug this gap. Students will be taken over the development life cycle of a data warehouse starting from requirements engineering, systems design and implementation phases. The application environment in which a data warehouse is embedded shall be brought out so that the value of the new technology is clearly discernable. The course will use open source tools for development.
CSE609 : Statistical Computation (Credits: 4)
Pre-requisite: MTH201
The objective of this course is to provide knowledge about concepts and methods of statistical analysis. Data can be generated by machine or manually collected during surveys. All kinds of data-sets need analysis to the point such that we can make conclusions about the trend in the data. Hence statistical modelling and inference is often needed. Recently multiple kinds of statistical modelling approach have been suggested. Some statistical methods have been implemented as tools while some are implemented by users according to need of data-analysis. This course would provide the basics of statistical inference and methods introducing some computational techniques to perform modelling of systems. Through this course student will also learn about weakness and strength of such statistical modelling methods which could guide them to distinguish or develop suitable analysis techniques.
CSE622 : Introduction to Quantum Computing (Credits: 4)
Pre-requisite: MTH101 , MTH201 ,CSE222
This is an introductory course about designing solutions for computation problems using the quantum computing models. It has been shown that these models allow us to solve certain problems more efficiently compared to classical platforms (like Digital circuits or Turing machines). On the other hand, there are certain scenarios where this model is siimlar or even worse than classical platforms. In this course a student will learn about the models and interesting solutions (circuits, algorithms) for some problems from the perspective of computer science. The first half of the course will introduce the postulates of quantum computing, operations and operators and basic structure of circuits and algorithms on the circuit model and the Turing machine model. We will also cover some simple but amazing solutions like quantum teleportation, super-dense coding and Deutsch-Jozsa algorithm. The second half of the course will cover important algorithmic tools like the quantum Fourier transformation, amplitude amplification and eigenvalue estimation and discuss important algorithms like Grover’s search, Shor’s factoring, BB84 protocol which bring significant efficiency compared to classical algorithms. Depending upon time and interest, some recent advances will be covered. Students may have to read a recent/classical research paper and/or simulate some of their algorithms and circuits on some quantum circuit simulator (e.g., Microsoft LIQUi simulator) to get a better feel about the system.
CSE631 : Advanced Operating Systems (Credits: 4)
The objective of this course is to study existing approaches for building an OS kernel. We aim to discuss monolithic kernels, lightweight kernels, embedded OS, distributed OS, etc. We will discuss the pros and cons of each of these design decisions. We will see how modern languages play a crucial role in designing the end to end software stack. Students are expected to read research papers before the class discussions.
CSE633 : Robotics (Credits: 4)
The goal of this course is to provide comprehensive knowlege is robotic from theory to implementation. The course will cover transformations, planning in discrete and continuous spaces, collision avoidance, localization, and vision-based control. We will use ROS as the software platform on which the simulations will be carried out and the projects can be carried on hardware. ROS allows seemless integration from simulation to real-world implementation.
CSE635 : Programming Cloud Services for Mobile Applications (Credits: 4)
Pre-requisite: CSE231 , CSE232 ,CSE535
Mobile and Cloud Systems are evolving very fast and have now become very complex system comprising of web services, database integration etc. A knowledge of Cloud Mobile systems and ability to build complete end-to-end systems is essential. Building upon the foundations of mobile computing course, this course aims to provide a thorough understanding of Cloud Mobile systems and also develop capability to build end-to-end systems using a combination of web technologies e.g. JSON, NoSQL databases, REST, HTTP, OAuth etc.
CSE638 : Wireless Networks (Credits: 4)
A brief introduction to different applications and their requirements in terms of typical metrics of interest like throughput and delay is followed by lectures on the wireless channel and physical layer (OSI layer 1) technologies, with emphasis on their abstractions as relevant to understanding OSI layers 2 and above in 802.11 like wireless networks. Medium access techniques, for example, as specified in 802.11, a distributed network of nodes (for example, a network of vehicles or sensors in a field) can use to share the wireless medium are taught. Power and rate control, spatial reuse, self-organization, and scheduling in ad hoc wireless networks are taught. Time permitting common routing protocols and TCP over wireless are covered. Most topics involve a mix of analysis and experimentation.
CSE640 : Collaborative Filtering (Credits: 4)
Pre-requisite: MTH100
Recommender systems have around for sometime. But in recent times with the boom of retail online trade recommendation systems and the hype around the NetFlix competition has made recommender systems a major topic in data mining. In this course we will learn about different aspects of recommender systems with particular emphasis on its algorithms.
CSE641 : Deep Learning (Credits: 4)
Recent advances in machine learning and specifically deep learning techniques have made it a popular and often a default option in many problem domains. The objective of this course is to introduce students through some of the latest techniques in deep learning. The focus of the course will be hands on and the students should be able to design intelligent deep learning systems for solving the problems in the area of their interests.
CSE642 : Advanced Pattern Recognition and Machine Learning (Credits: 4)
Pre-requisite: CSE342/CSE542 ,CSE343/CSE543
This is an advanced course on Pattern Recognition and Machine Learning. It is intended for senior undergraduate and graduate students who already have background in PR or ML. The course is designed as a set of special topics that will be covered through research papers and books. The course will focus on algorithms and models along with providing a good perspective of different real world applications.
CSE643 : Artificial Intelligence (Credits: 4)
Pre-requisite: CSE102
This is an introductory course in Artificial Intelligence. This course introduces the students to various search techniques, knowledge representation, reasoning, and learning.
CSE645 : Digital and Cyber Forensics (Credits: 4)
Host-Based Forensics provides a systematic introduction to the field of digital forensics. The course aims to familiarize students with the forensic process and to apply forensic principles with many tools of the trade. Upon completion of this course, a student should feel confident in participating in a digital forensic investigation. This course focuses on the forensic process (planning, acquisition, analysis, reporting) as it relates to host system forensics. This course will also concentrate on providing introduction to cyber crime and on the collection and analysis of evidence left on the cyber world. A student will feel comfortable with the full scope of a cyber forensic investigation. Class periods will consist of lecture and exercise. Students will learn about the data types that may have forensic value; and will be introduced to several techniques for capturing data off the network and how each option impacts the data that is available. Students will be further presented with several incident response challenges on live networks and be tasked with determining and proving what happened. They will have to collect various logs, network traffic, create timelines, and draw conclusions
CSE650 : Privacy in Location-based Services (Credits: 4)
Pre-requisite: CSE102
Personalised services for mobile devices are currently hot on wheels due to the ubiquity of these devices and the increasing popularity of personalised services. The most popular form of these services enable us to obtain information on-the-go, information which depend on the spatio-temporal location and the identity of the requesting user. No wonder these services have caught the fancy of global population, and currently, there are many commercial ventures engaged in large business around the world. On the other hand, privacy advocates claim that such services come with an inherent risk of privacy breach in the sense that service is provided based on private information. This course will focus on issues related to these risks of privacy breach from various perspectives such as privacy threats in location based services, different computational notions of privacy, mechanisms to mitigate privacy attacks, tradeoff in privacy and utility in different types of location based services, database algorithms to execute private queries.Students will be assigned some papers each week which they have to present as well as review and implement.
CSE694F : Multimedia Security (Credits: 4)
Pre-requisite: CSE340/CSE540 ,ECE350
Media Security course introduces the multimedia fundamentals and security related issues such as rights protection, authentication, traitor tracing, forensics, adversarial signal processing, covert communication and surveillance. Overview of different aspects of multimedia security and compression techniques, architectures and standards will be discussed. Some of the course topics are information hiding and its applications, media compression, robustness analysis, encryption, passive forensics, source identification, multimedia signatures and egocentric video forensics, adversarial signal processing, Discrete Fourier/Wavelet Transform, electrical network frequency estimation, visual surveillance, steganography and steganalysis.
CSE734 : Advanced Topics in Mobile Computing (Credits: 4)
Pre-requisite: CSE231
Mobile Computing research is progressing at a fast pace. While the initial research challenges were about enabling “information anywhere, anytime”, we have largely achieved that aim today with mobile devices providing ubiquitous email and web access. With initial goals achieved, mobile computing research now routinely involves use of several other technologies, e.g. cloud computing, sensing and activity inference, opportunistic communications, etc. to create the next-generation mobile computing systems. In this course, through latest research papers, several of these technologies, e.g. external sensor integration, power consumption and analysis, cross-platform applications etc., are studied.
CSE749 : Network Anonymity and Privacy (Credits: 4)
Overview of topics to be covered: Historical network anonymity and privacy protocols ndash; MIXes and MIXnets, various theoretical and practical attack strategies against high and low-latency anonymity networks, practical traffic analysis against modern anonymity systems like Tor, Freenet, GNUnet, JAP, defenses against traffic analysis attacks, performance vs anonymity trade-offs, side-channel attacks, covert channel communications, pseudonymity and privacy, Anonymous P2P communication systems (e.g. Oneswarm), traffic analysis against anonymous VoIP communications, Internet censorship and censorship resistance tools and strategies, large-scale Internet surveillance and anti-surveillance, decoy routing.

Course structure:
Good part of the first half of the class (about 5 weeks) would involve the instructor giving lectures to students in topics pertinent to the research areas. The remainder of the classes would involve the students presenting relevant papers (of their choice) to everyone in the class. Students (other than the presenter) would be expected to participate in productive discussion about to various challenges of the research topic being discussed. Moreover every week, each student would be expected to submit a weekly write-up which would mostly be either a review or critique of a paper, or some design questions, relevant to the topics covered in the class (e.g. what do you think could be vulnerabilities in the XYZ system that the authors didnrsquo;t mention upfront in the paper and could you suggest ways to defend the system against those vulnerabilities). There would be a mid-term where the students would be tested on topics covered during the lectures. For finals, the students would be expected to write a survey paper, reviewing several papers on a chosen topic.
CSE793A : Topics in Cryptanalysis (Credits: 4)
This course aims for analyzing the security of various cryptosystems. The course will befocusing mainly on the fundamentals of cryptanalysis techniques as mentioned: Differential Cryptanalyis; Linear Cryptanalysis; Meet in the Middle Attack; Rebound Attack; Time-Memory Trade-off Attack; Hash function attacks (Damgaard’s MD4 attack, Wang’s attack on MD4, MD5, SHA-1); Attacks against RSA, Number Field Sieve; Side channel attacks (Cache timing, Fault attacks, Memory remanence); Algebraic attacks; Quantum Attacks (Shor’s algorithm, Grover’s algorithm) etc.
CSE798B : Special Topics in Database Management: Algorithms in Spatial Databases (Credits: 4)
Pre-requisite: CSE102 , CSE202 ,CSE201
This course introduces algorithms in spatial databases dealing with storing, retrieving, and reasoning over objects with spatial attributes. The most widely used spatial attribute of a spatial object is its location. Spatial objects may also have extent, such as a line segment or a polygonal area. This course covers index structures and algorithms for solving queries such as NN, RNN, Aggregate NN, Aggregate RNN, Spatial Join, and Skyline Queries.
CSExxx/DESxxx : Introduction to Media Computing (Credits: 4)
This course introduces students to:The fundamental principles, theory, algorithms, and data structures behind digital representation, compression, synchronization, and processing of image, audio, and video data types, andChallenges and issues in developing media-rich applications, such as media streaming and media retrieval. Students will be exposed to the workings of common media file format and common manipulation techniques on media data.