Computer Science and Engineering

advertisement
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
Download