You are on page 1of 10

Master of Technology (MTech) Program

NOTE: There is a separate page for admission information 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
Duration of the Program
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. 2. 3. 4. Elective Elective Elective Elective 1 2 3 4

Semester 2:
1. 2. 3. Elective 5 Elective 6 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:
  

First Semester: July last week - November last week Second Semester: December last week - April last week Summer Term: The middle of May - The middle of July

MTech is a four semester programme. 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 PhD | Dual Degree | MTech | BTech

Feedback: webmaster AT [cse.iitk.ac.in]

http://www.cse.iitk.ac.in/acad/mtech.html

Course Descriptions
ESc 101: Fundamentals of Computing
This is a compulsory course for ALL undergraduate students. For course description, please see the undergraduate bulletin.

Back to list of courses

CS 100: Introduction to Profession
Course Contents: Books and References:
Back to list of courses

CS 201: Discrete Mathematics
Structure: 3-0-0-0 Academic Load=9 Weightage=3

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.

Books and References:
Back to list of courses

CS 210: Data Structures and Algorithms
Structure: 3-0-0-0 Academic Load=9 Weightage=3 Prerequisite: ESC 101

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).

Books and References:
Back to list of courses

CS 220: Introduction to Computer Organisation
Structure: 3-0-2-0 Academic Load=12 Weightage=4 Prerequisite: ESC 102

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. Assembly language programming for some processor. 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. Advanced Concepts: Pipelining; Introduction to Advanced Processors.

Books and References:
Back to list of courses

CS 315: Principles of Data Base Systems
Course Contents:
Overview of file organisation techniques: sequential, direct, indexed, hashed, inverted, B-trees. Data models: relational, network, hierarchical.

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.

Books and References:

R. El. Masri and S. B. Navathe. Fundamentals of Data Base Systems , Benjamin Cummings, 1989. H. F. Korth and A. Silberschatz. Database Concepts , 2nd Edition, Mcgraw Hill, 1991. J. D. Ullman. Principles of Database and Knowledge Base Systems , Vol. I & II, Computer Science Press, 1988.

Back to list of courses

CS 330: Operating Systems
Course Contents:
Introduction. 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.). Input/Output: device controllers and device drivers, disks, other devices. 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. Deadlocks: modeling, detection and recovery, prevention and avoidance. Example Systems: Unix, MSDOS.

Books and References:
J. Peterson, A. Silberschatz, and P. Galvin. Operating System Concepts , Addison Wesley, 3rd Edition, 1989. M. J. Bach. Design of the Unix Operating System , Prentice Hall of India, 1986. A. Silberschatz and P. Galvin. Operating System Concepts , Addison Wesley, 4th Edition, 1994.

Back to list of courses

CS 335: Principles of Compiler Design
Course Contents:
Compiler structure: analysis-synthesis model of compilation, various phases of a compiler, tool based approach to compiler construction. 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.

Books and References:

A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques and Tools , Addison-Wesley, 1988. C. Fischer and R. LeBlanc. Crafting a Compiler , Benjamin Cummings, 1991. C. Fischer and R. LeBlanc. Crafting a Compiler in C , Benjamin Cummings. A. C. Holub. Compiler Design in C , Prentice-Hall Inc., 1993. Appel. Modern Compiler Implementation in C: Basic Design , Cambridge Press. Appel. Modern Compiler Implementation in Java: Basic Design , Cambridge Press. Fraser and Hanson. A Retargetable C Compiler: Design and Implementation , Addison-Wesley. Dhamdhere. Compiler Construction , McMillan India. Holmes. Object Oriented Compiler Construction , Prentice Hall. Holmes. Building your own Compiler with C++ , Prentice Hall. Wirth. Compiler Construction , Addison-Wesley. Wilhelm and Maurer. Compiler Design , Addison-Wesley. Any other book on Compilers: check central library Reference to Programming Languages: search central library. You may look at comp.compilers newsgroup from time to time: http://www.iecc.com/compiler .

Back to list of courses

CS 340: Theory of Computation
Course Contents:
Models of computation -- classification, properties and equivalences. 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.

Books and References:
C. Papadimitrou and C. L. Lewis. Elements of Theory of Computation , Prentice-Hall, 1981. J.E. Hopcroft and J.D. Ullman. Introduction to Antomata Theory, Languages of Computations , Addison-Wesley, 1979. (Indian edition available from Narosa.)

Back to list of courses

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.

Books and References:

Cormen, Leiserson, and Rivest. Algorithms , MIT Press, 1990. A. V. Aho, J. E. Hopcroft, and J. D. Ullman. The Design and Analysis of Computer Algorithms , Addison Wesley, 1974. E. Horowitz and S. Sahni. Fundamentals of Computer Algorithms , Galgotia, 1991.

Back to list of courses

CS 350: Principles of Programming Languages
Course Contents:
The basic thrust of this course will be on learning the distinctive techniques in the different paradigms and what semantic and compiling issues come up in the various languages considered. 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.

Books and References:

D. A. Watt. Programming Languages and Paradigms , Prentice-Hall, 1990. J. LLoyd. Foundations of Logic Programming , Springer Verlag, 1984. M. Hennessey. The Semantics of Programming Languages , John Wiley, 1990. Luca Cardelli and P. Wegner. On Understanding Types, Data Abstraction and Polymorphism , Computing Surveys, 17(4), pp 471, 1985. C. Reade. Elements of Functional Programming , Addison Wesley, 1989. L. C. Paulson. ML for Working Programmer , Cambridge University Press, 1991. B. Stroustrup. The C++ Programming Language , Addison Wesley.

Back to list of courses

CS 355: Programming Tools and Techniques
Course Contents:
Software mangement tools such as SCCS and make; Programming tools such as Perl, Tcl/Tk; Proramming in the windows environment; Document preparation systems such as tex and metafont; Programming pearls.

http://www.cse.iitk.ac.in/acad/courses1.html

Books and References:
Various on-line and other manuals.

Back to list of courses

CS 360: Introduction to Computer Graphics and Simulation
Course Contents:
Introduction to Picture Synthesis and Analysis. Conceptual Framework of an Interactive Graphical Simulation System. Graphics hardware. Basic Raster Graphics Algorithms. Introduction to Simple Raster Graphics Package (SRGP). Graphics Entities. Geometric Transformations. Object hierarchy. Segmentation. Interaction Techniques. Geometric Modeling in 3-D. Viewing in 3-D. Concept of Synthetic Camera. Dialogue Design. Graphics User Interfaces. Windowing Systems. 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.

Books and References:
James D. Foley, Andries VanDam, Feiner Steven K. and Hughes John F. Computer Graphics: Principle and Practice, Addison-Wesley Publishing House. Foley and VanDam. Fundamentals of Interactive Computer Graphics, Addison-Wesley. Rogers D. F. Procedural Elements of Computer Graphics, McGraw Hill. Dennis Harris. Computer Graphics and Applications, Hearn and Baker. Computer Graphics, Prentice Hall of India.

Back to list of courses

CS 365: Artificial Intelligence
Course Contents:
Introduction to AI. Agents and environments. Problem solving by search; uninformed search, informed ("heuristic") search, constrained satisfaction problems, adversarial search, Knowledge representation and reasoning; rule based representations, logical formalisms, frames or object oriented systems, network based approaches and mixed representations. Theorem-proving. Knowledge bases and expert systems. Overview of LISP and PROLOG. Reasoning in uncertain environments. Planning communication and multiagent systems. Learning. Vision. Natural Language Processing.

Books and References:
Charniak and Mcdermott. Introduction to Artificial Intelligence , Addison-Wesley, 1985. Ginsburg. Essentials of Artificial Intelligence , Morgan Kaufmann, 1993. Winston. Artificial Intelligence , 3rd Edition, Addison Wesley, 1992.

Back to list of courses

CS 397: Special Topics in Computer Science
This course is meant for a 3rd year BTech (CSE) student to study a topic of their interest, somewhat independently. A student may also carry out a project in this course. 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. Guidelines for this course Recent Reports

http://www.cse.iitk.ac.in/acad/courses1.html

Back to list of courses

CS 422: Computer Architecture
Course Contents:
Introduction: Overview of Computer Architecture, Performance evaluation of processors, pipelining, super-pipelines, Advanced pipelines, static and dynamic scheduling, instruction-level parallelism, loop unrolling, VLIW and Super scalar processors, Vector processing and array processing. 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.

Back to list of courses

CS 425: Computer Networks
Course Contents:
Introduction, history and development of computer networks, networks topologies. 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. Introduction to X.25, ISO protocols.

Books and References:

A. S. Tannenbaum. Computer Networks , 2nd Edition, Prentice-Hall, 1988. D. E. Comer. Internetworking with TCP-IP: Principles, Protocols and Architecture , Vol I, 2nd Edition, Prentice Hall, 1991. D. E. Comer and D. L. Stevens. Internetworking with TCP-IP: Design, Implementation, and Internals , Vol II, Prentice Hall, 1990. D. Bertsekas and R. Gallagar. Data Networks , 2nd Edition, Prentice Hall, 1992. W. R. Stevens. UNIX Network Programming , Prentice Hall, 1990.

Back to list of courses

CS 455: Software Engineering
Course Contents:
This course will cover the techniques for development of software systems, commonly referred to as Software Engineering. It is intended to give the students both knowledge about, and practical experience in, the design and development of production quality software. The software engineering techniques taught in the class will be applied on a substantial team project. 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.

Books and References:
Pankaj Jalote. An Integrated Approach to Software Engineering , 2nd edition, Narosa Publishing House. S. L. Pfleeger. Software Engineering , MacMillan Publishing Company, 1987. Roger Pressman. Software Engineering: A Practitioner's Approach , 4th edition, McGraw-Hill Publishing.

http://www.cse.iitk.ac.in/acad/courses1.html

Ghazzi.

Back to list of courses

CS 497: Special Topics in Computer Science
This course is meant for a 4th year BTech (CSE) student to study a topic of their interest, somewhat independently. A student may also carry out a project in this course. 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. Guidelines for this course Recent Reports

Back to list of courses

CS 498: B Tech Project
First semester project work.

Back to list of courses

CS 499: B Tech Project
Second semester project work. Recent Reports

More courses Back to list of courses

Feedback: webmaster AT [cse.iitk.ac.in]

http://www.cse.iitk.ac.in/acad/courses1.html