Courses

ID1303 Programming in C/C++ with Lab
  • Credits: 2
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

Concept of Mathemaical 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
  • Pre Requisites: 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
  • Pre Requisites: NONE

Abstract Data Types, Big-Oh Notation, Basic Data Types, Stacks, Queues, Trees

CS2233 Data Structures
  • Credits: 3
  • Pre Requisites: CS1353

More Data Types. Dictionaries. Binary Search Trees, Balanced Search Trees, Hash Tables, Heaps, Priority Queues, Graphs

CS2323 Computer Architecture
  • Credits: 2
  • Pre Requisites: CS1353, ID1303

The objective of this course is to teach 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
  • Pre Requisites: NONE

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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: CS2400

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

CS2443 Algorithms
  • Credits: 3
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: NONE

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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: CS3510

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
  • Pre Requisites: Computer Networks-I; CS3523

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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

NONE Machine Learning
  • Credits: 3
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: 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 - 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. - Indexing high-dimensional data E.g. Locality Sensitive Hashing (LSH), VA File - Indexing Metric Spaces E.g. Metric Trees, GNAT, VP-Tree, iDistance - Indexing Time Series E.g. TS tree, Chebyshev Polynomials, Wavelet-based indexing, MR Index

FC5269 High performance computing using R
  • Credits: 1
  • Pre Requisites: NONE

IntroductionThe parallel R taxonomyLappy and foreach-based parallelismMap reduce based parallelism

CS5300 Parallel and Concurrent Programming
  • Credits: 3
  • Pre Requisites: 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
  • Pre Requisites: Operating Systems

Introduction to Advanced OS Systems & ArchitectureLinux Kernel Frameworks & InfrastructureFile-System Interface & ImplementationLinux I/O Systems

CS5311 Pervasive Computing Lab
  • Credits: 2
  • Pre Requisites: Operating Systems

Linux Kernel Frameworks & InfrastructureMultimedia Framework ArchitectureNetwork FrameworkGraphics and UI FrameworksWeb FrameworkApplication DevelopmentIntroduction to IoT

CS5320 Distributed Computing
  • Credits: 3
  • Pre Requisites: 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
  • Pre Requisites: NONE

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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: NONE

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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: CS6310, CS6320

Quantum Error Correction, Quantum Information Theory and Quantum Cryptography

CS6340 Quantum Computing IV
  • Credits: 1
  • Pre Requisites: CS6310, CS6320, CS6330

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

CS6350 Topics in Combinatorics
  • Credits: 3
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: Data Mining / Machine Learning. Prior approval of the course instructor is needed.

Storing, indexing and querying document dataScoring, term weighting document relevance estimationText classification and clusteringProbabilistic information retrievalRanking in a Graph

CS6380 Introduction to Compiler Engineering
  • Credits: 1
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: 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: NONE
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: 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
  • Pre Requisites: NONE

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
  • Pre Requisites: 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