Author: Sanjay Goel,
This year a new curriculum has been developed at JIIT. The last curriculum revision was undertaken in 2007.
1. Excerpts from the Preamble of the Ordinance for MTech Programs at JIIT, Noida
The objective of the M.Tech program is;
- to promote specialized or inter-disciplinary work of an advanced nature,
- to bring into the Institute recently generated knowledge that has either already become part of the world of work or has the potential to become part of this world,
- to attract the best student talent for higher studies and,
- to build requisite academic flexibility for a student-centric programme in which students can learn at their own pace and which enables interaction with the professional world.
The output profile of an M.Tech graduate of this Institute will be as follows:
Students should be specialists in their area of specialization having the capability to conceive new systems/applications. They should possess some of the following characteristics.
- Independence in work and thoughts.
- Ability to engineer requirement/system to carry out systems integration.
- Ability to explore the latest technology and its applications.
- Be a technology manager.
- Capability to deploy appropriate technology paradigm for given tasks.
- Ability to form and lead teams. .
- Ability to build convincing technical cases for approval / demonstration of initial ideas by conducting experiments and forming examples.
2. Incoming students: BE/BTech (CSE/IT) based on GATE or PGET conducted by JES. The incoming students normally have an undergraduate level understanding of most of the basic computer science & engineering courses like programming, discrete maths, data structures, algorithms, digital electronics, computer organisation and architecture, database systems, operating systems, computer networks, theory of computing, compiler design, software engineering, etc. In addition, they have studied some undergraduate level maths courses exposing them to topics like matrices, probability, differential equations, and complex variables, etc.
3. Curriculum Structure: As per the new approved curriculum structure, in addition to the 6 core courses, we also have slots for 6 electives, 2 Lab courses, 1 project, 1 seminar, and a dissertation spread over two semesters. The slots other than the core courses can be used to develop specialization, and also offer training and exposure in contemporary and emerging areas.
4. Proposed Objective of the MTech (CSE): To develop the competencies to plan, design, develop, deploy, manage, and evaluate complex computing systems and applications with special focus on performability.
5. Pedagogy: In order develop these competencies, conceptual understanding will be complimented with skills in contemporary tools and standards. Multidimensional pedagogical engagements will facilitate deep learning through active, integrated, collaborative, and reflective learning experiences. The courses will place a high emphasis on assignments and project work.
6. Proposed Core courses:
6.1 Criteria for choosing Core courses: The chosen core courses should:
- elaborate unifying and pervasive themes directly relevant to a large number of CS sub-streams, and facilitate integrated learning
- focus on themes with deep theoretical foundations and contemporary practical relevance, especially wrt the emerging R&D work in Indian IT industry
- lay the second level breadth foundation for PhD in CS, include themes from the three main categories of CS body of knowledge – Theory, Systems, and Applications
- not have significant overlap with JIIT BTech (CSE) courses keeping in mind the interest of Dual Degree BTech-MTech students
6.2 List of Core Theory Courses: Using above criteria, the following 6 Theory courses form the core:
i. Advanced Data Structures and Computational Thinking:
Advanced data structures: String data structures, Red Black Tree, Tournament Tree, Splay Tree, Tries, Indexing trees for large scale databases, Priority search queues, Spatial and Multidimensional data structures (pyramid, kd tree, quad tree, octree, R tree, bsp tree, region adjacency graph, etc.), Kinetic data structures
Philosophy of CS – Fundamental questions of CS, traditions of CS (logico-mathematical view, design/ engineering view, empirical/scientific view), emerging interdisciplinarity
Unifying and pervasive themes of CS, – abstraction, complexity, sequentiality, concurrency, synchronization, caching, consistency, completeness, state, system/quality metrics, performance, scalability, limits, load balancing, locality, non-determinism, prevention/detection/recovery of worst case scenarios through exception handling, error correction, redundancy, damage containment, tradeoffs and consequences, power consumption
ii. High Performance Software Engineering:
Software performance requirements, Software risk taxonomy, Performance oriented software architecture, SOA, design patterns; Performance, load and stress testing; Performance programming – assertions, debugging, profiling, build and release management, productivity tools, program comprehension, code organisation, code analysis & optimisation, cache conscious programming, secure coding, reducing resource requirements, performance tuning, shared memory and hybrid parallel programming with multi-core and GPU as examples, mixed language & mixed paradigm programming
iii. Pattern Recognition and Machine Learning:
Mathematical Foundations, Bayesian decision theory, principal component analysis and dimension reduction, parametric and non-parametric learning, association and clustering, nearest neighbour indexing and hashing, boosting techniques, kernel methods and support vector machine, Time series analysis, HMM, optimisation, cross validation, model selection and regularization, large scale data analytics, performance metrics.
iv. Distributed Systems:
Foundation of Distributed Computing, Synchronization mechanisms, Resource Management, Distributed programming, Self Stabilizing Systems, Peer to Peer Systems, Fault Tolerance, Distributed Grids and Cloud Computing, Data Consistency, Data Replication and failures; Distributed Database Design, Distributed Transactions, Web Services, Hadoop, Reliability of Distributed DBMS, performance metrics
v. Advanced Algorithms:
Amortized Analysis, NP Completeness; String Algorithms, Cryptography, Randomized and Approximation Algorithms; Optimization, Nature inspired algorithms; Large Graph Algorithms, Parallel Algorithms, Web Algorithms
vi. Performance Evaluation of Computing Systems:
Performance metrics for computer architecture, operating systems, computer networks, databases, software systems, and security infrastructure – computational speed, response time, throughput, accuracy, availability, reliability, integrity, safety, usability, scalability, quality of service, maintainability, serviceability, energy & resource efficiency, sustainability;
Analytical tools for performance evaluation – workload characterisation, input modelling, deterministic and nondeterministic systems, discrete event simulation – probability distributions, random number generation, queuing systems, Markovian models; reliability models, maintainability models, energy models
Empirical performance evaluation – Performance testing, Test benches, Benchmarks (types, strategies, and tools for computer architecture, operating systems, computer networks, databases, software systems, security infrastructure, etc.), Reliability Testing, System validation.
6.3 List of Core Lab courses:
- High Performance Programming Lab
- Software Systems Lab
- Complexity Theory and Models of Computation
- Randomized and Approximation Algorithms
- Algorithmic Graph Theory
- Computer Arithmetic Algorithms
- Parallel Architecture and Algorithms
- Advanced Operating Systems
- Database System Implementation
- Programming Languages
- Compiler Optimisation
- Multimedia and Wireless Computer Networks
- Wireless Sensor and Actuator Networks
- Embedded Systems Design
- Nature Inspired Computing
- Enterprise Information Systems
- Data Compression
- Cryptography and Computer Security
- Security Protocols
- Computer Forensics
- Intelligent Systems
- Information Integration and Data Analytics
- Large Scale Graph Algorithms
- Web Algorithms
- Mobile and Pervasive Computing
- Mobile Commerce and Applications
- Mobile Software Engineering
- Advanced Mobile and Cloud Computing
- Software Requirement Engineering
- Empirical Software Engineering
- 3D Graphics and Animation
- Multimedia Systems
- Computer Vision
- Computational Geometry
- Semantic and Social Web
- Human Centred System Design
- Interactive Media
- Computer Supported Collaborative Work
- Learning Technologies
- Knowledge Management Systems
- Educational Models for Computer Science
- Problem Solving and Research Methodology
- Quantitative and Qualitative Research Methods
- IT Entrepreneurship
- ICT and Sustainable Development
- Technical Communication and Software Documentation
- Topics in Information Systems
- Topics in Software Engineering
- Topics in Computer Engineering
- Topics in Theoretical Computer Science
- Topics in Information Technology
- Prof. Rao Vemuri, University of California, Davis, USA
- Prof. Sartaj Sahni, University of Florida, USA
- Prof. Rajeev Sangal, Director, IIT (BHU), India
- Prof. Pankaj Jalote, Director, IIIT Delhi, India
- Prof. SK Gupta, IIT Delhi, India
- Prof. Sushil K. Prasad, Georgia State University, USA
- Prof. Mainsh Parashar, Rutgers University, USA
- Prof. Dinesh Manocha, UNC Chapel Hill, USA
- Prof. Prem Kalra, IIT Delhi, India
- Prof. Vasudev Verma, Dean, IIIT Hyderabad, India
- Dr. Sumantra Dutta Roy, IIT Delhi, India
- Mr. Mukul Jain, COO, MTree, India (VP, ACM NCR chapter; regular employer of our students)
- Mr. Ajay Goel, AVP, Engineering, Aricent, Gurgaon, India
- Mr. Sandesh Goel, Technical Leader, CISCO, India (inventor with 20+ patents)
- Mr. Siddharth Batra, Alumnus of JIIT and Stanford University, Entrepreneur, USA