Department of Computer Science and Engineering
COD4901: Capstone Project
3.00 credits (0.0-0.0-6.0)
Problem identification and requirement analysis. Team work and role assignment. System architecture and technology selection. Implementation and integration. Evaluation, optimization, and final demonstration.
On successful completion of the course, a
student will be able to:
- Ability to identify, design, implement, and evaluate a practical solution to a real-world problem by applying core computer science knowledge and working in a team of students.
COD7001: Cornerstone Project
3.00 credits (0.0-0.0-6.0)
Requirements gathering, computing system design and implementation, user study, professional documentation and ethics.
On successful completion of the course, a
student will be able to:
- Understand and apply fundamental computing systems concepts arising in computer architecture, operating systems and networks.
- Understand and apply modern computing systems concepts arising in parallel and distributed computing.
- Understand and apply notions of professional ethics in the design of a computing system.
- Implement a large software systems project
COD8091: Minor Project/Summer Internship
3.00 credits (0.0-0.0-6.0)
The minor project in computer science provides students with an opportunity to engage in focused, independent research or development work under faculty supervision. The course content typically includes a literature survey of the chosen topic, problem formulation, design and implementation of algorithms or systems, and empirical or theoretical evaluation.
On successful completion of the course, a
student will be able to:
- To enable students to explore a specific problem in computer science through independent study and guided research
COD8092: M.Tech. Project I
6.00 credits (0.0-0.0-12.0)
Identify a research or development problem, conduct a literature review, and formulate a clear plan of action. Define objectives, design an initial approach or system architecture, and document progress through presentations and a written report.
On successful completion of the course, a
student will be able to:
- To equip students with the ability to identify, formulate, and initiate a substantial research or development problem in computer science,
COD8095: MS Research Project
42.00 credits (0.0-0.0-84.0)
Independent research guided by a faculty advisor, involving problem identification, literature review, and development of novel solutions. It culminates in a written thesis and defense, with emphasis on depth, originality, and scholarly communication.
On successful completion of the course, a
student will be able to:
- Develop the ability to conduct independent, high-quality research in computer science by identifying open problems, formulating research questions, and applying appropriate theoretical, algorithmic, or systems-based methods to address them.
COL1000: Introduction to Programming
4.00 credits (3.0-0.0-2.0)
Data abstractions and computational abstractions, control structures and basic input/output, problem specification, testing and debugging, basic data structures and encapsulation, inductive reasoning and iteration, functions and recursion, top down design, performance and efficiency.
On successful completion of the course, a
student will be able to:
- Understand the structure and behaviour of a program
- Understand the notion of abstraction
- Write a program specification
- Test a program
- Write programs that manipulate basic data types
- Design conditional and iterative programs
- Define and use functions including recursive functions
- Solve a problem using top-down refinement of an algorithmic solution with attention to its correctness
- Perform basic analysis of program correctness, performance and efficiency
- Use AI-based code generators.
COL1002: Discrete Mathematical Structures
4.00 credits (3.0-1.0-0.0)
Functions, relations, closures over finite sets. De Morgan’s laws. Axioms, propositions, proofs, proof techniques: contradiction, mathematical induction and strong induction. Propositional and predicate syntax, well-formed expressions, truth table, inference. Operations on infinite sets, countability and uncountability, Schroder-Bernstein theorem. Graph theory: undirected and directed graphs, reachability, connectivity, cycles, forests, trees, Euler tours, partitions, partial orders, well orders, chains, antichains. Combinatorics and counting rules, permutations and combinations, principle of inclusion-exclusion, combinatorial proofs. Recurrences: divide-and-conquer and linear, generating functions.
On successful completion of the course, a
student will be able to:
- Formalize real-world situations in a mathematical language and reason about them
- Be able to read and write rigorous proofs, as well as explain errors in wrong proofs
- Understand mathematical structures like graphs, orders, recurrences etc.
COL1101: Programming with Data Structures
4.00 credits (3.0-0.0-2.0)
Object oriented programming, functional style of programming, asymptotic analysis, arrays and linked lists, introduction to ADTs and linear ADTs, for example, sets, lists, vectors and sequences, concurrency, stacks, queues and applications, trees and tree traversals, priority queues and heaps, dictionary ADT and hash tables, binary search trees, AVL trees, 2-4 trees, sorting algorithms, the graph ADT and traversal algorithms.
On successful completion of the course, a
student will be able to:
- Understand data organization in storage
- Understand and assess the use of basic data and control abstractions in typical software problems
- Program in an object-oriented style
- Create and use higher-order functions and abstractions
- Program with and manage complex real-world data
- Specify and define Abstract Data Types in a modular fashion
- Implement and analyse a variety of ADTs
- Organise and search through data
- Understand and analyse algorithmic complexity
- Specify and implement a concurrent/shared ADT interacting with multiple threads
COL2010: Data Science
4.00 credits (3.0-0.0-2.0)
Preclusions: AIL2001
Preclusions: AIL2001
Introduction to data science; data pre-processing: cleaning, transformation; exploratory data analysis: visualization, statistical analysis; clustering and dimensionality reduction: K-means, PCA; classification: K-NN, logistic regression, decision trees; regression analysis; neural networks basics; data modeling: schema design, ER diagrams; SQL: joins, aggregations, recursive queries; tools: python (pandas, matplotlib, scikit-learn), SQL.
On successful completion of the course, a
student will be able to:
- On successful completion of this course, a student should be able to understand and apply fundamental concepts and techniques in data science and machine learning to real-world problems.
- On successful completion of this course, a student should be able to design and implement end-to-end data science pipelines, from data preprocessing to model evaluation.
- On successful completion of this course, a student should be able to critically analyze datasets, identify appropriate data models, and recognize the importance of domain-specific knowledge in data science projects.
- On successful completion of this course, a student should be able to select and justify the use of appropriate machine learning algorithms for various tasks, including clustering, classification, and regression.
- On successful completion of this course, a student should be able to evaluate the performance and limitations of machine learning models, including considerations of data quality, bias, and ethical implications.
- On successful completion of this course, a student should be able to implement and interpret basic data modeling techniques and SQL queries for data manipulation and analysis.
- On successful completion of this course, a student should be able to effectively use popular data science libraries and tools to solve practical problems and communicate results.
COL2015: Digital Logic and System Design
4.00 credits (3.0-0.0-2.0)
Preclusions: ELL1401
Preclusions: ELL1401
Number systems, boolean algebra, gate level minimisation, combinational and sequential logic, finite state machines, hardware description languages, registers and memory, FPGA, error correction and testing, energy dissipation.
On successful completion of the course, a
student will be able to:
- Design and analyse combinational and sequential circuits
- Build efficient digital circuits
- Specify, simulate, and implement digital systems using modern hardware languages, tools, and platforms
COL3655: Foundations of Visual Computing
4.00 credits (3.0-0.0-2.0)
Pre-requisites: (COL1101)
Pre-requisites: (COL1101)
Introduction to images; image understanding, image processing, and image generation; sampling and representation; visual perception; image reconstruction; image filters and features; 3D space and transformations; camera models; tracking and pose estimation; lighting and shading; introduction to AR/VR; data visualization and communicating with images.
On successful completion of the course, a
student will be able to:
- Understand images and compute their salient features
- Learn and apply the mathematics and methods of image processing and enhancement
- Understand 3D shapes, 3D spaces, Camera, and their geometry and use them
- Understand the principles of image formation and lighting, and render images
- Apply principles and techniques of visual communication
COL3761: Introduction to Information and Communication Technologies for Development and Sustainability
4.00 credits (3.0-0.0-2.0)
What is social development, sustainable development, introduction to development initiatives in India and around the world, examples of ICTs applied in development, successes and failures, critical perspectives on the role of technology in development, theories on ICTs leading to development, best practices, case studies, design methods to build ICTs, evaluation methods for ICTD initiatives.
On successful completion of the course, a
student will be able to:
- Build awareness about opportunities in the use of information and communication technologies for social and sustainable development
- Evaluate the role of technology from various critical perspectives
- Integrate technology and non-technology factors into the design of end-to-end systems
- Learn essential elements in ICTD research and practices like design methods and impact evaluation
COL7001: Systems Concepts
2.00 credits (2.0-0.0-0.0)
Fundamental concepts arising in computer architecture, operating systems, compilers, computer networks, parallel systems, distributed systems; requirements gathering, concepts of designing software systems, biases and ethics in software systems.
On successful completion of the course, a
student will be able to:
- Understand and apply fundamental computing systems concepts arising in computer architecture, operating systems and networks.
- Understand and apply modern computing systems concepts arising in parallel and distributed computing.
- Understand and apply notions of professional ethics in the design of a computing system.
COL7004: Mathematical Foundations of Computing
4.00 credits (3.0-1.0-0.0)
Sets, relations, functions, propositional logic, Boolean algebra, proof techniques, combinatorics, discrete probability, probabilistic data-structures, canonical algebraic structures, vector spaces and linear algebra, eigenvalues, graph algorithms, NP completeness.
On successful completion of the course, a
student will be able to:
- Understand concepts from fundamental mathematical structures such as sets, functions, relations, vector spaces, algebraic structures and apply these to applications arising in counting, discrete probability and logic.
- Develop proficiency in formal reasoning and discrete mathematics, and reason about correctness and efficiency of algorithms.
- Understand algorithmic techniques and modern data structures and apply them to settings arising in graph algorithms and related applications. Understand the inherent limitations of a computational model.
COL7126: Numerical Algorithms
4.00 credits (3.0-0.0-2.0)
Preclusions: MTL2007, AIL7011, MTL8251
Pre-requisites: COL1101
Preclusions: MTL2007, AIL7011, MTL8251
Pre-requisites: COL1101
Number representation, fundamentals of error analysis, conditioning, stability, polynomials and root finding, interpolation, singular value decomposition and its applications, QR factorization, condition number, least squares and regression, Gaussian elimination, eigen value computations and applications, iterative methods, linear programming, elements of convex optimization including steepest descent, conjugate gradient, Newton's method.
On successful completion of the course, a
student will be able to:
- On completion of this course, a student would be able to understand sources of errors in computation and analyze numerical stability of algorithms
- On completion of this course, a student would be able to apply various tools in numerical linear algebra for solving problems arising in regression, estimation and optimization.
COL7151: Algorithmic Graph Theory
3.00 credits (3.0-0.0-0.0)
Preclusions: MTL3176
Pre-requisites: (COL2051/MTL2042)
Preclusions: MTL3176
Pre-requisites: (COL2051/MTL2042)
MSTs: recap of Prim’s/Kruskal’s/Borůvka’s algorithms, Karger-Klein-Tarjan linear-time randomized algorithm for MSTs, Edmonds’ algorithm for arborescences (aka directed MSTs). Shortest paths: min-sum products, computing shortest paths via min-sum products, Seidel's algorithm for all-pairs distances via matrix multiplication and shortest path reconstruction, algebraic algorithms for shortest paths, approximate APSP in near-quadratic time. Max-flows: recap of the Ford-Fulkerson algorithm, Edmonds-Karp algorithm, capacity scaling algorithm, min-cost flows and applications, Dinic’s algorithm, push-relabel algorithm, algebraic algorithms for max-flow. Cuts: sub-modularity of cuts, structure of (s, t)-min-cuts and global min-cuts, Karger-Stein’s near-quadratic time algorithm for global min-cuts, Gomory-Hu trees and their applications, tree packings, and the Tutte-Nash-Williams theorem. Matchings: Hopcroft-Karp algorithm for bipartite matching, Kőnig-Egerváry theorem, Hall’s theorem, Edmonds’ blossom algorithm for maximum matching, Tutte-Berge formula, Gallai-Edmonds decomposition, algebraic algorithms for perfect matching. Planar graphs: properties of planar graphs, Kuratowski’s theorem, algorithms for checking planarity, planar separator theorem and its applications. Graph parameterisation: tree-width and algorithm for computing tree-width, algorithms for graphs with bounded tree-width.
On successful completion of the course, a
student will be able to:
- Design and analyze advanced graph algorithms
- Apply algebraic, randomized, and parameterization based techniques for graph problems
- Identify structural properties of graphs and apply them in algorithm design
COL7153: Complexity Theory
3.00 credits (3.0-0.0-0.0)
Pre-requisites: COL1002/MTL1080
Pre-requisites: COL1002/MTL1080
Modeling computation (finite state machines, non-determinism, turing machines, class P etc.), NP and NP-completeness, diagonalization (time hierarchy and Ladner's theorem), space complexity (PSPACE, NL, Savitch's theorem, Immerman-Szelepcsényi theorem etc.), polynomial hierarchy, Boolean circuits (P/poly), randomized classes (RP, BPP, ZPP, Adleman's theorem, Gács-Sipser-Lautemann theorem), interactive proofs (Arthur-Merlin, IP=PSPACE), cryptography (one-way functions, pseudorandom generators, zero knowledge), PCP theorem and hardness of approximation, circuit lower bounds, other topics (#P, Toda's theorem, average-case complexity, derandomization, pseudorandom constructions, computational learning theory, fine-grained complexity, algebraic complexity, proof complexity, communication complexity, query complexity).
On successful completion of the course, a
student will be able to:
- Classify problems in to complexity classes based on efficiency with respect to various resources (time, space, randomness, nondeterminism)
- Understand reductions and completeness for a complexity class and the interrelationships between various complexity classes
- Prove lower bounds in concrete computational models and understand limitations of specific techniques towards proving lower bounds
- Design randomised algorithms and interactive protocols for various computational tasks
- Apply tools from complexity theory to areas such as cryptography, learning theory and quantum computing.
COL7154: Approximation Algorithms
3.00 credits (3.0-0.0-0.0)
Pre-requisites: MTL2042/COL2051
Pre-requisites: MTL2042/COL2051
NP-hardness and approximation algorithms. Different kinds of approximability. Greedy algorithm and local search with applications in facility location, TSP and scheduling. Dynamic programming with applications in knapsack, Euclidean TSP, and bin packing. Linear programming, duality and rounding. Applications in facility location, Steiner tree and bin packing. Randomized rounding with applications. Primal-dual algorithms and applications in facility location and network design. Cuts and metrics with applications to multi-commodity flow. Semi-definite programming and applications: max-cut, graph coloring. Hardness of approximation.
On successful completion of the course, a
student will be able to:
- design efficient approximation algorithms for a range of NP-hard optimization problems and rigorously analyze their approximation guarantees using mathematical techniques.
- develop a deep understanding of fundamental techniques in approximation algorithms, including greedy methods, local search, linear and semidefinite programming relaxations, primal-dual methods, and randomized rounding.
- assess the limits of algorithmic approximability by applying techniques from complexity theory, such as reductions and PCP-based inapproximability results.
- identify real-world scenarios where exact solutions are infeasible, and apply approximation methods to develop provably good and practical algorithmic solutions in such contexts.
COL7155: Algorithmic Game Theory
3.00 credits (3.0-0.0-0.0)
Pre-requisites: COL2051/MTL2042
Pre-requisites: COL2051/MTL2042
Games, strategies, costs, payoff, solution concepts. Pure and mixed nash equilibria. Two player zero-sum games and proof of Nash equilibria using linear programming duality. Nash’s theorem using FPT’s. Complexity of finding Nash equilibrium, Lemke-Howson algorithm, the class PPAD. Hierarchy of equilibria, best-case and strong Nash equilibria, best-response dynamics, and no-regret dynamics. Social choice, Arrow's and Gibbard-Satherthwaite theorems. Auctions and optimal mechanism design, Myerson's lemma, VCG mechanisms. Revenue maximizing auctions. Inefficiency of equilibria. Price of anarchy in network routing games, atomic routing games, potential function games. Mechanism design without money: stable matchings. Market equilibria and their computation, Fisher’s and Arrow-Debreu models, Eisenberg-Gale convex program.
On successful completion of the course, a
student will be able to:
- analyze how strategic behavior by self-interested agents affects algorithmic outcomes, using foundational concepts such as Nash equilibrium, dominant strategies, and the price of anarchy.
- design algorithms and mechanisms that ensure truthful reporting of private information (strategyproofness), with a focus on auction design, matching markets, and resource allocation problems.
- apply algorithmic techniques—such as linear programming, greedy algorithms, and approximation methods—to solve computational problems arising in game-theoretic environments.
- evaluate the feasibility of game-theoretic solutions by studying computational hardness, communication constraints, and approximation trade-offs in mechanism design and equilibrium computation.
COL7159: Introduction to Cryptography
3.00 credits (3.0-0.0-0.0)
Preclusions: COL3159
Pre-requisites: COL1101&(COL1002/MTL1180)
Preclusions: COL3159
Pre-requisites: COL1101&(COL1002/MTL1180)
Perfect secrecy and its limitations, computational security, pseudorandom generators and one time encryption, pseudorandom functions/permutations, symmetric key encryption - security against chosen plaintext attacks (CPA), message authentication and cryptographic hash functions, security against chosen ciphertext attacks (CCA). Basic number theory and group theory, public key encryption - CPA and CCA security, digital signatures. Advanced topics: zero knowledge proofs, homomorphic encryption, lattice-based cryptography.
On successful completion of the course, a
student will be able to:
- Model real-world security threats/goals using formal security games.
- Use cryptographic building blocks to design cryptographic schemes/protocols, and prove security of the same.
- Identify and explain standardized cryptographic schemes/protocols.
- Identify common security flaws and vulnerabilities.
COL7160: Quantum Computing
3.00 credits (3.0-0.0-0.0)
Pre-requisites: MTL1002&COL1101
Pre-requisites: MTL1002&COL1101
Quantum circuits, quantum teleportation, quantum parallelism, Deutsch problem, CHSH, Bell’s inequality, postulates of quantum mechanics, quantum money, universal quantum gates, bounded quantum polynomial (BQP), Bernstein-Vazirani, Simon’s problem, quantum Fourier transform (QFT), phase sstimation, order finding, Shor’s algorithm, hidden subgroup problem (HSP), quantum search, quantum counting, quantum search lower bounds, collision finding, element distinctness, amplitude amplification, quantum walk.
On successful completion of the course, a
student will be able to:
- Understand the fundamental principles and mathematical foundations underlying quantum computing and quantum mechanics.
- Apply basic quantum principles to design algorithms.
- Apply advanced quantum algorithms, including QFT-based methods, to solve complex computational challenges.
- Analyze and implement quantum search and walk algorithms and evaluate quantum query complexity for problem solving.
- Understand the impact of quantum computing in cryptography and other fields.
COL7188: Concentration Inequalities and Their Applications in Computer Science
3.00 credits (3.0-0.0-0.0)
Some examples of finding tail bounds using elementary methods. Markov's inequality and the first moment method; Chebyshev's inequality and the second moment method. The Cramer-Chernoff method; a direct application to approximating personalized page rank. The independent Bernuolli variable case; some applications, for example, randomised rounding etc. Hoeffding's inequality; application to random Fourier approximation in machine learning. Martingales and the Azuma-Hoeffding inequality; application to reachability algorithms for graphs using random walks. McDiarmid's inequality; application to proving generalization error bounds in machine learning. Bernstein's inequality; application to proving the Johnson-Lindenstrauss lemma. Matrix concentration inequalities with applications.
On successful completion of the course, a
student will be able to:
- Formulate a mathematical problem in terms of the concentration of a random variable
- Identify the concentration methods that are applicable to a particular problem setting
- Apply the appropriate technique to derive concentration bounds for a given setting
COL7203: Logic for Computer Science
4.00 credits (3.0-0.0-2.0)
Preclusions: COL3203
Pre-requisites: Array
Preclusions: COL3203
Pre-requisites: Array
Logic for specifying systems, propositional logic, proof systems for propositional logic (resolution, DPLL, CDCL, natural deduction), soundness and completeness of propositional logic proof systems, SAT/SMT solvers, predicate logic, proof systems for predicate logic (resolution with unification, natural deduction), soundness and completeness of predicate logic proof systems, compactness, Hoare logic, soundness, relative completeness, alloy/Z3/automated theorem provers.
On successful completion of the course, a
student will be able to:
- Understand the difference between syntax and semantics
- Express simple systems and properties required of them in an appropriate logic
- Define and prove soundness and completeness for various proof systems
- Express and prove properties about systems in an appropriate logic (manually as well as with tools)
COL7250: Foundations of Automatic Verification
4.00 credits (3.0-0.0-2.0)
Pre-requisites: COL2026/COL3201/COL3203/
Pre-requisites: COL2026/COL3201/COL3203/
A selection from the following topics, and experiments with the mentioned tools: review of first-order logic, syntax and semantics. Resolution theorem proving. Binary decision diagrams (BDDs) and their use in representing systems (programming exercises coding and using logic programming frameworks). Transition systems, automata and transducers. Buechi and other automata on infinite words; linear time temporal logic (LTL), and specifying properties of systems in LTL; the relationship between temporal logic and automata on infinite words, LTL model checking (exercises using spin or similar tools); computational tree logic (CTL and CTL*); CTL model checking (exercises); process calculi such as CSP and CCS. Notions of program equivalence -- traces, bisimulation and other notions. Hennessy-Milner logic (HML) and mu calculus (exercises using tools such as CWB -- concurrency work bench). Symbolic model checking, exercises using tools such as SMV. Sat-based model checking and Davis-Putnam procedure; (exercises using tools such as nuSMV). Possible additional topics include: equational logic frameworks, real-time frameworks, reactive frameworks, pi-calculus (exercises using tools such as the mobility workbench), tree automata and weak second-order logic with k successors (WSkS), (exercises using Mona or similar tools).
On successful completion of the course, a
student will be able to:
- Explain the formal foundations underlying model checking and related verification techniques.
- Construct system specifications using temporal logics and model system behavior using appropriate formal methods.
- Apply automated verification tools to evaluate and verify hardware and software system properties.
- Critique verification approaches in terms of correctness, scalability, and applicability to real-world systems.
COL7333: Introduction to Artificial Intelligence
4.00 credits (3.0-0.0-2.0)
Preclusions: COL3333
Pre-requisites: (COL1101)
Preclusions: COL3333
Pre-requisites: (COL1101)
Introduction, problem solving with search, game trees, constraint satisfaction, logic and knowledge representation, planning, bayesian networks, Markov decision processes (MDPs), reinforcement learning, partially observable MDPs, multi-agent/hierarchical decision making, statistical learning, neural networks, deep/representation learning, generative AI, emerging trends/applications, ethical and societal impact.
On successful completion of the course, a
student will be able to:
- On successful completion of the course, the student should possess a comprehensive understanding of mathematical and algorithmic techniques in AI.
- On successful completion of the course, the student should possess rigorous practical skills in modeling problems and implementing AI solutions.
- On successful completion of the course, the student should possess an outlook on emerging research and application trends and the broader impact of artificial intelligence on society
COL7341: Fundamentals of Machine Learning
4.00 credits (3.0-0.0-2.0)
Preclusions: COL3341
Preclusions: COL3341
Basics on ML; supervised learning algorithms: 1. Linear and logistic regression 2. Gaussian discriminant analysis. 3. Naive bayes 3. Decision trees 4. Support vector machines 6. Neural networks. 7. Deep neural networks; unsupervised learning algorithms: 8. K-means clustering. 9. Expectation maximization 10. Gaussian mixture models. 11. PCA; 12. Learning theory.
On successful completion of the course, a
student will be able to:
- Articulate the fundamentals concepts in Machine Learning.
- Use a variety supervised and unsupervised learning algorithms.
- implement a variety of learning algorithms and experiment with real data.
COL7361: Data Mining
4.00 credits (3.0-0.0-2.0)
Association rule mining( Apriori algorithm, FP-growth), frequent subgraph mining (gSpan and FSG), clustering (agglomerative clustering, k-means, k-medoid, DBSCAN, OPTICS, MCL, spectral clustering), data streams (FM sketch, reservoir sampling, bloom filters, top-k counting), anomaly detection (chi-square tests, p-values, T-tests), search (k-NN queries, range queries, metric distance, curse of dimensionality, KD-tree, range tree, R-tree, dest-first search, minhash, locality sensitive hashing), web mining (pagerank, random walks with restarts, ), graph neural networks and embeddings(LipSchitz embeddings, GCN, graphSage, GAT, GIN).
On successful completion of the course, a
student will be able to:
- On successful completion of this course, a student should be able to apply data mining algorithms to real-world datasets, evaluate their strengths and limitations, and identify the most appropriate algorithm for a given problem by analyzing the context, objectives, and data characteristics.
- On successful completion of this course, a student should be able to implement or use libraries of data mining algorithms, design and conduct experiments to assess performance, and clearly communicate results and insights through well-structured technical reports based on real-world problem scenarios.
COL7362: Introduction to Data Management
4.00 credits (3.0-0.0-2.0)
Pre-requisites: (COL1101) &(COL2010)
Pre-requisites: (COL1101) &(COL2010)
Data modeling, database design, relational algebra, SQL, database storage, database indexing, query planning and optimization, transaction management, parallel and distributed databases, big data analytics (DISC and NoSQL systems) advanced topics based on emerging trends.
On successful completion of the course, a
student will be able to:
- Understand the fundamental concepts of relational database systems.
- Develop SQL queries for data retrieval and manipulation.
- Design database schemas ensuring efficiency and integrity.
- Explain database internals including memory management, indexing, query optimization, and transaction management.
- Discuss concepts in advanced and emerging data technologies.
COL7364: Information Retrieval and Web Search
4.00 credits (3.0-0.0-2.0)
Pre-requisites: (COL1101&MTL1106)
Pre-requisites: (COL1101&MTL1106)
Retrieval models (Boolean, vector-space, probabilistic, language-model, Markov random fields, diversity-aware); design of test collections (TREC, crowd-sourcing) and retrieval effectiveness measures (micro-/macro-f measure, nDCG, BPref); collection models (multinomial repr.; topic mixtures) and topic modeling (LSA/LSI, LDA); search engine architecture (crawling, indexing, and web-page ranking); learning to rank; knowledge graphs; responsible IR, for example, handling bias and fake-news, privacy.
On successful completion of the course, a
student will be able to:
- Understand and be able to discuss well-known document representation methods, informa- tion needs, search result effectiveness metrics and web search engine architectures.
- Implement and use retrieval algorithms; test them on standard and large-scale data collections.
- Apply information retrieval and web search methods to solve real-world problems, appreciate their impact on modern everyday life.
COL7372: Natural Language Processing
4.00 credits (3.0-0.0-2.0)
Preclusions: ELL8284, ELL8299, AIL8032
Pre-requisites: (COL7341/COL3341/COL7375/COL3333/COL7333/AIL7025/AIL7021/AIL7024)
Preclusions: ELL8284, ELL8299, AIL8032
Pre-requisites: (COL7341/COL3341/COL7375/COL3333/COL7333/AIL7025/AIL7021/AIL7024)
NLP concepts: tokenization, syntax, information extraction, question answering, semantics, text classification, reasoning and textual inference, language modeling, discourse, machine translation, instruction following, knowledge-based NLP, NLP for low-resource languages, text2code. CS techniques: word2Vec, LSTMs, key-value attention, transformers, LLMs, pre-training, fine-tuning, LoRA, instruction fine-tuning, RLHF, LRMs, RLVR, efficient LLMs, RAG, agentic AI.
On successful completion of the course, a
student will be able to:
- On successful completion of the course, the student should possess an ability to analyze, critique and contrast contemporary ideas in the field of natural language processing
- On successful completion of the course, the student should be able to practically develop an ML system that takes language as input.
- On successful completion of the course, the student should be able to summarize emerging research ideas and application trends and assess the broader impact of NLP on society.
COL7375: Deep Learning
4.00 credits (3.0-0.0-2.0)
Pre-requisites: (COL3341) /(COL7341) /(COL3333) /(COL7333)
Pre-requisites: (COL3341) /(COL7341) /(COL3333) /(COL7333)
Basics: introduction, multi-layered perceptron, backpropagation, regularization, early stopping. Dropouts, normalization. Optimization: stochastic gradient descent, first-order and second-order methods, standard/advanced optimization algorithms. Convolutional networks (CNNs), standard vision architectures. Recurrent neural networks, LSTMs. Attention, transformers. Word embeddings, language models: BERT, GPT etc. Large language models. Vision language models, for example, CLIP. Generative models: variational auto-encoders, generative adversarial networks, diffusion models. Graph neural networks: graph convolutional networks, graph attention networks, and variations.
On successful completion of the course, a
student will be able to:
- Articulate the mathematical foundations of core ideas in the field of Deep Learning
- Characterize the standard deep learning architectures in vision, language and graph modalities which become bases for more advanced ones.
- Develop a broad understanding and gain familiarity with some of the latest research areas in Deep Learning
- Code and implement various deep learning models: architecture design, training and inference, while running their models on moderately sized datasets. —> code and implement various deep learning models: architecture design, training and inference, while running their models on moderately sized datasets
COL7378: Principles of Autonomous Systems
4.00 credits (3.0-0.0-2.0)
Pre-requisites: (COL3333/COL7333/COL7341/AIL7025/COL7375/AIL7021/AIL7022/ELL7286/AML7800/AML7810)
Pre-requisites: (COL3333/COL7333/COL7341/AIL7025/COL7375/AIL7021/AIL7022/ELL7286/AML7800/AML7810)
Introduction (robot as an intelligent agent), discrete Bayes estimation, continuous estimation and localisation, perception and mapping, motion planning, task planning, action and interaction models, robot learning (via reinforcement, imitation learning etc.), POMDPs, human+robot and multi-robot systems, autonomy software/simulation environments, emerging trends, ethical and societal implications.
On successful completion of the course, a
student will be able to:
- On successful completion of the course, the student should articulate the mathematical and algorithmic techniques underpinning modern autonomous systems.
- On successful completion of the course, the student should possess the ability to solve a problem & implement a solution arising in application of autonomous systems and algorithmically develop autonomous system solutions for a given application domain.
- On successful completion of the course, the student should articulate the emerging research and application trends and interpret their broader societal impact.
COL7386: Advanced Functional Brain Imaging
4.00 credits (3.0-0.0-2.0)
Recent advances in functional brain and neuroimaging have come from the application of several advanced machine learning techniques. This course aims to cover these. The course will start with an introduction to the human brain anatomy and function. The students will then learn about various imaging technologies for measuring and modeling brain activities. Finally, recent advances, including functional connectivity and applications of machine learning techniques in analyzing the brain data will be covered. The course involve experimentation where students will be able to apply the knowledge gained in the course for the analysis of neuroimaging data. Introduction to functional neuroanatomy of human brain, overview of brain imaging methods, introduction to magnetic resonance imaging (MRI), detailed coverage of functional magnetic resonance imaging (fMRI), fMRI protocol design, fMRI data analysis methods, general linear model, introduction to statistical estimation theory, estimation of general linear model parameters, functional connectivity analysis, multi-voxel pattern analysis, machine learning based methods of analysis of fMRI data.
On successful completion of the course, a
student will be able to:
- Understand basic neuroscience, neuroanatomy and human functional brain mapping
- Develop a comprehensive understanding of functional MRI, fMRI protocol design, various tools available to process fMRI data.
- Statistical estimation theory with its application to fMRI data analysis, Machine Learning in fMRI analysis
COL7418: Architecture of High Performance Computers
4.00 credits (3.0-0.0-2.0)
Preclusions: COL3418
Pre-requisites: COL2016
Preclusions: COL3418
Pre-requisites: COL2016
This course explores advanced computer architecture with a focus on performance optimization. It covers principles of performance enhancement, instruction-level parallelism, and high-performance memory systems in the context of shared memory multiprocessors, memory consistency models, and multiprocessor architectures, including dataflow, tiled, and vector processing. The course also examines GPU architectures, accelerators, and multiprocessor interconnection networks for efficient communication. Performance modeling techniques are introduced to evaluate system efficiency to help in the design and analysis of high-performance computing architectures for modern computational challenges.
On successful completion of the course, a
student will be able to:
- Understand Performance Optimization: Explain key principles of performance enhancement in modern computing architectures.
- Analyze Instruction-Level Parallelism: Evaluate instruction-level parallel architectures and their impact on computational efficiency.
- Design Efficient Memory Systems: Assess and optimize high-performance memory systems for improved data access.
- Explore Multiprocessing Architectures: Compare and contrast shared memory multiprocessors, dataflow, tiled, and vector architectures.
- Understand Memory Consistency Models: Explain the role of consistency models in multiprocessor systems.
- Examine GPU and Accelerator Architectures: Analyze GPU architectures and specialized accelerators for parallel computation.
- Evaluate Interconnection Networks: Assess multiprocessor interconnection networks for efficient communication.
- Apply Performance Modeling: Develop performance models to analyze and improve system efficiency.
COL7524: Advanced Networks
4.00 credits (3.0-0.0-2.0)
Preclusions: COL3524
Pre-requisites: (COL2034)
Preclusions: COL3524
Pre-requisites: (COL2034)
Review classical internet architecture, modern internet architecture concepts, link virtualization, high-performance switching, software-defined networking (SDN), network function virtualization and middleboxes, programmable data plane, congestion control, modern applications: video streaming and video conferencing, data center networks (DCN): introduction, virtualization, topology, DCN routing and transport, network measurements, wireless networks, future directions.
On successful completion of the course, a
student will be able to:
- Understand and analyze classical and modern Internet architectures, including fundamental concepts driving the evolution of today's Internet
- Evaluate and apply high-performance switching, network softwarization, and network virtualization principles to design flexible, scalable, and efficient networks.
- Understand the requirements and solutions for network design, routing, and resource allocation in modern networking scenarios, including data center networks, high-bandwidth applications, and wireless networks
- Gain hands-on experience through practical labs and project involving real-world network scenarios
COL7540: Software Engineering
4.00 credits (3.0-0.0-2.0)
Pre-requisites: COL1101
Pre-requisites: COL1101
Introduction to software engineering, software life cycle models and processes, requirement engineering, system models, architectural design, abstraction and modularity, structured programming, object-oriented techniques, design patterns, service oriented architecture, user interface design, verification and validation, reliability, software evolution, project management and risk analysis, software quality management, configuration management, software metrics, cost analysis and estimation, manpower management, organization and management of large software projects.
On successful completion of the course, a
student will be able to:
- Understand the difference between requirement specification, validation and verification.
- Express the design of software systems in UML diagrams.
- Define and validate the soundness of an object-oriented software design
- Express the quality of a software project and deliverables in terms of industry-standard quality metrics
COL7560: Machine Learning for Networked Systems
4.00 credits (3.0-0.0-2.0)
Pre-requisites: (COL2034) &(AIL2001/AIL7024/COL3341/COL7341/COL2010)
Pre-requisites: (COL2034) &(AIL2001/AIL7024/COL3341/COL7341/COL2010)
Review of networking and machine learning fundamentals; case studies of network learning tasks such as application classification, performance estimation, intrusion detection, and resource allocation; techniques for scalable network monitoring; task-agnostic data representation for networks; foundation models for networking; robustness and explainability of networked ML models; emerging ML tasks in networking, including synthetic data generation and data imputation.
On successful completion of the course, a
student will be able to:
- Analyse different network learning tasks that can benefit from the use of machine learning (ML), such as traffic classification, performance prediction, security, and resource management
- Understand the challenges and approaches towards building scalable network monitoring systems and task-agnostic ML pipelines
- Build ML models for networks that are accurate, robust, and explainable
- Gain hands-on experience by applying machine learning techniques to real-world network problems
COL7655: Foundations of Visual Computing
4.00 credits (3.0-0.0-2.0)
Introduction to images; image understanding, image processing, and image generation; sampling and representation; visual perception; image reconstruction; image filters and features; 3D space and transformations; camera models; tracking and pose estimation; lighting and shading; introduction to AR/VR; data visualization and communicating with images.
On successful completion of the course, a
student will be able to:
- Understand images and compute their salient features
- Learn and apply the mathematics and methods of image processing and enhancement
- Understand 3D shapes, 3D spaces, Camera, and their geometry and use them
- Understand the principles of image formation and lighting, and render images
- Apply principles and techniques of visual communication
COL7680: Introduction to Computer Vision
4.00 credits (3.0-0.0-2.0)
Camera models. Calibration, multi-view projective geometry. 3D structure/motion estimation. Computer vision techniques for object detection and recognition, category discovery, and image segmentation.
On successful completion of the course, a
student will be able to:
- Understand pin hole camera model and apply geometrical techniques for camera calibration, pose estimation and mapping.
- Understand and apply machine learning techniques for image classification.
- Understand and apply machine learning techniques for visual object detection
- Understand and apply machine learning techniques for image segmentation
COL7681: Computer Graphics
4.50 credits (3.0-0.0-3.0)
Pre-requisites: (COL3655)
Pre-requisites: (COL3655)
Graphics pipeline; graphics hardware: display devices, input devices; raster graphics: line and circle drawing algorithms; windowing and 2D/3D clipping: Cohen and Sutherland line clipping, Cyrus Beck clipping method; 2D and 3D geometrical transformations: scaling, translation, rotation, reflection; viewing transformations: parallel and perspective projection; curves and surfaces: cubic splines, Bezier curves, B-splines, parametric surfaces, surface of revolution, sweep surfaces, fractal curves and surfaces; hidden line/surface removal methods; illuminations model; shading: Gouraud, Phong; introduction to ray-tracing; animation; programming practices with standard graphics libraries like openGL.
On successful completion of the course, a
student will be able to:
- Develop interactive computer graphics applications
- Apply and evaluate techniques for modelling, rendering, and animation
- Evaluate and explain performance/quality tradeoffs in graphics systems and algorithms
COL7683: Digital Image Analysis
4.50 credits (3.0-0.0-3.0)
Pre-requisites: (COL3655)
Pre-requisites: (COL3655)
Basic image operations, transformations, resampling. Image enhancement and spatial filtering. Image restoration: denoising and deconvolution. Tomographic reconstruction. Colour and multispectral images. Image transforms, pyramids, and wavelets. Image and video compression. Morphological image processing. Edge detection and image segmentation. Feature extraction from images. Neural networks for image analysis and generation.
On successful completion of the course, a
student will be able to:
- Apply and evaluate techniques for image enhancement, restoration, and reconstruction
- Understand and apply image transforms for enhancement, compression, and analysis
- Apply and evaluate methods for detection of key points, edges, and regions
- Design techniques for extraction and analysis of features in real-world images
COL7761: Introduction to Information and Communication Technologies for Development
4.00 credits (3.0-0.0-2.0)
What is social development, sustainable development, introduction to development initiatives in India and around the world, examples of ICTs applied in development, successes and failures, critical perspectives on the role of technology in development, theories on ICTs leading to development, best practices, case studies, design methods to build ICTs, evaluation methods for ICTD initiatives.
On successful completion of the course, a
student will be able to:
- Build awareness about opportunities in the use of information and communication technologies for social and sustainable development
- Evaluate the role of technology from various critical perspectives
- Integrate technology and non-technology factors into the design of end-to-end systems
- Learn essential elements in ICTD research and practices like design methods and impact evaluation
COL7880: Introduction to Parallel and Distributed Computing
4.00 credits (3.0-0.0-2.0)
Multi-core and many-core architecture and interconnects. Parallel programming models. Shared memory and message passing. Progress guarantees and performance optimization. GPU computation. Distributed state maintenance and consensus. Parallel algorithms.
On successful completion of the course, a
student will be able to:
- Implement efficient parallel and distributed algorithms with specified progress properties and using different programming models
- Analyze correctness and efficiency of parallel and distributed systems
- Gain familiarity with common distributed computing concepts, e.g., distributed state, logical clock, and consensus
- Gain familiarity with common parallel and distributed algorithms and data structures
COL8085: Special Topics in Hardware Systems I
3.00 credits (3.0-0.0-0.0)
Special topics in hardware systems.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of hardware systems
COL8086: Special Topics in Hardware Systems II
3.00 credits (3.0-0.0-0.0)
Special topics in hardware systems.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of hardware systems
COL8150: Special Topics in Theoretical Computer Science I
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of theoretical computer science.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Theoretical Computer Science
COL8151: Special Topics in Theoretical Computer Science II
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of theoretical computer science.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Theoretical Computer Science
COL8160: Special Topics in Algorithms I
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of algorithms.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Algorithms
COL8161: Special Topics in Algorithms II
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of algorithms.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Algorithms
COL8170: Special Topics in Cryptography I
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of cryptography.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Cryptography
COL8171: Special Topics in Cryptography II
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of cryptography.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Cryptography
COL8180: Special Topics in Probability and Computing
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the probability and computing.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Probability and Computing
COL8181: Special Topics in Complexity Theory
3.00 credits (3.0-0.0-0.0)
Pre-requisites: COL1002/COL3152
Pre-requisites: COL1002/COL3152
Recent advances in specific area or areas in computational complexity theory and/or its applications.
On successful completion of the course, a
student will be able to:
- Learn and engage in the latest research in the area of Computational Complexity Theory and its applications
COL8182: Special Topics in Quantum Computing
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of quantum computing.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Quantum Computing
COL8183: Special Topics in Online Computation
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of online computation.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Online Computation
COL8184: Special Topics in Economics and Computation
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of economics and computation.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Economics and Computation
COL8185: Special Topics in Computational Social Choice
3.00 credits (3.0-0.0-0.0)
Special and advanced topics in the area of computational social choice.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Computational Social Choice
COL8271: Special Topics in Formal Methods
3.00 credits (3.0-0.0-0.0)
Pre-requisites: COL2026/COL3201/COL3203/COL7203
Pre-requisites: COL2026/COL3201/COL3203/COL7203
Special topic that focuses on state of the art and research problems of importance in this area.
On successful completion of the course, a
student will be able to:
- Analyze and evaluate recent research in the area of verification and formal methods to develop a critical understanding of current trends and challenges.
COL8272: Special Topics in Programming Languages and Compilers
3.00 credits (3.0-0.0-0.0)
Pre-requisites: COL2026/COL3201/COL3203/COL7203/COL7201
Pre-requisites: COL2026/COL3201/COL3203/COL7203/COL7201
Special topic that focuses on state of the art and research problems of importance in this area.
On successful completion of the course, a
student will be able to:
- Analyze and evaluate recent research in the area of programming lang. and compliers to develop a critical understanding of current trends and challenges.
COL8381: Special Topics in Artificial Intelligence
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL3333/COL7341/COL7333)
Pre-requisites: (COL3333/COL7341/COL7333)
The students will learn about topics, which are currently at the forefront of artificial intelligence research. Each semester, the theme of the course may change depending on the instructor. Potential topics or themes which may be covered (one topic per offering) include: information extraction, applications of AI, advanced logic-based AI, Markov decision processes, statistical relational learning, robotics and embodied/physical intelligence, generative AI etc.
On successful completion of the course, a
student will be able to:
- On successful completion of the course, the student will possess comprehensive understanding in an advanced topic in Artificial Intelligence and will possess skills to apply concepts to a practical problem.
- The student will engage substantially with the latest research in the area of Artificial Intelligence.
COL8383: Special Topics in Natural Language Processing
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL7372)
Pre-requisites: (COL7372)
Recent advances in specific area or areas in Natural Language Processing and/or its applications.
On successful completion of the course, a
student will be able to:
- Learn and engage in the latest research in the area of Natural Language Processing and its applications
COL8385: Special Topics in Machine Learning I
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL3341/COL7341) /(COL3333/COL7333)
Pre-requisites: (COL3341/COL7341) /(COL3333/COL7333)
Recent advances in specific area or areas in machine learning and/or its applications.
On successful completion of the course, a
student will be able to:
- Learn and engage in the latest research in the area of machine learning and its applications
COL8386: Special Topics in Machine Learning II
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL3341/COL7341) /(COL3333/COL7333)
Pre-requisites: (COL3341/COL7341) /(COL3333/COL7333)
Recent advances in specific area or areas in machine learning and/or its applications.
On successful completion of the course, a
student will be able to:
- Learn and engage in the latest research in the area of machine learning and its applications
COL8387: Special Topics in Machine Learning III
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL3341/COL7341) /(COL3333/COL7333)
Pre-requisites: (COL3341/COL7341) /(COL3333/COL7333)
Recent advances in specific area or areas in machine learning and/or its applications.
On successful completion of the course, a
student will be able to:
- Learn and engage in the latest research in the area of machine learning and its applications
COL8395: Special Topics in Data Management I
3.00 credits (3.0-0.0-0.0)
Pre-requisites: COL3362
Pre-requisites: COL3362
The course will cover advanced topics in database management, with a focus on recent research in the field and ongoing work within the department. Specific topics will be announced each time the course is offered.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of Data Managment.
COL8396: Special Topics in Data Management II
3.00 credits (3.0-0.0-0.0)
Pre-requisites: COL3362
Pre-requisites: COL3362
The course will cover advanced topics in database management, with a focus on recent research in the field and ongoing work within the department. Specific topics will be announced each time the course is offered.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of Data Managment.
COL8412: System Level Design and Modelling
3.00 credits (3.0-0.0-0.0)
Models of specification, system design languages, hardware-software co-design, system partitioning, delay and energy estimation, power and energy optimization, application specific processors, AI accelerators, memory systems, non-volatile memory.
On successful completion of the course, a
student will be able to:
- Specify and analyse hardware-software co-design problems
- Model system-level performance and energy, and formulate optimisations
- Design and implement application-specific systems
COL8422: Quantum Computing : Systems and Architecture
4.00 credits (3.0-0.0-2.0)
Pre-requisites: COL7160
Pre-requisites: COL7160
Quantum computing primer, review of quantum algorithms, review of quantum architecture and control interfaces, near term quantum systems, quantum error correction, architecture and systems software for fault-tolerant quantum computers, labs with Qiskit/Microsoft quantum SDK/Rigetti forest/Cirq.
On successful completion of the course, a
student will be able to:
- Analyze and model two-level quantum systems to explain and predict qubit behavior using quantum mechanical principles.
- Construct and analyze quantum circuits using the gate model of computation to implement simple algorithms
- Compare and evaluate different quantum hardware platforms and qubit architectures based on their physical principles, control mechanisms, and scalability
- Formulate and analyze quantum circuit synthesis, qubit allocation, and data mapping problems to optimize circuit performance on target hardware
- Design, implement, and evaluate project-specific quantum software or hardware solutions integrating appropriate synthesis and optimization techniques
COL8585: Special Topics in Computer Networks I
3.00 credits (3.0-0.0-0.0)
Pre-requisites: COL2034
Pre-requisites: COL2034
Special topics focusing on the state-of-the-art developments and active research problems in computer networks.
On successful completion of the course, a
student will be able to:
- Critically engage with recent research in the area of computer networks
COL8586: Special Topics in Computer Networks II
3.00 credits (3.0-0.0-0.0)
Pre-requisites: COL2034
Pre-requisites: COL2034
Special topics focusing on the state-of-the-art developments and active research problems in computer networks.
On successful completion of the course, a
student will be able to:
- Critically engage with recent research in the area of computer networks
COL8590: Special Topics in Operating Systems I
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL2031)
Pre-requisites: (COL2031)
Special topic that focuses on state of the art and research problems of importance in this area.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of operating systems
COL8591: Special Topics in Operating Systems II
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL2031)
Pre-requisites: (COL2031)
Special topic that focuses on state of the art and research problems of importance in this area.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of operating systems
COL8592: Special Topics in Operating Systems III
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL2031)
Pre-requisites: (COL2031)
Special topic that focuses on state of the art and research problems of importance in this area.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of operating systems
COL8595: Special Topics in Software Systems I
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL2031)
Pre-requisites: (COL2031)
Special topic that focuses on state of the art and research problems of importance in this area.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of software systems
COL8596: Special Topics in Software Systems II
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL2031)
Pre-requisites: (COL2031)
Special topic that focuses on state of the art and research problems of importance in this area.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of software systems
COL8597: Special Topics in Software Systems III
3.00 credits (3.0-0.0-0.0)
Pre-requisites: (COL2031)
Pre-requisites: (COL2031)
Special topic that focuses on state of the art and research problems of importance in this area.
On successful completion of the course, a
student will be able to:
- The student will engage substantially with the latest research in the area of software systems
COL8628: Advanced Computer Vision
4.00 credits (3.0-0.0-2.0)
Pre-requisites: (COL7680)
Pre-requisites: (COL7680)
Advanced architectures for image classification, scene understanding and visualization of ML models for image analysis. Traditional and modern techniques for image segmentation, image generation, and object tracking. Attack and defense techniques for computer vision systems. Contemporary interdisciplinary topics (vision+x) such as vision and language, as well as FATE (fairness, accountability, transparency, and ethics).
On successful completion of the course, a
student will be able to:
- Explain advanced visualisation and explanation techniques for ML based computer vision systems
- Apply advanced techniques for visual scene understanding
- Apply generative AI techniques for image and video generation
- Apply advanced techniques for fairness, accountability, transparency and ethics in computer vision systems
- Apply advanced techniques for developing multimodal computer vision systems
CON8000: Teaching Practicum in Computer Science and Engineering
4.00 credits (0.0-0.0-8.0)
Students are expected to assist with teaching that includes preparing course materials, managing class activities and examination, providing support to student engagement, grading assignments. They are also expected to help with practical, tutorials, class projects (depending on the course content) and other administrative tasks related to the course and the school.
On successful completion of the course, a
student will be able to:
- Developing professional teaching communication and interpersonal skills
CON8001: Research Practicum in Computer Science and Engineering
4.00 credits (0.0-0.0-8.0)
Introduction to research communication, poster preparation, oral presentation, and paper writing. Literature review - methodologies and standard tools. Research methodology - problem formulation, design/implementation, evaluation.
On successful completion of the course, a
student will be able to:
- Effectively communicate their research ideas and findings
COS7099: Independent Study
3.00 credits (0.0-3.0-0.0)
The student will be tasked with certain reading assignments and related problem solving in an appropriate area of research in computer science under the overall guidance of a CSE faculty member. The work will be evaluated through term paper.
On successful completion of the course, a
student will be able to:
- In-depth understanding of a focused problem in computer science through independent study and guided research under faculty supervision.
COV8150: Special Module in Theoretical Computer Science
1.00 credits (1.0-0.0-0.0)
Special and advanced topics in the area of theoretical computer science.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Theoretical Computer Science
COV8160: Special Module in Algorithms
1.00 credits (1.0-0.0-0.0)
Special and advanced topics in the area of algorithms.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Algorithms
COV8170: Special Module in Cryptography
1.00 credits (1.0-0.0-0.0)
Special and advanced topics in the area of cryptography.
On successful completion of the course, a
student will be able to:
- Engage substantially with the latest research in the area of Cryptography
COV8280: Special Module in Verification
1.00 credits (1.0-0.0-0.0)
Special module that focuses on state-of-the-art and research problems of importance in this area.
On successful completion of the course, a
student will be able to:
- The student will engage with the latest research in the area of Formal Verification, Testing, Program Analysis, Model Checking, Specification, Synthesis and Security
COV8289: Special Module in Concurrency
1.00 credits (1.0-0.0-0.0)
Pre-requisites: COL2026
Pre-requisites: COL2026
Special module that focuses on special topics and research problems of importance in the area of concurrency in computing.
On successful completion of the course, a
student will be able to:
- understand and analyse significant problems arising from concurrency in computing
COV8378: Special Module in Machine Learning I
1.00 credits (1.0-0.0-0.0)
The module will focus on the recent developments and active research problems in machine learning. Topics will be updated regularly to reflect the latest trends and emerging interests in the field.
On successful completion of the course, a
student will be able to:
- The students will get familiar with the key machine learning concepts and engage with recent research in the area of machine learning
COV8388: Special Module on Data Management Systems
1.00 credits (1.0-0.0-0.0)
The course will expose students to recent developments in different aspects of data management systems, and their applications.
On successful completion of the course, a
student will be able to:
- Engage with recent advances in specific topics of data management systems.
COV8585: Special Module in Computer Networks I
1.00 credits (1.0-0.0-0.0)
Pre-requisites: COL2034
Pre-requisites: COL2034
Special topics focusing on the state-of-the-art developments and active research problems in computer networks.
On successful completion of the course, a
student will be able to:
- Critically engage with recent research in the area of computer networks
COV8586: Special Module in Computer Networks II
1.00 credits (1.0-0.0-0.0)
Pre-requisites: COL2034
Pre-requisites: COL2034
Special topics focusing on the state-of-the-art developments and active research problems in computer networks.
On successful completion of the course, a
student will be able to:
- Critically engage with recent research in the area of computer networks