Course 39. Artificial Intelligence (Web Course) Faculty Coordinator(s) : 1. Prof. P. Mitra Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Kharagpur, 721302, INDIA E-Mail:pabitra@cse.iitkgp.ernet.in Telephone : (91-3222) 2. Off : 282356 Res : 256315 Prof. S. Sarkar Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Kharagpur, 721302, INDIA E-Mail: sudeshna@cse.iitkgp.ernet.in Telephone : (91-3222) Off : Res : 283494 283495, 277399 ARTIFICIAL INTELLIGENCE The course will cover basic ideas and techniques underlying the design of intelligent computer systems. Topics include: Introduction to AI and intelligent agents. Problem Solving : Solving Problems by Searching, heuristic search techniques, constraint satisfaction problems, stochastic search methods. Game Playing : minimax, alpha-beta pruning. Knowledge and Reasoning : Building a Knowledge Base : logic, situation calculus. Theorem Proving in First Order Logic. Propositional logic, first order Planning, partial order planning. Uncertain Knowledge and Reasoning, Probabilities, Bayesian Networks. Learning : Networks. Overview of different forms of learning, Learning Decision Trees, Neural Introduction to Natural Language Processing. Design and Analysis of Algorithms (Web Course) Lecture list: 1. Prof. Abhiram G. Ranade Department of Computer Science and Engineering Indian Institute of Technology Bombay Powai, Mumbai 400 076 Email : ranade@cse.iitb.ac.in Telephone : (91-22) 2576 7734 (Office) 2. Prof. Ajit A. Diwan Department of Computer Science and Engineering Indian Institute of Technology Bombay Powai, Mumbai 400 076 Email : aad@cse.iitb.ac.in Telephone : (91-22) 2576 7720 (Office) 3. Prof. Sundar Vishwanathan Department of Computer Science and Engineering Indian Institute of Technology Bombay Powai, Mumbai 400 076 Email : sundar@cse.iitb.ac.in Telephone : (91-22) 2576 7727 (Office) Detailed Syllabus: Introduction Euclid's algorithm Problem, Instance, RAM model, RAM model 2: Asymptotic complexity Some stylistic issues Analysis of Algorithms Principles of Algorithm Design Finding Maximum and Minimum Divide and conquer Introduction, Sorting Median Finding Dynamic Programming Combinatorial Search: Dynamic programming 1: Knapsack DP 2: Longest common subsequence DP 3: Matrix chain multiplication or Optimal search trees DP 4: A machine scheduling problem Greedy Algorithms Introduction Set of Intervals Fractional Knapsack Huffman Coding NP-Completeness Matching Introduction to NP-Complete Search/Decision SAT Independent_Set 3VC Exact Cover Multi Set Subset Sum & Partition Hamiltonian Circuit Introduction to Database Systems and Design (Web Course) Faculty Coordinator(s): 1. Prof. P. Sreenivasa Kumar Department of Computer Science and Engineering Indian Institute of Technology Madras Madras 600036 Email: psk@iitm.ac.in Telephone: (91-44) Off: Fax: 2257 4366 (Extn. 4366) 2257 4352 Detailed Syllabus: 1. Introduction • • • • • • • General introduction to database systems; Database-DBMS distinction, Approaches to building a database, Data models, Database management system, Three-schema architecture of a database, Challenges in building a DBMS, Various components of a DBMS. • • • • • • Conceptual data modeling - motivation, Entities, Entity types, Various types of attributes, Relationships, Relationship types, E/R diagram notation, Examples. 2. E/R Model 3. Relational Data Model • • • Concept of relations, Schema-instance distinction, Keys, referential integrity and foreign keys, 1) Relational algebra operators: • • • • Selection, Projection, Cross product, Various types of joins, Division, Example queries, 2) Tuple relation calculus, 3) Domain relational calculus, 4) Converting the database specification in E/R notation to the relational schema. 4. SQL • • • • • • • • • • Introduction, Data definition in SQL, Table, key and foreign key definitions, Update behaviors. Querying in SQL Basic select- from- where block and its semantics, Nested queries - correlated and uncorrelated, Notion of aggregation, Aggregation functions group by and having clauses, Embedded SQL. 5. Dependencies and Normal forms • • • • • • • • • • Importance of a good schema design, Problems encountered with bad schema designs, Motivation for normal forms, dependency theory - functional dependencies, Armstrong's axioms for FD's, Closure of a set of FD's, Minimal covers, Definitions of 1NF, 2NF, 3NF and BCNF, Decompositions and desirable properties of them, Algorithms for 3NF and BCNF normalization, Multi-valued dependencies and 4NF, Join dependencies and definition of 5NF. 6. Data Storage and Indexes • • • • • • File organizations, Primary, Secondary index structures, Various index structures - hash-based, Dynamic hashing techniques, Multi-level indexes, B+ trees. 7. Transaction processing and Error recovery • • • • • • Concepts of transaction processing, ACID properties, Concurrency control, Locking based protocols for CC, Error recovery and logging, Undo, Redo, Undo-redo logging and recovery methods Course 29. Computer Organisation and Architecture (Web Course) Faculty Coordinator(s) : 1. Prof. Jatindra Kumar Deka Department of Computer Science and Engineering Indian Institute of Technology, Guwahati North Guwahati, Guwahati 781039 Assam, India E-Mail: jatin@iitg.ernet.in Telephone : (91-361) Off : Res : 2690321-8 Extn: 2354 2691152, 2584354 Detailed Syllabus : Module Module-1 Module-2 Module-3 Module-4 Module-5 Module-6 Module-7 Module-8 Module-9 Module-10 Module-11 Lectures Lecture-1: Introduction to computer system and its submodules Lecture-2: Number System and Representation of information Lecture-1: Arithmetic and Logical operation and hardware implementation. Lecture-2: Software implementation of some complex operation. Lecture-1: Arithmetic and Logic Unit, Introduction to memory Unit, control unit and Instruction Set Lecture-2: Working with an ALU, Concepts of Machine level programming, Assembly level programming and High level programming Lecture-1: Various addressing modes and designing of an Instruction set. Lecture-2: Concepts of subroutine and subroutine call Lecture-3: Use of stack for handling subroutine call and return Lecture-1: Introduction to CPU design, Instruction interpretation and execution, Micro-operation and their RTL specification Lecture-2 & 3: Hardwired control CPU design Lecture-4 & 5: Microprogrammed control CPU design Lecture-1: Concepts of semiconductor memory, CPU-memory interaction, organization of memory modules Lecture-2: Cache memory and related mapping and replacement policies. Lecture-3: Virtual memory Lecture-1: Introduction to input/output processing, working with video display unit and keyboard and routine to control them Lecture-2: Programmed controlled I/O transfer Lecture-3: Interrupt controlled I/O transfer Lecture-4: DMA controller Lecture-1: Secondary storage and type of storage devices Lecture-2: Introduction to buses and connecting I/O devices to CPU and memory Lecture-1: Introduction to RISC and CISC paradigm Lecture-2 & 3: Design issues of a RISC processor and example of an existing RISC processor. Lecture-1: Introduction to pipelining and pipeline hazards, design issues of pipeline architecture Lecture-2 & 3: Instruction level parallelism and advanced issues. Lecture-1: Introduction to interconnection network and practical issues. Lecture-2 & 3: Examples of interconnection networks Module-12 Module-13 Module-14 Lecture-1: Lecture-2: Lecture-3: Lecture-4: Lecture-1: Lecture-2: Lecture-1: Lecture-2: Multiprocessors and its characteristics Memory organization for multiprocessors systems synchronization and models of memory consistency. Issues of deadlock and scheduling in multiprocessor systems. Cache in multiprocessor systems and related problems Cache coherence protocols Parallel processing concepts Parallelism algorithm for multiprocessor systems. Data Communications (Web Course) Prof. H.S. Jamadagni Department of Compute r Science and Engineering Indian Institut e of Science, Bangalore Bangalore, 560012, Karnataka, India Email : chairman@cedt.iisc.ernet.in , hsjam@cedt.iisc.ernet.in Telephone : (91-80) 3600 810, 3602 246, 3600 80 8 (Office) Detailed Syllabus Fundamentals of Digital Communication. Communication channel, Measure of information, Encoding of source output, Shannon’s Encoding algorithms, Discrete and continues channel, Entropy, Variable length codes, Data compression, Shannon-Hantly Theorem. Baseband data transmission, Baseband pulseshaping, Inter Symbol Interface (ISI), Dubinary Baseband PAM, System Many signaling schemes, Equalisation, Synchronisation Scrambler and Unscrambler. Band-pass data transmission system ASK, PSK, FAK, DPSK &PSK, MSK, Modulation schemes coherent and Non Coherent detector. Probability of Error (PE) , Performance Analysis and Comparison. Error detection and correction codes, Linear Block Encoding, Algebraic Codes, Cyclic Codes, Convolution codes, Best Error, Correeding Codes, performance of Codes. Synchronous and Asynchronous transmission, Modem, Serial interface, Circuit Switching, Packet Switching, Hybrid switching, Architecture of computer network, OSI model, Data communication protocols. Course 9. Digital Systems (Web Course) Faculty Coordinator(s) : 1. Prof. N. J. Rao Department of Computer Science and Engineering Indian Institute of Science, Bangalore Bangalore, 560012, Karnataka, India E-Mail: chairman@mgmt.iisc.ernet.in, njrao@cedt.iisc.ernet.in Telephone : (91-80) Off : 29322246, 29322377 Detailed Syllabus : Module I (8) number Systems and Boolean Algebra Number systems and codes: Binary, octal, and hexa- decimal number systems, binary arithmetic, binary code, excess-3 code, gray code, error detection and correction codes. Boolean algebra: Postulates and theorems, logic functions, minimization of Boolean functions using algebraic, Karnaugh map and Quine – McClausky methods, realization using logic gates Module II (4) Logic Families Logic families: TTL, CMOS, Tri state logic, electrical characteristics. Module III (10) Design of Combinational Circuits Realizing logical expressions using different logic gates and comparing their performance. Realizing combinational functions using available hardware devices: addition, subtraction, multiplication, code conversion, decoding, comparison, multiplexing and demultiplexing. Hardware aspects related to logic design: delays and hazards. Module IV (12) Sequential Cirucuits Structure of sequential circuits: Moore and Melay machines. Flip-flops, excitation tables, conversions, practical clocking aspects concerning flip-flops, timing and triggering considerations. Realization of sequential functions using sequential MSIs: counting, shifting. Analysis of sequential circuits: State tables, state diagrams and timing diagrams. Design of sequential circuits: Functional partitioning, state assignment, output racing. Examples of design of digital circuits. Module V (6) Digital Hardware Devices Memory devices: ROM, RAM, EPROM, and Flash memory. Programmable Logic Devices: Architecture of PLDs, and implementation of circuits using PLDs. Annexure 2 DIGITAL ELECTRONICS (New) Module I (8): number Systems and Boolean Algebra: Number systems and codes: Binary, octal, and hexa- decimal number systems, binary arithmetic, binary code, excess-3 code, gray code, error detection and correction codes. Boolean algebra: Postulates and theorems, logic functions, minimization of Boolean functions using algebraic, Karnaugh map and Quine – McClausky methods, realization using logic gates Module II (8): Introduction to Combinational and Sequential Circuits: Introduction to combinational circuit: Realization of basic combinational functions like comparison, code conversion, decoding, multiplexing, demultiplexing, addition, subtraction. Delays and hazards in combinational circuits. Introduction to sequential circuits. Flip-flops: different types, excitation table, timing, skew, meta stability, and conversion of functions. Module III (8): Digital Hardware Devices: Introduction to logic families. Electrical characteristics of digital hardware devices. Characteristics of bipolar and CMOS family devices. Memory devices: ROM, RAM, EPROM, CDROM, Flash memory. Programmable logic devices: architecture and characteristics. Module IV (8): Analysis and Design of Digital Circuits Analysis of sequential circuits: timing diagrams, state diagrams and state tables. Design of digital systems: Functional partitioning diagrams, controller, state assignment, output racing, and realization issues using PLDs. Examples of design of digital circuits Module V (8): Introduction to Design with VHDL: Introduction to VHDL: Defining modules in VHDL, Structural modeling, Data flow models, Behavior models. Design of digital circuits using VHDL. Lecture Plan Module Sub-Modules 1. Number Systems and Boolean Algebra 1.Introduction to number systems: Binary, Octal & Hexadecimal systems 2.Conversion of numbers in one radix to numbers in different radix 3.Different Binary Codes 4.Boolean Algebra, Theorems & Postulates 5.Logic functions: representation and graphic representation 6.Minimization of logic functions: Algebraic and Kmap methods 7. Minimization using Quine-Mc Clausky 1. Introduction to combinational circuits 2.Realization of basic combinational functions 3. Delays and hazards in design 4. Structure of sequential circuits 2. Combinational and Sequential Circuits Hours/ topic 1 1 Total Hours 8 1 1 1 2 1 1 2 1 1 8 3. Digital Hardware Devices 4. Design of Digital Circuits 5. Introduction VHDL to 5. Flip-flops 1. Introduction to Logic families 2. Electrical Characteristics of logic devices 3. Characteristics of TTL logic devices 4. Characteristics of CMOS logic devices 5. Introduction to different types of memories 7. Programmable Logic Devices 1.Analysis of sequential circuits using timing diagrams, state tables, state diagrams 2. Design of digital circuits 3. Design of digital circuits using PLDs 1.Introduction to Hardware Descriptive Languages 2.Defining entities, architecture with different modeling architecture 3. Designing digital circuits in VHDL 2 1 1 1 1 2 2 3 2 3 1 4 3 8 8 8 Course 27. Compiler Design (Web Course) Faculty Coordinator(s) : 1. Prof. Sanjeev K. Aggarwal Department of Computer Science and Engineering Indian Institute of Technology, Kanpur Kanpur E-Mail: ska@cse.iitk.ac.in Telephone : (91- 512) Off : 259 7614 Detailed Syllabus : Compiler Design (total 50 lectures) Module 1: (3 lectures) Compiler structure: analysis-synthesis model of compilation, various phases of a compiler, tool based approach to compiler construction. Module 2: (5 lectures) Lexical analysis: interface with input, parser and symbol table, token, lexeme and patterns, difficulties in lexical analysis, error reporting, and implementation. Regular definition, Transition diagrams, LEX. Module 3: (4 lectures) Syntax analysis: context free grammars, ambiguity, associativity, precedence, top down parsing, recursive descent parsing, transformation on the grammars, predictive parsing, Module 4: (4 lectures) Bottom up parsing, operator precedence grammars, LR parsers (SLR, LALR, LR), YACC. Module 5: (5 lectures) Syntax directed definitions: inherited and synthesized attributes, dependency graph, evaluation order, bottom up and top down evaluation of attributes, L- and S-attributed definitions. Module 6: (3 lectures) Type checking: type system, type expressions, structural and name equivalence of types, type conversion, overloaded functions and operators, polymorphic functions. Module 7: (4 lectures) Run time system: storage organization, activation tree, activation record, parameter passing Module 8: (3 lectures) symbol table, dynamic storage allocation. Module 9: (3 lectures) Intermediate code generation: intermediate representations, translation of declarations, assignments Module 10: (3 lectures) Intermediate Code generation for control flow, boolean expressions and procedure calls, implementation issues. Module 11: (3 lectures) Code generation and instruction selection: issues, basic blocks and flow graphs, register allocation, code generation Module 12: (3 lectures) DAG representation of programs, code generation from dags, peep hole optimization, code generator generators, specifications of machine. Module 13: (4 lectures) Code optimization, source of optimizations, optimization of basic blocks, loops, global dataflow analysis, solution to iterative dataflow equations. Module 14: (3 lectures) Code improving transformations, dealing with aliases, data flow analysis of structured flow graphs The course will have project where students will have to develop compiler for a subset of C language using tools like Lex and Yacc. The target environment will be SPIM simulator. Course 17. Computer Networks (Web Course) Faculty Coordinator(s) : 1. Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Kharagpur, 721302, INDIA E-Mail: apal@cse.iitkgp.ernet.in Telephone : (91-3222) Off : Res : 283486 283487, 278612 Detailed Syllabus : Overview of OSI reference model. Topology design, Media Access Control Level, Services, Problems and protocols, Practical local area network design and implementation. IEEE LAN Standards, Logical Link Control protocols, HDLC, ALOHA, SLOTTED ALOHA, FDDI, Client Server model and related softwares. Network Layer level services, problems and protocols. WAN, MAN, interconnection networks related softwares, TCP/IP, Novel NetWare, Routers, Bridges and Gateways their Practical implementation aspects. X.25, Internet and related softwares NETSCAPE and MOSAIC. Transport layer, services, problems and their protocol. Brief functioning of upper layers, E-mail and other application. Course 35. Object Oriented System Design (Web Course) Faculty Coordinator(s) : 1. Prof. D. Janakiram Department of Computer Science and Engineering Indian Institute of Technology, Madras Chennai, 600 036 E-Mail: djram@shiva.iitm.ernet.in Telephone : (91-44) Off : Res : 2257 8343 2257 9343 Detailed Syllabus : Section 1: Basic Concepts Module 1 : Basic Concepts of Object-Orientation: Data abstraction -Encapsulation -Inheritance -Aggregation (2 hours) Module 2 : Object-Oriented Programming Evolution of OO programming languages -Simula, Smalltalk, Eiffel, C++, Java, C# (2 hours) Module 3 : Fundamentals of OOP Class -Object -Message -Inheritance -Dynamic binding - Polymorphism -Virtual functions -Virtual table construction -Different perspectives on inheritance Interface V s Implementation inheritance - Single V s Multiple inheritance Mixins (6 hours) Module 4 : Prototype based OO languages: Class Vs Prototype -Cloning -Delegation -SELF -Object behavioural evolution Dynamic inheritance (2 hours) Module 5: Theory of objects: Type -Subtype -Substitution principle -Covariance -ContravarianceOverloading -Parametric polymorphism -Inclusion polymorphism - Lambda Calculus -Object Calculus -Algebra -Denotational semantics (4 hours) Section 2: Object-Oriented Software Development Lifecycle Module 6 : Object-Oriented Analysis: Class-Responsibility-Collaboration (CRC) technique - Coad & Yourdon method Bailin's Entity Data Flow Diagram (EDFD) (3 hours) Module 7: Object-Oriented Design: Booch Methodology -Object Modeling Technique -Use Case driven approach Responsibility driven design (2 hours) Module 8: Unified Modeling Language (UML): Class diagram -Object diagram -Sequence diagram -Use case diagram Colloboration diagram - Statechart diagram -Activity diagram - Component diagram -Deployment Diagram (5 hours) Module 9 : Reuse Mechanisms: Analysis patterns - Design patterns - Coding patterns - Architecture Patterns Metapatterns (5 hours) Module 10 : Object-Oriented Software Testing: Fundamentals of software testing - Class testing - Integration testing - Use case scenario testing - Inheritance - Regression testing - Stress testing (5 hours) Module 11: OO Software LifeCycle and OO metrics Fountain Model -Chidamber & Kemherer Metrics (3 hours) Section 3: Advanced Topics Module 12 : Distributed Objects: Fundamentals of distributed systems - Middleware - Common Object Request Broker Architecture (CORBA), Enterprise Java Beans (EJB) Architecture - .NET Common Language Runtime (6 hours) Module 13 : Distributed OO Programming Languages: Distributed shared object -Linda - Orca - Charm++ - Concurrent Eiffel (4 hours) Module 14: Frameworks: Framework Cookbooks – Model – View - Controller (MVC) framework Patterns related to MVC - Taligent framework ( 4 hours) Module 15: Object-Oriented Operating Systems: Kernel structuring using OO concepts - MUSE operating system Reflection (3 hours) Module 16: Miscellaneous Topics Aspect Oriented Programming (AOP), Subject Oriented Programming (SOP), .Object role modeling, Object - Oriented databases (4 hours) References: 1. Object Oriented Programming - An Evolutionary Approach by Brad. J. Cox 2. The Object Primer -The Application Developer's Guide to Object Orientation and the UML by Scott Ambler 3. Object-Oriented Software Construction by Bertrand Meyer 4. Object Oriented Design with Applications by Grady Booch 5. Object-Oriented Modeling and Design by J. Rambaugh et.al. 6. Design Patterns for Object-Oriented Software Development by Wolfgang Pree 7. Design Patterns - Elements of Reusable Object - Oriented Software by E. Gamma et.al. 8. Unified Modeling Language Reference Manual by James Rambaugh et.al. 9. Theory of Objects by Luca Cardelli and Martin Abadi 10. Introduction to Object Oriented Databases by W. Kim 11. Annotated C++ Reference Manual by M.Ellis and B. Stroustrup Microprocessors and Microcontrollers Faculty Coordinator: Prof. Krishna Kumar Department of Compute r Science and Engineering Indian Institut e of Science, Bangalore Bangalore, 560012, Karnataka, India Email :mkkumar@cedt.iisc.ernet.in Telephone : (91-8 0) 236 0810 ext-222 (Office) Module 1: Architecture of Microprocessors (6) General definitions of mini computers, microprocessors, micro controllers and digital signal processors. Overview of 8085 microprocessor. Overview of 8086 microprocessor. Signals and pins of 8086 microprocessor Module 2: Assembly language of 8086 (6) Description of Instructions. Assembly directives. Assembly software programs with algorithms Module 3: Interfacing Interfacing Interfacing Interfacing with 8086 (8) with RAMs, ROMs along with the explanation of timing diagrams. with peripheral ICs like 8255, 8254, 8279, 8259, 8259 etc. with key boards, LEDs, LCDs, ADCs, and DACs etc. Module 4: Coprocessor 8087 (4) Architecture of 8087, interfacing programming with 8086. Data types, instructions and Module 5: Architecture of Micro controllers (4) Overview of the architecture of 8051 microcontroller. Overview of the architecture of 8096 16 bit microcontroller. Module 6: Assembly language of 8051 (4) Description of Instructions. Assembly directives. Assembly software programs with Algorithms. Module 7: Interfacing with 8051 (5) Interfacing with keyboards, LEDs, 7 segment LEDs, LCDs, Interfacing with ADCs. Interfacing with DACs, etc. Module 8: High end processors (2) Introduction to 80386 and 80486 Course 1. Introduction to Problem Solving and Programming (Web Course) Faculty Coordinator(s) : 1. Prof. S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology, Delhi Hauz Khas New Delhi -110 016 E-Mail: sak@cse.iitd.ernet.in Telephone : (91-11) Off : Res : 26591287 26591601, 26512415 Detailed Syllabus : Course objective To introduce students to the foundations of computing, programming and problem-solving. Also to develop basic programming skills necessary for engineering education. Prerequisites: No pre-requisites required, suitable also for those with school level programming skills. Course contents Design of algorithms; Iterative versus recursive style; problem solving using a functional style; correctness issues in programming; efficiency issues in programming; time and space measures; Imperative style of programming; assertions and loop invariants; programming in an imperative language using advanced features: procedures, functions, list handling using references; file handling; objects and classes. Lecture outline with topics (and no. of hours) 1.Basic model of computation, Notion of Algorithms, Principle of Mathematical Induction (4) 2. Basics of functional programming, notion of types (3) 3. Iterative versus recursive style (4) 4. Correctness and efficiency issues in programming, time and space measures (7) 5. Basics of imperative style programming (3) 6. Assertions and loop invariants (5) 7. Top down design and examples of step-wise refinement (5) 8. Programming using structures, introduction to encapsulation and object oriented programming (10) Brief description of laboratory activities 1. Simple exercises and examples to introduce to student to the computing environment and usage of computers 2. Simple exercises and examples of functional programming 3. Examples of program correctness and experimental verification of efficiency and scaling. 4. Simple imperative programming 5. A moderate size example of top down design, step-wise refinement and rapid prototyping to develop an imprative style modular program with structures. Suggested texts and reference materials 1. Subhashis Banerjee, S. Arun-Kumar, D. Dubhashi: Introduction to Computer Science. Manuscript. 2. Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Sussman with Julie Sussman, MIT Press, 1985. 3. How to solve it by Computer by R. J. Dromey, Prentice-Hall India EEE Series. Operating Systems (Web Course) Faculty Coordinator Prof. P. C. P. Bhatt Department of Computer Science and Engineering Indian Institute of Science Bangalore Bangalore, 560012, Karnataka, India Email : Telephone : (91-80) (Office) Aim: On completing this course the students should have acquired the following capabilities: 1. An appreciation of the role of an operating system. 2. Become aware of the issues in the management of resources like processor, memory and input-output. 3. Should be able to select appropriate productivity enhancing tools or utilities for specific needs like filters or version control. 4. Obtain some insight into the design of an operating system. Module 1: Introduction to OS (3) Operating systems: Application scenarios, kind of resource support needed by applications, what is an “Operating System” and what support is provided to run an application, hardware and software layers, organization of a computer system, operational view of a computing system with resources like processor, memory, input and output, issues in resource management, a bare-bone operating system, introduction to the issues in communication with devices, kernel and shell of an operating system, processes and file Module 2: File Systems and Management (4.5) File systems: What is a file, user view of files, file types and file operations, file types in Unix and Microsoft, file operation commands, file access rights, file storage management, Inode or FAT structure, file control blocks, root file system, directory and file paths, blocks, impact of block size selection, contiguous allocation, chained and indexed allocations, Impact of allocation policy on fragmentation, mapping file blocks on the disk platter, cylinder, disk access control and scheduling Module 3: Process Management (6) Processor resource management: Explanation of processor as a resource, definition of a process, processor utilization, multi-processing and time sharing, response time, process state, process state transitions, process scheduling, short-term and long term schedules, nonpre-emptive and pre-emptive scheduling policies, time slice, policies like FCFS, SJF etc. Gantt charts and parameters to compare policy performance, context switching of process state information. Kernel architecture: User and kernel mode of operation, System calls, process states, kernel operations, design of a scheduler. Module 4: Memory Management (6) Motivation for memory management, when and where primary and secondary memory management is needed, compiled code and memory relocation, linking and loading, processes and primary memory management, memory allocation policies, critique of various policies like first fit, best fit, internal and external fragmentation, secondary memory management, fixed and variable partitions, virtual memory concept, paging and page replacement policies, page faults, thrashing, hardware support for paging, segmentation, segmentation with paging Module 5: Input Output Management (4.5) Issues in human centric, device centric and computer centric IO management, input output modes, programmed IO, polling, interrupt mode of IO, various types of interrupts, interrupt servicing, priority interrupts, interrupt vectors, direct memory access (DMA) mode of transfer, setting up DMAs, device drivers, interrupt handling using device drivers, buffer management, device scheduling, disk scheduling algorithms and policies. Module 6: Resource Sharing and Management (3) Shared resources, resource allocation and scheduling, resource graph models, deadlocks, deadlock detection, deadlock avoidance, deadlock prevention algorithms, mutual exclusion, semaphores, wait and signal procedures. Module 7: Interprocess communication (3) Spawning a new process, parent and child processes, assigning a task to child processes, need for communication between processes, modes of communication, pipes, shared files, shared memory, message based IPC, signals as IPC, the distribute computing environment. Module 8: Real time Systems and Microkernels (3) Characteristics of real-time operating systems, classification of real-time systems, architectures of real-time systems, micro-kernels, scheduling in RTOS, rate monotonic scheduling, priority inversion, RTOS for hand-held devices. Module 9: OS and Security (3) Security breaches, types of attacks, attack prevention methods, security policy and access control, OS design considerations for security, access, policy and access control, OS design considerations for security, access control lists and OS support, internet and general network security. Module 10: OS primer (1.5) Basic file creation, editing and storage, accessing and organizing files, editor tools and file management operations. Module 11: Search, sort tools (1.5) Basic string search commands, find commands, commands to sort with their options. Module 12: AWK tool (1.5) AWK tool, AWK syntax, AWK grammar, examples for processing. Module 13: Shell scripts (1.5) Productivity tools, different shells, shell scripts Module 15: Make tool (1.5) When to use Make, how to use Make, macros abstractions and shortcuts. Module 16: Other useful tool (1.5) Tar and other utilities, file compression tools, image and multi-media file formats, profiling tools. Module 17: Version control tool (1.5) Need for version control, sccs, cvs and other version control tools. Module 18: Window metaphor and GUI (1.5) Need for a desktop metaphor, window systems and associated controls, graphical interface (GUI), Module 19: System administration (1.5) Administration tasks, user account management, start and shutdown procedures, setting up operational environment for a new user. Course 33. Software Engineering (Web Course) Faculty Coordinator(s) : 1. Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Kharagpur, 721302, INDIA E-Mail: rajib@cse.iitkgp.ernet.in Telephone : (91-3222) Off : Res : 283482 283483, 277824 Detailed Syllabus : Introduction What is Software Engineering. Software Development Life-cycle Requirements analysis, software design, coding, testing, maintenance, etc. Software Requirements Specification Waterfall model, prototyping, interactive enhancement, spiral model. Role of Management in software development. Role of metrics and measurement. Software Requirement Specification Problem analysis, requirement specification, validation, metrics, monitoring and control. System Design Problem partitioning, abstraction, top-down and bottom-up design, Structured approach. Functional versus object-oriented approach, design specification and verification metrics, monitoring and control. Coding Top-down and bottom-up, structured programming, information hiding, programming style, and internal documentation. Verification, Metrics, monitoring and control. Testing Levels of testing functional testing, structural testing, test plane, test cases specification, reliability assessment. Software Project Management Cost estimation, Project scheduling, Staffing, Software configuration management, Quality assurance, Project Monitoring, Risk management, etc. Course 15. Theory of Automata and Formal Languages (Web Course) Faculty Coordinator(s) : 1. Prof. Diganta Goswami Department of Computer Science and Engineering Indian Institute of Technology, Guwahati North Guwahati, Guwahati 781039 Assam, India E-Mail: dgoswami@iitg.ernet.in Telephone : (91-361) Off : Res : 2690321-8 Extn: 2355 2691143, 2584355 Detailed Syllabus : Module 1 (2 Lectures) Module 2 (3 Lectures) Module 3 (3 Lectures) Module 4 (3 Lectures) Module 5 (3 Lectures) Theory of Automata and Formal Languages Introduction; alphabets, Strings and Languages; automata and Grammars Finite automata (FA) -its behavior; DFA -Formal definition, simplified notations (state transition diagram, transition table), Language of a DFA. NFA -Formal definition, Language of an NFA, Removing, epsilontransitions. Equivalence of DFAs and NFAs Regular expressions (RE) -Definition, FA and RE, RE to FA, FA to RE, algebraic laws for RE, applications of REs. Regular grammars and FA, FA for regular grammar, Regular grammar for FA Proving languages to be non-regular -Pumping Lenma, applications. Some closure properties of Regular languages -Closure under Boolean operations, reversal, homomorphism, inverse homomorphism, etc. M hill-Nerode theorem DFA Minimization Some decision properties of Regular languages -emptiness, finiteness, membership, equivalence of two DF As or REs, etc. Twoway finite automata, Finite automata with output Module 6 (3 Lectures) Context-free Grammars (CFGs) -Formal definition, sentential forms, leftmost and rightmost derivations,, the language of a CFG. Derivation tree or Parse tree -Definition, Relationship between parse trees and derivations. Parsing and ambiguity, Ambiguity in grammars and Languages Module 7 (3 Lectures) Pushdown Automata (PDA) -Formal definition, behavior and graphical notation, Instantaneous descriptions (Ids), The language of PDA (acceptance by final state and empty stack). Equivalence of acceptance by final state and empty stack, Equivalence of PDAs and CFGs, CFG to PDA, PDA to CFG. Module 8 (3 Lectures) DPDAs -Definition, DPDAs and Regular Languages, DPDAs Module 9 (3 Lectures) Module 10 (4 Lectures) and CFLs. Languages of DPDAs, DPDAs, and ambiguous grammars. Simplification of CFGs -Removing useless symbols, epsilonProductions, and unit productions, Normal forms -CNF and GNF Proving that some languages are not context free -Pumping lemma for CFLs, applications. Some closure properties of CFLs -Closure under union, concatenation, Kleene closure, substitution, homomorphism, reversal, intersection with regular set, etc. Some more decision properties of CFLs, Review of some undecidable CFL problems. Module 11 (6 Lectures) Turing Machines TM -Formal definition and behavior, Transition diagrams, Language of a TM, TM as accepters and deciders. TM as a computer of integer functions Programming techniques for TMs -Storage in state, multiple tracks, Module 12 (2 Lectures) subroutines, etc. Variants of TMs -Multitape TMs, Nondeterministic TMs. TMs with semi-infinite tapes, multistack machines. Equivalence of the various variants with the basic model Recursive and recursively enumerable languages, Some properties of recursive and recursively enumerable languages, Codes for TMs. A language that is not recursively enumerable (the diagonalization language). The universal language, Undecidability of the universal language, The Halting problem, Undecidable problems about TMs. Module 13 (2 Lectures) Post's Correspondence Problem (PCP) -Definition, Undecidability of Module 14 (2 Lectures) PCP. Other undecidability problems e.g. some problems related to CFLs Context sensitive language and linear bounded automata. Chomsky hierarchy Course 7. System Analysis and Design (Web Course) Faculty Coordinator(s) : 1. Prof. V. Rajaraman Department of Computer Science and Engineering Indian Institute of Science, Bangalore Bangalore - 560 012 Karnataka Email : rajaram@cadl.iisc.ernet.in or rajaram@serc.iisc.ernet.in Telephone : (91-80) Off : Fax : 3600805, 3600811 3602648 Detailed Syllabus : Module 1 Data and Information – Types of information: operational, tactical, strategic and statutory – why do we need information systems – management structure – requirements of information at different levels of management – functional allocation of management – requirements of information for various functions – qualities of information – small case study ( 3 lectures) Module 2 Systems Analysis and Design Life Cycle: Requirements determination – requirements specifications – feasibility analysis – final specifications – hardware and software study – system design – system implementation – system evaluation – system modification. Role of systems analyst – attributes of a systems analyst – tools used in system analysis ( 3 lectures) Module 3 Information gathering – strategies – methods – case study – documenting study – system requirements specification – from narratives of requirements to classification of requirements as strategic, tactical, operational and statutory. Example case study (3 lectures) Module 4 Feasibility analysis – deciding project goals – examining alternative solutions – cost – benefit analysis – quantifications of costs and benefits – payback period – system proposal preparation for managements – parts and documentation of a proposal – tools for prototype creation (3 lectures) Module 5 Tools for systems analysts – data flow diagrams – case study for use of DFD, good conventions – leveling of DFDs – leveling rules – logical and physical DFDs – software tools to create DFDs (3 lectures). Module 6 Structured systems analysis and design – procedure specifications in structured English – examples and cases – decision tables for complex logical specifications – specification oriented design vs procedure oriented design ( 3 lectures) Module 7 Data oriented systems design – entity relationship model – E-R diagrams – relationships cardinality and participation – normalizing relations – various normal forms and their need – some examples of relational data base design. (3 lectures) Module 8 Data input methods – coding techniques – requirements of coding schemes – error detection of codes – validating input data – input data controls interactive data input (3 lectures) Module 9 Designing outputs – output devices – designing output reports – screen design – graphical user interfaces – interactive I/O on terminals. (2 lectures) Module 10 Object oriented systems modeling – what are objects? – why objects? – objects and their properties – classes – inheritance – polymorphism – how to identify objects in an application – how to model systems using objects – some cases of object oriented system modeling (4 lectures) Module 11 Control – audit and security of information systems – why controls are needed – objectives of control – techniques used in control – auditing information systems – auditing around, through and with the computer – testing information systems – types of tests – how to generate tests – security of information systems – disaster recovery – business process continuity (4 lectures). Module 12 Systems analysis and design in the era of electronic commerce – B2B, B2C and C2C ecommerce – advantages and disadvantages of e-commerce. E-commerce system architecture – physical networks, logical network, world wide web, web-services – html, XML. (3 lectures) Module 13 Electronic data interchange – EDI standards – virtual private networks – XML and EDI. ( 2 lectures). Module 14 Security of e-commerce transactions, firewalls – encryption methods – symmetric and asymmetric encryption – digital signature – certifying authorities for signatures – legal status of e-commerce transactions ( 3 lectures) Module 15 Payment systems in e-commerce – cheque payment, credit card payments, e-cash payments. (2lectures). Module 16 Complete system analysis and design case studies – a system for journal acquisition in libraries – walk through the entire life cycle (5 lectures) Course 25. Computer Graphics (Web Course) Faculty Coordinator(s) : 1. Prof.Prem K. Kalra Department of Computer Science and Engineering Indian Institute of Technology, Delhi Hauz Khas New Delhi -110 016 E-Mail: pkalra@cse.iitd.ernet.in Telephone : (91-11) Off : Res : 2659 1295 2659 1553, 26528046 Detailed Syllabus : Course objective To introduce students to the basics of computer graphics. Prerequisites: Basic programming, Data structures and Basics of linear algebra and matrices. Course contents Graphics display devices, Input devices, Rendering pipeline, Raster Graphics: Line and Circle drawing algorithms, Windowing, Clipping: Cohen and Sutherland line clipping, Cyrus-beck clipping method, 2D and 3D Geometrical Transformations, Viewing Transformations: parallel and perspective projection, Curves and Surfaces: Cubic splines, Bezier curves, B-splines, Tensor product surfaces, Surface of revolution Sweep surfaces, Fractal curves and surfaces, Hidden line/surface removal methods, Illumination model, Polygon Shading: Gouraud, Phong, Introduction to Ray-tracing, Animation. Lecture Outline with topics (and no. of hours) 1. Graphics display devices, Input devices, Rendering pipeline (3) 2. Raster graphics, windowing and clipping (6) 3. Transformations (5) 4. Curves and surfaces (7) 5. Hidden surface elimination (6) 6. Illumination and Shading Models (4) 7. Introduction to Ray-tracing (4) 8. Animation (5) Brief description of laboratory activities 1. Implementation of viewing/rendering pipeline 2. Hierarchical modeling using transformations 3. Basic ray tracing 1. Programming practices with standard graphics libraries like open GL. Suggested texts and reference materials 1. 2. 3. 4. 5. 6. Computer Graphics (Principles and Practice) by Foley, van Dam, Feiner and Hughes, Addisen Wesley (Indian Edition). Computer Graphics by D Hearn and P M Baker, Printice Hall of India (Indian Edition). Mathematical Elements for Computer Graphics by D F Rogers, McGraw Hill (Indian Edition). Procedural Elements for Computer Graphics by D F Rogers, McGraw Hill (Indian Edition). Interactive Computer Graphics, A top-down approach with OpenGL by Edward Angele, Addisen Wesley. Curves and Surfaces for Computer Aided Geometric Design by G Farin, Academic Press. Course 13. Data Structures and Program Methodology (Web Course) Faculty Coordinator(s) : 1. Prof. S. V. Rao Department of Computer Science and Engineering Indian Institute of Technology, Guwahati North Guwahati, Guwahati 781039 Assam, India E-Mail: svrao@iitg.ernet.in Telephone : (91-361) Off : Res : 2. 2690321-8 Extn: 2353 2690984, 2584358 Prof.Pradip. K. Das Department of Computer Science and Engineering Indian Institute of Technology, Guwahati North Guwahati, Guwahati 781039 Assam, India E-Mail: pkdas@iitg.ernet.in Telephone : (91-361) Off : Res : 2690321-8 Extn: 2353 2690979, 2584353 Detailed Syllabus : 1. 2. 3. 4. 5. 6. Introduction to Data Structures Arrays and Strings Introduction to Algorithms • Algorithm Development • Complexity analysis • Recursion Linear Data Structures • Stacks: Operations and Applications • Queues: Operations and Applications • Circular Queues: Operations and Applications Links Lists • Operation – Creations, insertion, Deletion • Circular Lists • Doubly Linked List Sorting • Insertion Sort • Merge Sort • Quick Sort Searching • Binary Search • Selection Classes: 1 Classes: 3 Classes: 3 Classes: 3 Classes: 3 Classes: 3 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Graphs I: Representation and Traversal • Representation: Matrix, Adjacency list • Traversal: Depth First Search, Breadth First Search Graphs II: Basic Algorithms • Minimum Spanning Tree • Shortest Path • All pairs Shortest Path, Transitive Closer Binary Trees • Representation • Operations: Insert, Delete • Traversal: Preorder, Inorder, Postorder Heap Sort • Method and Complexity • Priority Queue Search Trees • AVI-trees • B-tree • External Search Tables • Hashing Techniques Sets • Representation • Operations: Union and Find String Algorithms • Pattern Matching • Text Editor Program Development • Program Specification • Pre and post Condition • Program Documentations Program Testing and Verification • Testing Methods • Verification Procedures Total number of classes: 42 Classes: 2 Classes: 4 Classes: 3 Classes: 2 Classes: 5 Classes: 1 Classes: 2 Classes: 3 Classes: 2 Classes: 2