Computer Science and Engineering (Updated: 20th Feb 2017)

ID1303

Programming in C/C++ with Lab

Credits: 2

Semester: Segment:

Pre-Req:

Introduction to C and C++ programming. Problem solving and algorithms. Input and output operations, decision control structure, loop control structure, arrays, strings, etc.

Pointers, arrays, structures, functions, file operations, classes, object oriented programming.

Lab is also included in this course.

CS1310

Discrete Structures I

Credits: 2

Semester: Segment:

Pre-Req:

Concept of mathematical proof, logic, proof by contradiction, mathematical induction, constructive proofs, sets, relations.

Illustration of proof techniques in various mathematical topics.

CS1340

Discrete Structures II

Credits: 2

Semester: Segment:

Pre-Req: CS1310

Combinatorics. Basic counting principles, inclusion-exclusion, binomial/multinomial coefficients, bijections, double counting, pigeon-hole principle, recurrence relations.

Introduction to graphs. Degree, isomorphism, diameter, connectivity, trees, matchings, colorings, planarity.

CS1353

Introduction to Data Structures

Credits: 3

Semester: Segment:

Pre-Req:

Abstract data types, Big-Oh notation, Basic data types – Stacks, Queues, Trees

CS2233

Data Structures

Credits: 3

Semester: Segment:

Pre-Req: CS1353

More data types. Dictionaries. Binary search trees, Balanced search trees, Hash tables; Heaps, Priority queues, Graphs

CS2323

Computer Architecture

Credits: 2

Semester: Segment:

Pre-Req: Introduction to Data Structures, Introduction to Programming

The objective of the course is to teach the fundamentals of computer architecture to CSE undergraduate students. The course would cover the following topics:

  • Instruction set architecture
  • Micro architecture
  • Architecture and performance
  • Arithmetic operations in processors
  • Enhancing performance with pipelining
  • Memory subsystem - cache and virtual memory
  • Input/output organization

CS2400

Principles of Programming Languages-I

Credits: 1

Semester: Segment:

Pre-Req:

Programming language syntax, basics of compilers, names, scopes and bindings, control flow, data types, subroutines and control abstraction. Various paradigms of programming languages.

CS2410

Theory of Computation

Credits: 2

Semester: Segment:

Pre-Req: CS1310, CS1340

Alphabets, languages, finite state machines - deterministic and non-deterministic finite automata.

Context Free Grammars, Context Free Languages, Parse trees, Push Down Automata, Pumping lemma for CFLs and applications, CYK algorithm

Turing machines, Variants, Undecidability theory

CS2420

Introduction to Complexity Theory

Credits: 1

Semester: Segment:

Pre-Req: CS2410

Time and Space bounded computation. Reductions, theory of NP completeness, Introduction to time and space complexity.

CS2433

Principles of Programming Languages-II

Credits: 3

Semester: Segment:

Pre-Req: CS2400

Functional programming, Object Oriented programming, Logic programming, Lambda calculus, Concurrency, Scripting languages, Programming language semantics.

CS2443

Algorithms

Credits: 3

Semester: Segment:

Pre-Req: Data Structures, Discrete Structures I,

Discrete Structures II

Algorithmic Design Paradigms, Divide and Conquer, Analysis for Divide and Conquer, Sorting, Greedy Algorithms. Dynamic Programming, Graph Algorithms (DFS, BFS, Topological Sort, Single Source Shortest Path, Spanning Trees, All Pair Shortest Path, Matching, Max Flow), FFT.

CS3303

Software Technologies

Credits: 2

Semester: Segment:

Pre-Req: Introduction to Programming, Introduction to Programming Lab

Latest technologies like Java Script, JSP, Python, Android, Perl, etc to design software artifacts.

CS3320

Compilers I

Credits: 1

Semester: Segment:

Pre-Req:

Syntax directed translators, Finite automata, Regular Expressions, Lexical analysis, Context free languages and grammars, Syntactic analysis,  Bottom-up and Top-down Parsing, Syntax directed translation, Lex and yacc as tools for lexical analysis and parsing.

CS3423

Compilers II

Credits: 3

Semester: Segment:

Pre-Req: CS3320

Review of compilation process, semantic analysis, intermediate code generation, runtime, code generation, introduction to simple machine independent optimizations.

CS3510

Operating Systems I

Credits: 1

Semester: Segment:

Pre-Req: Introduction to Programming, Introduction to Data Structures Either have these prerequisites for all of OS, NW, Compilers and DBMS, or have none.

History of OSs, Concurrency vs parallelism, Overview of Process management, Memory management, File systems

CS3523

Operating Systems II

Credits: 3

Semester: Segment:

Pre-Req: Operating Systems I

Process management: process states, process vs thread, scheduling algorithms, system calls, IPC. Process synchronization: Semaphores, Monitors, Deadlocks, Main memory: Paging system, File system; Virtual memory: demand paging and page replacement algorithms, File system implementation, Disk management, and I/O management; Case studies on Windows/Linux OSs.

Programming assignments related to OS features and their implementation. Further, students enhance functionalities of open-source toy OS named Minix3 by Andrew S. Tanenbaurm as part of the group projects.

CS3530

Computer Networks-I

Credits: 1

Semester: Segment:

Pre-Req: Computer Networks-I; Operating Systems II

Basics and History of Computer Networks, TCP/IP protocol stack, Application layer (WWW, Email, DNS), Protocols at Transport layer, Network layer and Data link layer.

Lab: Client-Server Design using Socket programming in C/C++/Java; Wireshark assignments on DNS, HTTP, DHCP, TCP, UDP, IP, Ethernet, ARP, etc.

CS3543

Computer Networks-II

Credits: 3

Semester: Segment:

Pre-Req:

Network congestion, TCP vs UDP, IPv4 vs IPv6, Routing algorithms, Routing in Internet, ARQ protocols, Local Area Networks (Ethernet, Wi-Fi) and Multimedia Networking;

Implementation of multi-threaded Web Server/Web Proxy with Caching/Filtering features, Sliding Window protocol implementation, performance study of various TCP/IP variants. Hands-on with Cisco/HP routers.

CS3550

Introduction to Database Management Systems

Credits: 1

Semester: Segment:

Pre-Req:

Purpose and evolution of database management systems, Relational model of data, Formal relational languages (relational algebra/calculus), SQL, Introduction to database design

CS3563

Database Management Systems (with Lab)

Credits: 3

Semester: Segment:

Pre-Req: Introduction to Database Management Systems, Introduction to Database Management Systems Lab

Advanced SQL (procedures/functions/triggers), Database design and normal forms, Database application development, Storage structures and indexing/hashing, Query processing and optimization, Transactions, Lock-based concurrency control.

CS4443

Software Engineering (includes Lab)

Credits: 3

Semester: Segment:

Pre-Req: Introduction to Programming,

Data Structures (and Lab)

Introduction to Software Engineering: Importance, challenges, approaches. Software Processes.

Requirements Engineering, Software Architecture, Planning, Design, Coding, Testing, Software Project Management, Advanced topics like Formal Methods in Software Engineering

CS5020

Pattern Recognition

Credits: 3

Semester: Segment:

Pre-Req:

Basics of pattern recognition, Bayesian decision theory, Classifiers, Discriminant functions, Decision surfaces, Parameter estimation methods, Hidden Markov models, dimension reduction methods, Fisher discriminant analysis, Principal component analysis, Non-parametric techniques for density estimation, non-metric methods for pattern classification, unsupervised learning, algorithms for clustering: K-means, Hierarchical and other methods

CS5030

Advanced Topics in Data Management

Credits: 3

Semester: Segment:

Pre-Req:

Parallel and distributed database systems. Advanced query processing & optimization – Volcano optimizer, decorrelation techniques, holistic optimization of database applications. Adaptive query processing. Streaming databases. Data warehousing and OLAP. Spatial databases and indexing of spatial data. XML.

CS5060

Advanced Computer Networks

Credits: 3

Semester: Segment:

Pre-Req:

Basics of Computer Networking, TCP/IP protocol stack, Local Area Networks (Ethernet, Wi-Fi), Network Management, Network Security, Multimedia Transport, Next generation Internet architectures, Green Communication Networks, and Data Center Networking.

Performance studies using QualNet simulator and lab assignments using Seattle GENI testbed.

CS5190

Soft Computing

Credits: 3

Semester: Segment:

Pre-Req:

Competitive learning models: Principle Component Analysis (PCA); Self-organizing maps (SOM); Information theoretic methods: Entropy, mutual information, K-L divergences; Independent component analysis (ICA), Maximum entropy method; Pulsed neural networks: Spiking neuron model, Integrate-and-fire neurons; Fuzzy Logic and Fuzzy systems,  Fuzzy neural networks, Fuzzy K-means algorithm; Genetic Algorithms: Evolutionary computation, Genetic operators

Machine Learning

Credits: 3

Semester: Segment:

Pre-Req:

Classification, clustering - fuzzy c-means and hierarchical, decision surfaces, parameter estimation methods,  Bayesian  decision  theory, Markov  models, HMMs, dimension reduction methods, principal component analysis, SVD, Fisher discriminant analysis, perceptrons, support vector machines, unsupervised learning and k­-means clustering, non-parametric methods, applications in real world.

CS5200

Approximation Algorithms

Credits: 3

Semester: Segment:

Pre-Req:

NP-hardness and approximation, approximation ratios and schemes, greedy algorithms, set cover, linear programming and rounding, primal-dual method, FPTAS for knapsack problem, bin packing, Euclidean TSP, introduction to hardness of approximation.

CS5230

Visual Recognition

Credits: 3

Semester: Segment:

Pre-Req:

Introduction to Representation, Learning, Detection, Recognition of objects, activities and their interactions from images and videos; Human visual recognition system; Recognition methods:

Low-level modeling (e.g. features), Mid-level abstraction (e.g. segmentation), High-level reasoning (e.g. scene understanding); Detection/Segmentation methods; Context and scenes, Importance and saliency, Large-scale search and recognition, Egocentric vision systems, Human-in-the-loop interactive systems, 3D scene understanding.

FC5264  

Advanced Compiler Optimization Techniques

Credits: 1

Semester: Segment:

Pre-Req:

The objective of this course is to learn basic and advanced compiler optimization techniques, either traditional or modern in their scope, or scalar-variable based or loop-optimization based in their application or machine independent or dependent in their variety. The initial part of the course would be devoted to a collection of traditional compiler analyses and optimizations that are primarily based on control flow and data flow analyses. This will be followed by studying more high-level optimizations that are based on the static single assignment intermediate representation as well as low-level optimizations like register allocation and instruction scheduling and software pipelining. The later part of this course would be devoted to a model named polyhedral compilation where for-loops can be transformed to run efficiently on advanced architectures like multi-core or GPU using rational and integer linear programming techniques. Here, the focus would be on basics of the three phase process of dependence analysis, affine scheduling and code generation.

FC5265

Software-Defined Networks

Credits: 2

Semester: Segment:

Pre-Req:

Software-Defined Networks is an active research topic to address the existing issues in the enterprise and global networks as well as to enable innovative networking that is not restricted by the traditional network architecture.  This course conducts the analysis and solution development for the existing challenges in the computer networks.  We introduce SDN for the solution development, system design and its implementation.  The expected outcome of this course is the running source codes and systems that will be proposed and developed by the students as well as a writing for publishing such outcomes for public.

FC5268

Indexing Spatial and Temporal Data

Credits: 1

Semester: Segment:

Pre-Req: 3rd Yr CSE BTechs and onwards

The course introduces indexing techniques for spatial and temporal data, covering even more abstract metric spaces.  It describes a range of indexing techniques targeting different types of data, including their underlying principles and properties, as well as their support for queries and updates. The contents of this course are collected from state-of-the-art research papers (i.e., not found in textbooks).

Below is a broad breakdown of the course:

1. Indexing low-dimensional data (1-5 dimensions)

E.g. Indexing Spatial Data with R-trees, R-tree variants, Space-Filling

Curves (Hilbert, Z-curves etc), Quad-trees etc.

2. Indexing high-dimensional data

E.g. Locality Sensitive Hashing (LSH), VA File

3. Indexing Metric Spaces

E.g. Metric Trees, GNAT, VP-Tree, iDistance

4. Indexing Time Series

E.g. TS tree, Chebyshev Polynomials, Wavelet-based indexing, MR Index

FC5269

High performance computing using R

Credits: 1

Semester: Segment:

Pre-Req:

  • Introduction
  • The parallel R taxonomy
  • lappy and foreach-based parallelism
  • Map reduce based parallelism

CS5300

Parallel and Concurrent Programming

Credits: 3

Semester: Segment:

Pre-Req: Data Structures, Operating Systems

This course will provide an introduction to parallel and concurrent programming. It will focus both on correctness and efficiency of multi-threaded programs.

Introduction; Mutual Exclusion; Concurrent Objects; Foundations of Shared Memory; Consistency condition for concurrent objects: Sequential consistency, Linearizability; Consensus; Universality; Spin Locks; Multi-thread Linked Lists; Queues and Stacks; Counting; Hash Sets; Futures and Work-Stealing; Barriers; Transactional Memory; Parallel Graph and Marix Algorithms

CS5310

Advanced Operating Systems for Pervasive Computing

Credits: 1

Semester: Segment:

Pre-Req: Operating Systems

  • Introduction to Advanced OS Systems & Architecture
  • Linux Kernel Frameworks & Infrastructure
  • File-System Interface & Implementation
  • Linux I/O Systems

CS5311

Pervasive Computing Lab

Credits: 2

Semester: Segment:

Pre-Req: Operating Systems

  • Linux Kernel Frameworks & Infrastructure
  • Multimedia Framework Architecture
  • Network Framework
  • Graphics and UI Frameworks
  • Web Framework
  • Application Development
  • Introduction to IoT

CS5320

Distributed Computing

Credits: 3

Semester: Segment:

Pre-Req: Data Structures and Operating Systems or Introduction to Operating Systems

Termination Detection Algorithms; Reasoning with Knowledge; Distributed Mutual Exclusion Algorithms; Deadlock Detection Algorithms; Global Predicate Detection; Distributed Shared Memory; Checkpointing and Rollback Recovery; Consensus and Agreement; Failure Detectors; Distributed file servers; Distributed programming environments: Communication primitives, selected case studies.  (Note: Some topics may be added/deleted to suit specific offerings of the course)

CS5330

Introduction to Statistical Natural Language Processing

Credits: 2

Semester: Segment:

Pre-Req:

Probability Theory : Probability space, Random variables, probability distributions, joint and conditional distributions. Information Theory : Entropy, mutual information, divergences, Hypothesis testing.

N-gram and continuous space language models, distributed representations, probabilistic taggers and sequence labeling (HMM, maximum entropy models, conditional random fields), probabilistic parsing and structured prediction, probabilistic topic models, statistical machine translation.

CS5343

Computer and Network Security

Credits: 3

Semester: Segment:

Pre-Req: OS and Computer Networks

It covers foundations of cryptography, system security, network security, Wi-Fi security, web security, mobile platform security with hands-on assignments and projects.  

CS5380

Introduction to Wireless Networks1

Credits: 1

Semester: Segment:

Pre-Req: Computer Networks-1

Fundamentals of Wireless Communication, Wired vs Wireless Networks, Overview of various wireless technologies: Wireless LANs, Cellular Systems, Mobile Ad hoc Networks, Bluetooth, Zigbee, etc.

CS6140

Video Content Analysis

Credits: 3

Semester: Segment:

Pre-Req:

Introduction to video content analysis, feature extraction, video structure analysis –shot and scene segmentation, content based video classification, video abstraction – skimming and summarization, event detection and classification, indexing for retrieval and browsing, Applications –Movie and sports video analysis, news video indexing and retrieval etc.

CS6180  

Systems Security

Credits: 3

Semester: Segment:

Pre-Req:

Understand the fundamental principles of access control models and techniques, authentication and secure system design. Have a strong understanding of different cryptographic protocols and techniques and be able to use them. Apply methods for authentication, access control, intrusion detection and prevention.

Introduction Motivating examples, Basic concepts: confidentiality, integrity, availability, security policies, security mechanisms, assurance.Access to the System, Discretionary Access Control, Passwords for File Access, Capability List, Owner/Group/Other, Access Control Lists, Trojan Horse Threats, Mandatory Access Control, Security Models , Role of a Security Model , Practical Applications of a Model, Types of Security Models, Characteristics of a Security Model, State-Machine Models, Examples of a State Machine Model, Adding Constraints to State-Machine Access Models, The Bell and La Padula Security Model, Information-Flow Models, Informal Model-to-System Correspondence,

Mapping the Functions, Mapping the Variables, Unmapped Functions and Variables Firewalls and Web Security - Packet filters, Application level gateways, Encrypted tunnels, Cookies, Web security problems Introduction to cryptography, Secret key cryptosystems, Modular Arithmetic and Public key cryptosystems, Public key cryptosystems, Diffie-Hellman and RSA Message digests, digital signatures, Identification and authentication, Passwords, Biometrics, One-time passwords and challenge response schemes, Kerberos, Kerberos, SSL, SSH.

CS6190  

Advanced Topics in Cryptology

Credits: 3

Semester: Segment:

Pre-Req:

Reading research papers in the area of cryptology and understanding the state of the art in the subject.

CS6200

Advanced topics in formal methods

Credits: 3

Semester: Segment:

Pre-Req:

This course will involve a reading of important papers in the area of formal methods. It will be preceded by a review of prerequisite concepts in logic, verification, model checking and automata theory.

CS6210

Advanced Machine Learning

Credits: 3

Semester: Segment:

Pre-Req:

Generative models for discrete data, Gaussian Models, Bayesian Statistics, Linear Regression, Logistic Regression, Directed graphical models (Bayes nets), Mixture models and the EM algorithm, Sparse linear models. Kernels: Kernel functions, kernel trick, Support vector machines (SVMs), Kernels for building generative models. Markov and hidden Markov models, State space models, Undirected graphical models (Markov random fields), Monte Carlo inference, Markov chain Monte Carlo (MCMC) inference, Graphical model structure learning, Deep learning, Boosting, On-Line learning, Decision Trees, Ranking. Compressive Sensing and Dictionary Learning: Pursuit algorithms and applications for imaging and vision.

CS6220

Computer Vision

Credits: 3

Semester: Segment:

Pre-Req:

This course aims for students to (1) understand and apply fundamental mathematical and computational techniques in computer vision and (2) implement basic computer vision applications. Students successfully completing this course will be able to apply a variety of computer techniques for the design of efficient algorithms for real-world applications, such as optical character recognition, face detection and recognition, motion estimation, human tracking, and gesture recognition. The topics covered include image filters, edge detection, feature extraction, object detection, object recognition, tracking, gesture recognition, image formation and camera models, and stereo vision.

CS6230

Optimization Methods in Machine Learning

Credits: 3

Semester: Segment:

Pre-Req: Basic Machine Learning or Soft Computing course

Introduction to Optimization, Convex Sets, Convex Functions, Lagrange Duality, Convex Optimization Algorithms, Second-order cone models, Semi-definite programming, Semi-infinite programming, Minimax, Sublinear algorithms, Interior Point Methods, Active set, Stochastic gradient, Coordinate descent, Cutting planes method,  Applications to Image/Video/Multimedia Processing

CS6300

Topics in Compiler Optimizations

Credits: 3

Semester: Segment:

Pre-Req: CS3020, CS6240, CS6250

This advanced graduate level course will focus on a melange of selected topics in Compiler Optimizations. It is mostly a research based course where the registrants will focus on studying state-of-the-art algorithms, in a traditional setting or in the polyhedral compilation: studying and improving the existing algorithms published in top compiler conferences or the ones implemented in LLVM, Polly, PPCG, Pluto, etc.

CS6310

Quantum Computing I

Credits: 1

Semester: Segment:

Pre-Req: Open to third year BTech CSE onwards

 Introduction to Quantum Mechanics--the

mathematics and physics; Quantum Circuits; Deutsch and Deutsch Jozsa algorithms

CS6320

Quantum Computing II

Credits: 1

Semester: Segment:

Pre-Req: CS6310

Quantum Algorithms: Shor's Integer Factoring, Grover's unordered

search, Hidden Subgroup Problem for various groups, Other Quantum Algorithms

CS6330

Quantum Computing III

Credits: 1

Semester: Segment:

Pre-Req: CS6310, CS6320

Quantum Error Correction, Quantum Information Theory and Quantum

Cryptography

CS6340

Quantum Computing IV

Credits: 1

Semester: Segment:

Pre-Req: CS6310, CS6320, CS6330

Topics in quantum computing and information; Latest advances in the field.

CS6350

Topics in Combinatorics

Credits: 3

Semester: Segment:

Pre-Req: Self-assessment. Prior approval of the course instructor is needed

This advanced graduate level course on combinatorics will focus on selected topics such as extremal combinatorics, probabilistic techniques, algebraic method in combinatorics etc.

CS6360

Advanced Topics in Machine Learning

Credits: 3

Semester: Segment:

Pre-Req: Self-assessment: Should have prior knowledge in machine learning, either through IIT-H or Coursera courses. Prior approval of the instructor is needed.

This advanced graduate level course on machine learning will focus on selected topics such as deep learning, probabilistic graphical models, optimization in machine learning, etc. The course assumes that the student has basic knowledge in machine learning, and will have a research focus. The objective of the course will be to get a deeper understanding of machine learning algorithms, especially those that are highly relevant for contemporary real-world applications.

CS6370

Information Retrieval

Credits: 3

Semester: Segment:

Pre-Req: Data Mining / Machine Learning. Prior approval of the course instructor is needed.

  • Storing, indexing and querying document data
  • Scoring, term weighting document relevance estimation
  • Text classification and clustering
  • Probabilistic information retrieval
  • Ranking in a Graph

CS6380

Introduction to Compiler Engineering

Credits: 1

Semester: Segment:

Pre-Req: CS2430 (Principles of Programming Languages 2) or Equivalent for B.Techs.  An advanced compiler course for M.Techs and PhDs.  An aptitude for large software. Prior consent of the instructor.

Real-world compilers have complex algorithms and optimization strategies implemented in them, along with having various implementation techniques that are language/architecture independent as well as having language/architecture specific features. All the above makes engineering modern real-world compilers also a  hard software-engineering problem.

This 1 credit course will focus on understanding these issues, taking the popular LLVM compiler as a case-study.

The following are some of the areas that we plan to study:

  • Analyses/Transformations in LLVM.
  • Methods of adding new FrontEnds and BackEnds to LLVM.
  • Introduction to Pass-manager of LLVM. Adding new passes.

CS6390

Enabling Large Scale Data Analytics: From Theoretical Foundations to Practice

Credits: 1

Semester: Segment:

Pre-Req: Data Structures and Algorithms, Any course on Probability and Statistics

Small-Space Algorithms, Estimating Statistical Properties, Distance Estimation, Clustering & Ranking, Algorithms over Massive Networks, Learning Algorithms

CS6400

Constraint Solving

Credits: 1

Semester: Segment:

Pre-Req: Data Structures, Object-oriented programming, Theory of computation, Discrete mathematics, Algorithms

Many real world problems reduce to solving a set of constraints. From time table scheduling to inventory management and fault localization to efficient resource utilization, it all ultimately boils down to expressing these problems as a set of constraints. Not only it is at the heart of most of the problems in operation research but constraint solving has applications ranging from computational biology to program analysis. These applications use the constraint solvers mostly as a black box. However, one can gain tremendously from the study of constraint solvers and the techniques they employ so as to adapt them to the problem at hand.

This course will attempt to study the underlying techniques employed by modern day constraint solvers. In particular, solving techniques behind SAT, MaxSAT, Pseudo-Boolean constraint solving will be studied. In addition, this course will also attempt to take a look at SMT (Satisfiability Modulo Theories) solving.

CS6410

Software Verification

Credits: 3

Semester: Segment:

Pre-Req: Data Structures, Object-oriented programming, Theory of computation, Discrete mathematics, Algorithms, Compilers

Course Outline: Software has penetrated almost every aspect of our lives. From banking applications to air traffic control, from pacemakers to smart cars uses some software component. It is therefore of paramount importance that these software work correctly. In this course, we will study various ways to formally analyze and reason about software systems.

The course may cover topics such as Hoare logic, abstract interpretation, abstraction refinement, k-induction, symbolic execution, variants of bounded model checking for sequential as well as concurrent programs such as loop bounding, context bounding and reorder bounding. Use of formal techniques for software testing and reasoning about termination can also be covered

CS6420

Bayesian Data Analysis

Credits:

Semester: Segment:

Pre-Req: Any basic course in Probability

Course Outline: Bayesian data analysis fits a probability distribution over the data and summarize the results by  a probability distribution on the parameters   of the model and on unobserved quantities. Bayesian models allow the incorporation of prior information and domain knowledge which helps to better model the data and observations. This is especially useful for applications such as healthcare and computational biology with limited data availability.

The course will cover various topics on bayesian data analysis such as single and multi-parameter models, regression models, hierarchical models, generalized linear models, spatio-temporal models, bayesian decision theory, Model selection,  Bayesian inference algorithms based on Monte Carlo methods, variational inference, quadrature  and expectation propagation, Bayesian non-parametric approaches such as Gaussian processes and Dirichlet processes, Point processes,  Bayesian optimization and Bayesian deep learning.

CS6430

Computational number theory & algebra

Credits: 3

Semester: Segment:

Pre-Req: Discrete mathematics, Algorithms

Finite fields, quadratic residues, primality testing, polynomial factorization, applications in cryptography/coding theory. Optional topics: Integer factoring, lattices.

CS5360

Advanced computer architecture

Credits: 2

Semester: Segment:

Pre-Req: CS2323

This course will cover several state-of-the-art and emerging topics in computer architecture, including multicore processor architecture, GPUs, CPU-GPU heterogeneous system, multi-core cache/memory architectures and resource management techniques, emerging memory technologies, processor power management techniques. The students are also expected to review and critique one recent research paper during the course.

CS6450

Advanced Topics in Computer Vision

Credits: 3

Semester: Segment:

Pre-Req: Undergraduate- or graduate-level machine learning or computer vision; A good working knowledge of C/C++, Java, Python or Matlab

This course will discuss advanced topics and current research in computer vision. Students are expected to read papers selected from various subareas such as deep learning, segmentation and grouping, object and activity recognition, scene understanding, and vision and language. Approaches for learning from image and video data will be covered and include topics from convolutional neural networks, recurrent neural networks, structured predictions and others. The course will be a mix of lecture, student presentation and discussion.

CS6460

Introduction to Deep Learning for Vision

Credits: 1

Semester: Segment:

Pre-Req: Basic knowledge of machine learning and computer vision; Linear Algebra, Probability; A good working knowledge of C/C++, Java, Python or Matlab

This course will introduce students into the complex, abstract world of computer vision and deep neural networks. Topics covered will include: Basics of deep learning and its history, State-of-the-art deep neural net models in computer vision; Specific tools and packages to train these deep nets; and what it takes to train and run these models in the real-world.

CS6660

Mathematical Foundations of Data Sciences

Credits: 3

Semester: Segment:

Pre-Req:

Matrices, Vectors and Properties; Vector Spaces, Norms, Basis, Orthogonality; Matrix Decompositions: Eigen decomposition, Singular Value Decomposition; Differential Calculus: Derivatives and its significance, Partial derivatives; Optimization of single variable and multiple variable functions: Necessary and sufficient conditions; Real problems as optimization problems: Formulation and analytical solutions; Finding roots of an equation: Newton Raphson Method; Optimization via gradient methods; Probability basics, density function, counting, expectation, variance, independence, conditional probability, Poisson process, recurrences, Markov chains

CS6670

Topics in Data Mining

Credits: 3

Semester: Segment:

Pre-Req: CS3560, CS3140

Data Preprocessing, Data Warehousing & OLAP, Mining Frequent Patterns and Associations, Classification, Cluster Analysis, Mining Complex Types of Data (Sequence Data, Graphs, Social Networks, etc.), Text Mining, Stream Data Mining