Professional Documents
Culture Documents
Iitk Mtech Cs
Iitk Mtech Cs
MTech degree program exposes students to a wide range of courses, combined with specialized research which culminates in a thesis. Such a
combination gives students the breadth and depth necessary for pursuing careers in academics as well as industry.
Requirements
The residence requirements for MTech program is four semesters. However, it is possible to get permission to spend one semester elsewhere. If
someone wants to carry out the thesis work in a company, or at some other educational institution, it is allowed by the Institute. For example, we
participate in an exchange program with a few German Universities in which the students can spend a semester in Germany.
The maximum time one can spend in the MTech program is four years.
We also have a part-time MTech program for working professionals. These students will register for six semesters. It is possible to convert one's status
from full-time to part-time and vice-versa.
Course Requirement
The Institute requirement for MTech program is completion of 64 units of load of which at least 24 units shall be through course work and at least 32
units through the MTech thesis. A typical course is considered to be 4 units. At most one course (4 units) can be an under-graduate course. If a student
registers for more than one UG course, the extra courses will not be counted towards the degree requirement or towards the CPI (Cumulative
Performance Index).
Each department has its own requirements for its MTech program, which satisfy the minimum Institute requirements outlined above.
Program Structure
The MTech program in Computer Science consists of the following courses:
Semester 1:
1. Elective 1
2. Elective 2
3. Elective 3
4. Elective 4
Semester 2:
1. Elective 5
2. Elective 6
3. Thesis 8 units
Semester 3:
1. Thesis 16 units
Semester 4:
1. Thesis 16 units
Electives are left to choice of the student, but they must be post-graduate courses offered by Computer Science Department. (Every semester, we do
publish a list of courses offered by other departments, mostly EE and Math, which we treat as being equivalent to PG courses in CS.) To give some
flexibility to the students, at most one elective can be chosen from Computer Science undergraduate course (like Computer Networks, Software
Engineering, etc.), or a post-graduate course offered by other departments in the Institute.
http://www.cse.iitk.ac.in/acad/mtech.html
A list of all computer science courses is available here . A large number of electives are offered in each semester. The exact courses offered will depend
on availability of faculty members in a particular semester.
Academic Session
The academic session normally begins in the fourth week of July every year and ends in the middle of July. The academic year consists of three terms,
two semesters and a summer term:
Each of the two semesters consists of about 18 weeks with a one week mid semester recess. The last week of each semester is the end semester
examination week and one week during the semester is used for the two mid-semester examinations. Thus there are about 15 working weeks in each
semester.
Financial Assistance
Non-sponsored candidates admitted to the regular full-time MTech Program who are Indian Nationals are eligible for financial assistance as follows:
1. TA/RA ship: Candidates admitted to the MTech program after qualifying GATE will be offered the Teaching Assistantship (TA) or Research
Assistantship provided they have secured at least 60 percent marks (55 percent for SC/ST candidates) in their qualifying degree examination.
A teaching assistant can be asked to conduct labs, help an instructor in grading, and other course-related tasks. In some cases, TA can also be
asked to teach tutorial sessions to the first year BTech students.
A research assistant can be asked to support the department in various academic activities. It could be providing help in maintaining and
upgrading department labs, downloading, installing software, etc. An RA can also be assigned to faculty members to help them in their research
effort.
Currently the assistantship amount is Rs. 5000 per month. It also gives 50% waiver in tution fee.
2. Project Assistantship: Several faculty members are working on sponsored projects, supported by government funding agencies such as MHRD,
DIT, DST, AICTE, etc. Some projects are also funded by Industry. An MTech student can be hired as a project employee to carry out research.
The assistantship amount in such cases can be between Rs. 5,000 and Rs. 15,000 per month. No student can draw more than one
scholarship/assistance at a time.
MTech Admission
http://www.cse.iitk.ac.in/acad/mtech.html
Course Descriptions
Course Contents:
Notion of proof: proof by counter-example, the contrapositive, proof by contradiction, inductive proofs.
Algebra: Motivation of algebraic structures; review of basic group theory with emphasis to finite groups: subgroups and group
homomorphism, Lagrange's theorem. Commutative rings, ideals. Finite fields and their elementary properties. Some CS applications
(e.g., RSA, error correcting codes).
Combinatorics: Basic counting techniques, pigeon-hole principle, recurrence relations, generating functions, Polya's counting theorem.
Basics of graph theory. Introduction to probabilistic method in combinatorics.
Formal logic: Propositional logic: proof system, semantics, completeness, compactness. Length of proofs, polynomial size proofs,
efficiency of proof systems. First order logic: models, proof system, compactness. Examples of formal proofs in, say, number theory or
group theory. Some advanced topics. E.g., CS application of logic, introduction to modal and temporal logics, Or, formal number theory
including incompleteness theorem, Or, elements of proof theory including cut elimination, Or zero-one law for first order logic.
Course Contents:
Order Analysis: Objectives of time analysis of algorithms; Big-oh and Theta notations.
Elementary Data Structures: Arrays, Linked lists, Stacks (example: expression evaluation), and Queues. Binary search trees. Red-Black
trees. Hash tables.
Sorting and Divide and Conquer Strategy: Merge-sort; D-and-C with Matrix Multiplication as another example. Quick-sort with average
http://www.cse.iitk.ac.in/acad/courses1.html
case analysis. Heaps and heap-sort. Lower bound on comparison-based sorting and Counting sort. Radix sort.
B-trees.
Dynamic Programming: methodology and examples (Fibonacci numbers, matrix sequence multiplication, longest common
subsequence, convex polygon triangulation).
Greedy Method: Methodology, examples (lecture scheduling, process scheduling) and comparison with DP (more examples to come
later in graph algorithms).
Graph Algorithms: Basics of graphs and their representations. BFS. DFS. Topological sorting. Minimum spanning trees (Kruskal and
Prim's algorithms and brief discussions of disjoint set and Fibonacci heap data structures). Shortest Paths (Dijkstra, Bellman-Ford,
Floyd-Warshall).
Course Contents:
Introduction: Overview of basic digital building blocks; truth tables; basic structure of a digital computer.
Number representation: Integer - unsigned, signed (sign magnitude, 1's complement, 2's complement, r's complement); Characters -
ASCII coding, other coding schemes; Real numbers - fixed and floating point, IEEE754 representation.
Basic building blocks for the ALU: Adder, Subtractor, Shifter, Multiplication and division circuits.
CPU Subblock: Datapath - ALU, Registers, CPU buses; Control path - microprogramming (only the idea), hardwired logic; External
interface.
Memory Subblock: Memory organization; Technology - ROM, RAM, EPROM, Flash, etc. Cache; Cache coherence protocol for
uniprocessor (simple).
I/O Subblock: I/O techniques - interrupts, polling, DMA; Synchronous vs. Asynchronous I/O; Controllers.
Peripherals: Disk drives; Printers - impact, dot matrix, ink jet, laser; Plotters; Keyboards; Monitors.
http://www.cse.iitk.ac.in/acad/courses1.html
Relational model: algebra, calculus, normal forms. Implementation of query languages, security and protection of data recovery
methods.
Concurrent operations on data bases, introduction to distributed data base systems, case studies.
Process management: process synchronization and mutual exclusion, two process solution and Dekker's algorithm, semaphores,
examples (producer-consumer, readers-writer, dining philosophers, etc.).
CPU scheduling: multiprogramming and time sharing, scheduling approaches (SJF, FIFO, round robin, etc.).
Memory management: with and without swapping, virtual memory - paging and segmentation, page replacement algorithms,
implementation.
File systems: FS services, disk space management, directory and data structure.
Lexical analysis: interface with input, parser and symbol table, token, lexeme and patterns. Difficulties in lexical analysis. Error
reporting. Implementation. Regular definition, Transition diagrams, LEX.
Syntax analysis: CFGs, ambiguity, associativity, precedence, top down parsing, recursive descent parsing, transformation on the
grammars, predictive parsing, bottom up parsing, operator precedence grammars, LR parsers (SLR, LALR, LR), YACC.
Syntax directed definitions: inherited and synthesized attributes, dependency graph, evaluation order, bottom up and top down
evaluation of attributes, L- and S-attributed definitions.
http://www.cse.iitk.ac.in/acad/courses1.html
Type checking: type system, type expressions, structural and name equivalence of types, type conversion, overloaded functions and
operators, polymorphic functions.
Run time system: storage organization, activation tree, activation record, parameter passing, symbol table, dynamic storage
allocation.
Intermediate code generation: intermediate representations, translation of declarations, assignments, control flow, boolean
expressions and procedure calls. Implementation issues.
Code generation and instruction selection: issues, basic blocks and flow graphs, register allocation, code generation, dag
representation of programs, code generation from dags, peep hole optimization, code generator generators, specifications of machine.
Regular languages models: finite state machines (deterministic and non-deterministic), regular grammars, regular expressions,
equivalence of deterministic and non-deterministic machines and of the three models. Properties: closure, decidability, minimality of
automata, iteration theorems.
Recursive and recursively enumerable sets models: turing machines, grammars, recursive functions, their equivalence. Church's thesis.
Properties: closure, decidability, undecidablity/non-computability, notion of reductions.
Context-free languages models: grammars (including different normal forms), pushdown automata, and their equivalence. Properties:
closure, iteration theorems, parsing.
CS 345: Algorithms II
Structure: 3-0-2-0 Academic Load=12 Weightage=4
Prerequisite: CS 201, CS 210
http://www.cse.iitk.ac.in/acad/courses1.html
Course Contents:
Max Flows: Max Flows (Ford-Fulkerson and bipartite matching).
Linear Algebra: LUP decomposition, inverting matrices.
Fast Fourier Transform. Polynomial multiplication, integer multiplication and division.
Number-theoretic Algorithms: GCD, Modulo arithmetic, Chinese remaindering, RSA.
Linear Programming: formulation, simplex, primal-dual.
Geometric algorithms: convex hull, closest pair, intersection of line segments, polygon triangulation.
Randomized Algorithms: identity testing, primality and min-cut.
Approximation Algorithms: max-cut, tsp, vertex-cover etc.
Backtracking.
Other topics: these may include string matching, parallel algorithms, amortized analysis, etc.
Imperative Languages: block structure, scope rules, parameter passing, constructs like coroutines, tasks etc.
Functional programming: functions, recursion, macros, user-defined control constructs, higher order constructs, types, data
abstraction, polymorphism, semantics, implementation issues.
Declarative programming: declarative programming, Horn clauses, procedural interprettation of Horn clauses, SLD-resolution
including unification, the logical variable, implementation issues: abstract machines and compiling to abstract machines.
Object-oriented programming: objects and programming with objects, classes and instances, hierarchies and inheritance,
encapsulation, semantics of OO languages and implementation issues.
http://www.cse.iitk.ac.in/acad/courses1.html
Books and References:
Various on-line and other manuals.
Graphical Modeling of Discrete events. Simulation of Discrete Event Displays. Animation Techniques. Basic Rules for Animation.
Graphical Simulation of continuous motion. Role of Virtual Reality in Graphical Simulation.
In this course, there will be a faculty member associated with each student whose responsibility will be to suggest reading material,
hold discussion sessions, monitor the progress of the student, examine the student, and give a grade at the end of the semester.
http://www.cse.iitk.ac.in/acad/courses1.html
Back to list of courses
Memory: bandwith issues, memory organization, cache coherence, Symmetric multiprocessors (SMP), NUMA-MPs, Massively parallel
processors, Cache coherence protocols, Interconnection networks, I/O processing, multiprocessing, multiplexing, Examples of
contemporary architectures, RAS (Reliability, Availability, Scalability) features.
Physical Layer: theoretical basis, transmission media, analog transmission, digital transmission, switching.
MAC layer: Aloha protocols, local area networks -- Ethernet, token ring, FDDI. Data link layer: sliding window protocols.
Network layer: routing algorithms, congestion control algorithms, internetwroking -- bridges and routers.
Transport layer. Session, presentation, and application Layers. Use of TCP/IP protocol suite as running example.
Course topics will be as follows: Software development life cycle; Process models; Requirements; Specifications; Software design;
Structured programming and implementation; Testing; Verification and validation; Software Metrics; Software Project management.
http://www.cse.iitk.ac.in/acad/courses1.html
Ghazzi.
In this course, there will be a faculty member associated with each student whose responsibility will be to suggest reading material,
hold discussion sessions, monitor the progress of the student, examine the student, and give a grade at the end of the semester.
Recent Reports
More courses
http://www.cse.iitk.ac.in/acad/courses1.html