Department of Computer Science & Engineering: 3 Credits (0-0-6) 4 Credits (3-1-0)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

CSP601 Software Systems laboratory 3 credits (0-0-6)


A set of four project oriented assignments which will be announced at the start of each semester with definite submission deadlines. The set of assignments will be designed to develop skills and familiarity with a majority of the following: make, configuration management tools, installation of software, archiving and creation of libraries, version control systems, documentation and literate programming systems (noweb and LaTeX), lex, yacc, perl and other scripting languages, sockets and RPCs, usage of standard libraries like pthreads, numerical packages, XML and semistructured data, simulation environments, testing and validation tools. management including virtual memory and paging techniques; i/o architecture and device management; file systems; distributed file systems; Case studies of Unix, Windows NT. Design and implementation of small operating systems.

CSL705 Mathematical Foundations of Computer Science 4 credits (3-1-0)


Regular Languages, Finite Automata, equivalence, minimization, MyhillNerode Theorem, introduction to nondeterminism, Context free grammars, Pushdown automata, equivalence and applications. Turing machines, Recursive and Recursively enumerable sets, non-determinism, RAMs and equivalence, Universal Turing Machines, undecidability, Rices theorems for RE sets, Post machines, Basics of Recursive function theory. Equivalence, Churchs thesis, computational complexity, space and time complexity of Turing Machines, Relationships, Savages theorem, Complexity classes, Complete problems, NP-completeness, CookLevin theorem.

CSL665 Introduction to Logic and Functional Programming 4 credits (3-0-2)


Introduction to declarative programming paradigms. The functional style of programming, paradigms of development of functional programs, use of higher order functionals and pattern-matching. Types, type-checking and their relationship to logic. Logic as a system for declarative programming. The use of pattern-matching and programming of higher order functions within a logic programming framework. Introduction to symbolic processing. The use of resolution and theorem-proving techniques in logic programming. The relationship between logic programming and functional programming. Laboratory exercises will focus on the following: unification, resolution, theorem proving, pattern matching and type inferencing.

CSL630 Data Structures and Algorithms 4 credits (3-0-2)


Review of basic data structures and their realization in object oriented environment. The following topics will be covered with emphasis on formal analysis and design. Dynamic Data structures: 2-3 trees, Red-black trees, binary heaps, binomial and Fibonacci heaps, Skip lists, universal hashing. Data structures for maintaining ranges, intervals and disjoint sets with applications. Basic algorithmic techniques like dynamic programming and divide-and-conquer. Sor ting algorithms with analysis, integer sorting, selection. Graph algorithms like DFS with applications, MSTs and shortest paths.

CSL718 Architecture of High Performance Computer Systems 4 credits (3-0-2)


Classification of parallel computing structures; Instruction level parallelism static and dynamic pipelining, improving branch performance, superscalar and VLIW processors; High performance memory system; Shared memory multiprocessors and cache coherence; Multiprocessor interconnection networks; Performance modelling; Issues in programming multiprocessors; Data parallel architectures.

CSL671 Artificial Intelligence 4 credits (3-0-2)


Problem solving, search techniques, control strategies, game playing (minimax), reasoning, knowledge representation through predicate logic, rule based systems, semantics nets, frames, conceptual dependency. Planning. Handling uncertainty: probability theory, Bayesian Networks, Dempster-Shafer theory, Fuzzy logic, Learning through Neural nets - Back propagation, radial basis functions, Neural computational models - Hopfield Nets, Boltzman machines. PROLOG programming. Expert Systems.

CSL632 Introduction to Data Base Systems 4 credits (3-0-2)


Evolution and architecture of DB systems, DB models. The relational DB model, operations on the relational model. The database language SQL, constraints and triggers in SQL, system aspects of SQL. Object-oriented query languages. XML databases.

CSL719 Synthesis of Digital Systems 4 credits (3-0-2)


Hardware description languages; RT level, gate level and system level modeling; Synthesis of control and data paths; Behavioral Synthesis; Logic Synthesis; State assignment problem; PLA realization; Microprogrammed control realization; Technology mapping; FPGA technology mapping; Low power issues.

CSL672 Computer Networks 4 credits (3-0-2)


Networks, goals, applications, classification, layered architecture. Open system interconnection model. Statistical multiplexing; Point to point and broadcast communications, multi access protocols: Aloha, CSMA and its variations, Token Ring; Error Control techniques; Flow control; Data link layer protocols; Bridges, Repeaters, switches and the spanning tree protocol. Routing, Congestion control, Internet protocols; Multicast Routing and reliable Multicast. Mobile IP. Laboratory exercises will focus on the students ability to use these protocols in practical systems.

CSL633 Resource Management in Computer Systems 4 credits (3-0-2)


Overview: functions of Operating systems, layered architecture; basic concept; interrupt architecture, system calls and notion of a process and threads; synchronization and protection issues; scheduling; memory management including virtual memory

CSL728 Compiler Design 4.5 credits (3-0-3)


Compilers and translators; lexical and syntactic analysis, top-down and bottom up parsing techniques, internal form of source programs; semantic analysis, symbol tables, error detection and recover y, code generation and optimization. Type checking and static analysis. Algorithms and implementation

79

Computer Science & Engineering

techniques for type-checking, codegeneration and optimization. Students will design and implement translators, static analysis, type checking, and optimization.

CSL740 Software Engineering 4 credits (3-0-2)


Concepts and techniques relevant to production of large software systems: Structured programming. Requirements specification and analysis. Top-down design and development. Information hiding, abstraction, modularity, objectoriented techniques. Separate compilation, configuration management, program libraries. Design patterns; UML. Documentation. Validation. Quality assurance, safety. Testing and test case generation. Software metrics. Cost analysis and estimation, manpower and time management. Organization and management of large software design projects.

as nuSMV). Possible additional topics include: equational logic frameworks, real-time frameworks, reactive frameworks, pi-calculus (exercises using tools such as the Mobility Workbench), Tree automata and Weak Second-order Logic with k successors (WSkS), (exercises using Mona or similar tools).

libraries like open GL.

CSL783 Digital Image Analysis 4.5 credits (3-0-3)


Digital Image Fundamentals; Image Enhancement in Spatial Domain: Gray Level Transformation, Histogram Processing, Spatial Filters; Image Transforms: Fourier Transform and their properties, Fast Fourier Transform, Other Transforms; Image Enhancement in Frequency Domain; Color Image Processing; Image Warping and Restoration; Image Compression; Image Segmentation: edge detection, Hough transform, region based segmentation; Morphological operators; Representation and Description; Features based matching and Bayes classification; Introduction to some computer vision techniques: Imaging geometry, shape from shading, optical flow; Laboratory exercises will emphasize development and evaluation of image processing methods.

CSL758 Advanced Algorithms 3 credits (3-0-0)


Topics from some or all of the following areas: Advanced data structures: selfadjustment, persistence and multidimensional trees. Randomized algorithms: Use of probabilistic inequalities in analysis, applications using examples. Geometric algorithms: Point location, Convex hulls and Voronoi diagrams, Arrangements. Graph algorithms: Matching and Flows. Approximation algorithms: Use of Linear programming and primal dual, Local search heuristics. Parallel algorithms: Basic techniques for sorting, searching, merging, list ranking in PRAMs and Interconnection networks.

CSD745 Minor Project 4 credits (0-1-6)


Research and development projects based on problems of practical and theoretical interest. Evaluation will be based on periodic presentations, student seminars, written reports, and evaluation of the developed system (if applicable).

CSS799 Independent Study 3 credits (0-3-0)


Research oriented activities or study of advanced subjects outside regular course offerings under the guidance of a faculty member. Prior to registration, a detailed plan of work should be submitted by the student, in concurrence with a faculty guide, to the Head of the Department for approval.

CSL750 Foundations of Automatic Verification 4 credits (3-0-2)


A selection from the following topics, and experiments with the mentioned tools: Review of first-order logic, syntax and semantics. Resolution theorem proving. Binary Decision Diagrams (BDDs) and their use in representing systems. (Programming exercises coding and using logic programming frameworks). Transition systems, automata and transducers. Buechi and other automata on infinite words; Linear Time Temporal Logic (LTL), and specifying properties of systems in LTL; the relationship between temporal logic and automata on infinite words, LTL Model checking (exercises using Spin or similar tools); Computational Tree Logic (CTL and CTL*); CTL model checking; Process calculi such as CSP and CCS. Notions of program equivalence traces, bisimulation and other notions. Hennessy-Milner Logic (HML) and Mu calculus (exercises using tools such as CWB Concurrency Work Bench). Symbolic model checking, exercises using tools such as SMV. SAT-based model checking and Davis-Putnam procedure; (exercises using tools such

CSL771 Data Base Implementation 4 credits (3-0-2)


Basic file organization techniques, indexing, hashing, index structures for multiple dimensions, algorithms for database operations. Query optimization. Recovery techniques, concurrency control models and algorithms. Information integration.

CSL812 System Level Design and Modelling 3 credits (3-0-0)


Embedded systems and system-level design, models of computation, specification languages, hardware/ software co-design, system partitioning, application specific processors and memory, low power design.

CSL781 Computer Graphics 4.5 credits (3-0-3)


Graphics pipeline; Graphics hardware: Display devices, Input devices; Raster Graphics: line and circle drawing algorithms; Windowing and 2D/3D clipping: Cohen and Sutherland line clipping, Cyrus beck clipping method; 2D and 3D Geometrical Transformations: scaling, translation, rotation, reflection; Viewing Transformations: parallel and perspective projection; Curves and Surfaces: cubic splines, Bezier curves, B-splines, Parametric surfaces, Surface of revolution, Sweep surfaces, Fractal curves and surfaces; Hidden line/surface removal methods; illuminations model; shading: Gouraud, Phong; Introduction to Ray-tracing; Animation; Programming practices with standard graphics

CSL821 Reconfigurable Computing 3 credits (3-0-0)


FPGA architectures and CAD for FPGAs over view, LUT mapping, timing analysis, placement and routing. Reconfigurable devices-from finegrained to coarse-grained devices, Reconfiguration modes and multicontext devices, Dynamic reconfiguration, Compilation from high level languages, System level design for reconfigurable systems; heuristic temporal partitioning and ILP-based temporal partitioning. Behavioral synthesis, Reconfigurable example systems tool chains.

80

Computer Science & Engineering

CSL830 Distributed Computing 3 credits (3-0-0)


Models of Distributed Computing; Basic Issues: Causality, Exclusion, Fairness, Independence, Consistency; Synchrony and Asynchrony, Specification of Distributed Systems: Transition systems, Petri nets, process algebra. Properties: Safety, Liveness, stability. Faulttolerance, Fundamental problems of agreement.

asynchronous networks: leader election, breadth first search, shortest path, minimum spanning tree etc.; advanced synchronous algorithms: distributed consensus with failures, commit protocols; asynchronous shared memory algorithms: mutual exclusion and consensus; relationship between shared memory and network models; asynchronous networks with failures.

for some fundamental problems Reductions and completeness, Randomized complexity classes, Boolean circuit complexity. Cryptography and one-way functions. Polynomial hierarchy, P-space completeness. Interactive proofs and Hardness of approximation, Parallel complexity classes.

CSL831 Semantics of Programming Languages 3 credits (3-0-0)


Study of operational, axiomatic and denotational semantics of procedural languages; semantics issues in the design of functional and logic programming languages, study of abstract data types.

CSL851 Algorithmic Graph Theory 3 credits (3-0-0)


Introduction to graphs. Max-flow Min-cut theorem. Algorithms for computing maximum s-t flows in graphs. Min-cost flows and minimum cuts in a graph. Edge and vertex connectivity of graphs and mengers theorem. Maximum matching, Halls theorem, algorithms for computing maximum matching in weighted and unweighted graphs. Arborescences and algorithm for computing minimum arboresecnce. Edmonds theorem for disjoint arborescences. Planar graphs and algorithms for checking planarity. Edge and vertex coloring of graphs. Independent sets and perfect graphs. Extremal graph theory.

CSL854 Approximation Algorithms 3 credits (3-0-0)


NP-hardness and approximation algorithms. Different kinds of approximability. Linear programming and Duality. Randomized Rounding. Covering and packing problems. Facility location, machine scheduling and bin packing. Primal dual approximation algorithms in graph connectivity and Network design. Multi-commodity flows and cuts. Graph embeddings and their application to sparsest cuts, separators and bandwidth minimization. Feedback arc sets and Linear ordering problems. Shop scheduling: Open, flow and job shop. Semi definite programming and applications to max-cut, graph coloring. Concept of best possible approximation algorithms, Hardness of approximations.

CSL832 Proofs and Types 3 credits (3-0-0)


Syntax and semantic foundations: Ranked algebras, homomorphisms, initial algebras, congruences. First-order logic review: Soundness, completeness, compactness. Herbrand models and Herbrands theorem, Horn-clauses and resolution. Natural deduction and the Sequent calculus. Normalization and cut elimination. Lambda-calculus and Combinatory Logic: syntax and operational semantics (beta-eta equivalence), confluence and ChurchRosser property. Introduction to Type theory: The simply-typed lambdacalculus, Intuitionistic type theory. CurryHoward correspondence. Polymor phism, algorithms for polymorphic type inference, Girard and Reynolds System F. Applications: typesystems for programming languages; modules and functors; theorem proving, executable specifications.

CSL852 Computational Geometry 4 credits (3-0-2)


Visibility problems and triangulation Line sweep and angle sweep: segment intersection, area, perimeter, diameter, width Planar Point location: Kirkpatricks hierarchy, Persistent data structure Multidimensional data structures: Segment trees, range trees, orthogonal range searching, Convex hulls and Voronoi diagrams: 2d, 3d hulls, 2d Voronoi diagrams, dynamic maintenance, Duality between hulls and Voronoi diagrams, Duality between lines and points, higher order Voronoi diagrams Arrangements : Construction and bounds, k-sets, Zone theorem Algebraic lower bounds: Linear Decision model Ben-Ors theorem Randomized algorithms: Random sampling, Incremental construction, Backward analysis Optimization : Monge matrices, Fixed dimensional linear programming, Prune and Search Parametric search: kth intersection, k-th nearest neighbour Recent topics : Instructors choice.

CSL855 Models of Computation 3 credits (3-0-0)


Computing and the notion of an effective procedure. RAM model, Primitive and partial recursive functions, Lambdacalculus, Logic completeness and incompleteness, Decidability and Church-Turing hypothesis. Limitations of the standard model. Coding and Information Theory. Thermodynamics of computation. Quantum computation and quantum algorithms. Physical aspects of computation.

CSL840 Computer Vision 4 credits (3-0-2)


Camera models, Calibration, Multiviews projective geometry and invariants Edge/feature extraction, Correspondence and tracking, 3D structure/motion estimation, Object recognition.

CSL856 Mathematical Programming 4 credits (3-0-2)


Linear Algebra and Complexity. Theory of Lattices and Linear Diophantine Equations. Algorithms for Linear Diophantine Equations. Diophantine Approximation and Basis Reduction. Fundamental Concepts and Results on Polyhedra, Linear Inequalities, and Linear Programming. The Structure of Polyhedra. Polarity, and Blocking and Anti-Blocking Polyhedra. Sizes and the Theoretical Complexity of Linear Inequalities and Linear Programming.The

CSL847 Distributed Algorithms 3 credits (3-0-0)


Models of synchronous and asynchronous distributed computing systems: synchronous networks, asynchronous shared memory, asynchronous networks etc.; basic algorithms for synchronous and

CSL853 Complexity Theory 3 credits (3-0-0)


Turing machines and non-determinism, models of computation like RAM and pointer machines, Relations between complexity classes, time-space tradeoffs

81

Computer Science & Engineering

Simplex Method. Primal-Dual, Elimination, and Relaxation Methods. The Ellipsoid Method. Karmarkars method for linear programming Introduction to Integer Linear Programming. Estimates in Integer Linear Programming and its complexity. Totally Unimodular Matrices: Fundamental Properties and Examples. Integral Polyhedra and Total Dual Integrality. Cutting Planes. Further Methods in Integer Linear Programming.

CSL861 Special Topics in Hardware Systems 3 credits (3-0-0)


Under this topic one of the following areas will be covered : Fault Detection and Diagnosability. Special Architectures. Design Automation Issues. Computer Arithmetic, VLSI.

CSL858 Advanced Computer Networks 4 credits (3-0-2) Prerequisite : Permission of the instructor required. Should have done a course or have knowledge equivalent to CS372N or CSL672.
Flow and Congestion Control: Window and Rate Based Schemes, Decbit, TCP, ATM ABR, hop-by-hop schemes. Quality of Service: in ATM, IETF integrated services model, Differentiated Services Model. Flow Identification, Packet Classifiers and Filters. Scheduling. Network Management: ASN, SNMP, CMIP. Issues in the management of large networks. Multicast: IGMP, PIM, DVMRP. Mobility: IP.

CSL862 Special Topics in Software Systems 3 credits (3-0-0)


Under this topic one of the following areas will be covered: Design, Implementation and issues of Semantics of Programming Languages. Distributed Programming and Operating Systems.

the following advanced topics in the area of high speed integrated networks. Traffic management, flow control, advisory control, signaling and quality of service issues. Routing, SOS Routing, Routing in VPS mobility, stability. Wireless Networks: Issues in wireless networks, third generation wireless systems, Media access control issues, mobility, WAP. Network Management & Performance Analysis techniques. Security issues in modern computer networks. Multimedia communication.

CSL868 Special Topics in Database Systems 3 credits (3-0-0)


The contents would include specific advanced topics in Database Management Systems in which research is currently going on in the department. These would be announced every time the course is offered.

CSL863 Special Topics in Theoretical Computer Science 3 credits (3-0-0)


Under this topic one of the following areas will be covered: Design and Analysis of Sequential and Parallel Algorithms. Complexity issues, Trends in Computer Science Logic, Quantum Computing and Bioinformatics, Theory of computability. Formal Languages. Semantics and Verification issues.

CSL869 Special Topics in Concurrency 3 credits (3-0-0) Prerequisite: Permission of the instructor required.
The course will focus on research issues in concurrent, distributed and mobile computations. Some of the following topics will be covered. Models of Concurrent, Distributed and Mobile computation. Process calculi, Event Structures, Petri Nets and labeled transition systems. Implementations of concurrent and mobile, distributed programming languages. Logics and specification models for concurrent and mobile systems. Verification techniques and algorithms for model-checking. Type systems for concurrent/mobile programming languages. Applications of the above models and techniques.

CSL859 Advanced Computer Graphics 4 credits (3-0-2)


Rendering: Ray tracing, Radiosity methods, Global illumination models, Shadow generation, Mapping, Antialiasing, Volume rendering, Geometrical Modeling: Parametric surfaces, Implicit surfaces, Meshes, Animation: spline driven, quarternions, articulated structures (forward and inverse kinematics), deformation purely geometric, physically-based, Other advanced topics selected from research papers.

CSL864 Special Topics in Artificial Intelligence 3 credits (3-0-0)


Under this topic one of the following areas will be covered: Issues in Expert Systems. Theorem Proving. Natural Language Processing. AI in Speech and Computer Vision. Higher Order Logic Programming, Machine Learning, Advanced Neural Networks.

CSL865 Special Topics in Computer Applications 3 credits (3-0-0)


Under this topic one of the following areas will be covered : Issues in Database Management Systems, Robotics, Computer Networks, Computer Graphics, VLSI Signal Processing. Applications of computing.

CSL860 Special Topics in Parallel Computation 3 credits (3-0-0)


The course will focus on research issues in areas like parallel computation models, parallel algorithms, parallel computer architectures and interconnection network, Shared memory parallel architectures and programming with OpenMP and Pthreads, Distributed memory message-passing parallel architectures and programming, portable parallel message-passing programming using MPI. Design and implementation of parallel numerical and non-numerical algorithms for scientific, engineering and commercial applications. Performance evaluation and benchmarking on highperformance computers.

CSV880 Special Module in Parallel Computation 1 credits (1-0-0)


Special module that focuses on special topics and research problems of importance in the area of Parallel Computation.

CSL866 Special Topics in Algorithms 3 credits (3-0-0)


The course will focus on specialized topics in areas like Computational Topology, Manufacturing processes, Quantum Computing and Computational Biology, Randomized algorithms and other research intensive topics.

CSV881 Special Module in Hardware Systems 1 credits (1-0-0)


Special module that focuses on special topics and research problems of importance in the area of Hardware Systems.

CSL867 Special Topics in High Speed Networks 3 credits (3-0-0) Prerequisite : Permission of the instructor required.
The course will focus on one or more of

CSV882 Special Module in Software Systems 1 credits (1-0-0)


Special module that focuses on special topics and research problems of importance in the area of Software

82

Computer Science & Engineering

Systems.

importance in the area of Algorithms.

CSV883 Special Module in Theoretical Computer Science 1 credits (1-0-0)


Special module that focuses on special topics and research problems of importance in the area of Theoretical Computer Science.

CSV887 Special Module in High Speed Networks 1 credits (1-0-0)


Special module that focuses on special topics and research problems of importance in the area of High Speed Networks.

CSV884 Special Module in Artificial Intelligence 1 credits (1-0-0)


Special module that focuses on special topics and research problems of importance in the area of Artificial Intelligence.

CSV888 Special Module in Database Systems 1 credits (1-0-0)


Special module that focuses on special topics and research problems of importance in the area of Database Systems.

semester long project activity. Problem definition, background research, development of overall project plan (detailed design, milestones, etc.), and meeting the research and development targets set up for the first part. Evaluation will be based on student seminars, written reports, and evaluation of the developed system and/or theories.

CSD894 Major Project - Part 2 12 credits (0-0-24)


Second part of the two semester project. The primary objective is to meet the milestones defined in the first part. Evaluation will be held periodically, and will be based on written reports, oral presentations and demonstration of results. The project will culminate in the production of a thesis by each individual student. Final evaluation will be according to the M.Tech. project evaluation guidelines.

CSV885 Special Module in Computer Applications 1 credits (1-0-0)


Special module that focuses on special topics and research problems of importance in the area of Computer Applications.

CSV889 Special Module in Concurrency 1 credits (1-0-0)


Special module that focuses on special topics and research problems of importance in the area of Concurrency.

CSV886 Special Module in Algorithms 1 credits (1-0-0)


Special module that focuses on special topics and research problems of

CSD893 Major Project Part1 6 credits (0-0-12)


Research and development projects based on problems of practical and theoretical interest. First part of a two

CSD895 Major Project (M.S. Research) 40 credits (0-0-80)

83

You might also like