• No results found

CS 201 DISCRETE MATHEMATICS

In document Courses of Study 2008 (Page 109-112)

CURRENT COURSE STRUCTURE FOR B.TECH STUDENTS COMPUTER SCIENCE & ENGINEERING

CS 201 DISCRETE MATHEMATICS

Notion of proof: proof by counter-example, the contrapositive, proof by contradiction, inductive proofs, Algebra: Motivation of algebraic structures; review of basic group theory with emphasis to finite groups: subgroups and group homomorphism, Lagrange’s theorem. Commutative rings, ideals, Finite fields and their elementary properties. Some CS applications (e.g., RSA, error correcting codes), Combinatorics: Basic counting techniques, pigeon-hole principle, recurrence relations, generating functions, Polya’s counting theorem. Basics of graph theory. Introduction to probabilistic method in combinatorics. Formal logic: Propositional logic: proof system, semantics, completeness, compactness. First order logic: models, proof system, compactness, Examples of formal proofs in, say, number theory or group theory. Some advanced topics. E.g., CS application of logic, introduction to modal and temporal logics, Or, formal number theory including incompleteness theorem.

CS 220 INTRODUCTION TO COMPUTER ORGANIZATION Prereq. ESC 102 Introduction, Overview of basic digital building blocks; truth tables; basic structure of a digital computer, Number representation, Integer -unsigned, signed (sign magnitude, 1’s complement, 2’s complement, r’s complement); Characters-ASCII coding, other coding schemes; Real numbers-fixed and floating point, IEEE754, Assembly language programming for some processor, Basic building blocks for the ALU, Adder, Subtractor, Shifter, Multiplication and division circuits, CPU Subblock, Datapath - ALU, registers, CPU buses; Control path microprogramming (only the idea), hardwired, logic; External interface, Memory Subblock, Memory organization; Technology-ROM, RAM, EPROM, Flash etc. Cache; Cache coherence protocol for uniprocessor (simple), I/O Subblock, I/O techniques -interrupts, polling, DMA; Synchronous vs. Asynchronous I/ O; Controllers, Peripherals, Disk drives; Printers- impact, dot matrix, ink jet, laser; Plotters; Keyboards; Monitors; Advanced Concepts, Pipelining; Introduction to Advanced Processors.

CS 315 PRINCIPLES OF DATA BASE SYSTEMS Prereq. ESC 101, ESO 211 Overview of file organisation techniques: sequential, direct, indexed, hashed, inverted, B-trees, Data models: relational, network, hierarchical, Relational model: algebra, calculus, normal forms. Implementation of query languages, security and protection of data recovery methods, Concurrent operations on data bases, introduction to distributed data base systems, case studies. L-T-P-D-[C] 3-0-0-0-[4] L-T-P-D-[C] 3-0-0-0-[4] L-T-P-D-[C] 3-0-2-0-[4]

CS 330 OPERATING SYSTEMS Prereq. ESC 101, ESO 211, CS 220 Introduction: Role of operating System; System Calls; Processes and Threads Concepts of Processes, Threads; Process Control BLock. CPU Scheduling: Examples from contemporary OSes (UNIX and NT). Inter-Process Communication Message Passing, Mailboxes, Pipes; Examples from contemporary OSes (Unix and NT). Process Synchronization Critical Section Problem; Hardware Mechanism for synchronization; Semaphores and Mutex objects; Classical Problems (Producer Consumer, dining philosophers etc.); Monitors; Examples of synchronization mechanisms such as from Java and Pthreads. Deadlocks and Detection, Prevention and avoidance mechanisms.

Virtual Memory: Address binding process (compilation and linking); Dynamic Linking; Segmentation; Paging Protection; Demand Paging; Page Replacement policies - Thrashing, pre-paging and other issues; swapping; examples from contemporary OSes (Linux, NT)

Files and Directories: File organization in directories; File attributes; Operations on files; Directory attributes and operations on directories; Directory organizations; File and directory protections.

File system implementation Concepts of mounting; Allocation mechanisms - Contiguous, linked and indexed allocations; Free space management; caching; Examples of files systems from one or more of DOS, BSD, Linux, HPFS and NTFS;

Device Drivers: Storage management Disk scheduling; Disk Management; Swap and swap management.

Security and Protection Mechanisms: Password based protection; Encryption and Decryption; System Threats — Viruses, Wormholes, Trojan Horses etc. CS 335 COMPILER DESIGN Prereq. ESC 101, ESO 211, CS 220 Compiler structure: analysis-synthesis model of compilation, various phases of a compiler, tool based approach to compiler construction.

Lexical analysis: interface with input, parser and symbol table, token, lexeme and patterns. Difficulties in lexical analysis. Error reporting. Implementation. Regular definition, Transition diagrams, LEX Syntax analysis: CFGs, ambiguity, associativity, precedence, top down parsing, recursive descent parsing, transformation on the grammars, predictive parsing, bottom up parsing, LR parsers (SLR, LALR, LR), YACC

L-T-P-D-[C] 3-0-2-0-[4]

L-T-P-D-[C] 3-0-4-0-[4]

Syntax directed definitions: inherited and synthesized attributes, dependency graph, evaluation order, bottom up and top down evaluation of attributes, L- and S-attributed definitions

Type checking: type system, type expressions, structural and name equivalence of types, type conversion, overloaded functions and operators, polymorphic functions, type checking in OO languages

Run time system: storage organization, activation tree, activation record, parameter passing, symbol table, dynamic storage allocation, garbage collection Intermediate code generation: intermediate representations, translation of declarations, assignments, control flow, boolean expressions and procedure calls. Implementation issues

Code generation and instruction selection: issues, basic blocks and flow graphs, register allocation, code generation, DAG representation of programs, code generation from DAG, peep hole optimization, code generator generators, specifications of machine

Code optimization: Introduction to Code optimization, data-flow analysis

CS 340 THEORY OF COMPUTATION Prereq. ESO 211

Scope and motivation for theory of computation; informal introduction to computability and complexity; set membership problem as idealization of computing problems; alphabets, strings, languages, automata; deterministic finite automata; nonde-terminism; equivalence of DFAs and NFAs; regular expressions and their equivalence with finite automata; pumping lemma; some applications of FAs (e.g., text pattern matching); decision properties of regular languages; Myhill-Nerode theorem; minimization of DFAs, Grammars as generative devices; context-free grammars, derivation, and parse trees; pushdown automata; equivalence with CFGs; normal forms of CFGs, pumping lemma for context- free languages; decision and closure properties; some applications (e.g., YACC, markup languages, XML and document type definition, etc.), Why consider Turing machines?; basic TM model and its extensions; NDTMs, TM configurations; robustness of TM as a computing model; universal TM, Recursive and r.e. languages; notion of undecidability; undecidability of halting problem; reducibility; other undecidable problems; Rice’s theorem; separation of r.e. and recursive languages; existence of non r.e. languages; self-reference, recursion theorem; decidability of logical theories; implication to automated theorem proving, Motivation for examining feasibility/infeasibility distinction; definition of time L-T-P-D-[C]

and space complexity classes; P and NP, and their importance; polynomial time reducibility; definition of NP-completeness, and NP-hardness; Cook-Levin theorem; some other NP-complete problems, Brief review of the notion of randomized algorithms; probabilistic TMs; classes RP, BPP, and ZPP; relationships to P and NP; proof of inclusion of BPP in P/poly.

CS 345 ALGORITHMS-II Prereq. CS 201, ESO 211

Max Flows: Max Flows (Ford-Fulkerson and bipartite matching), Linear Algebra: LUP decomposition, inverting matrices, Fast Fourier Transform. Polynomial multiplication, integer multiplication and division, Number Theoretic Algorithms: gcd, modulo arithmetic, Chinese remaindering, RSA, Linear Programming: formulation, simplex, primal-dual, Geometric algorithms: convex hull, closest pair, intersection of line segments, polygon triangulation, Randomized Algorithms: identity testing, primality and min-cut, Approximation Algorithms: max-cut, tsp, vertex-cover etc, Backtracking, Other topics. These may include string matching,parallel algorithms, amortized analysis etc.

CS 350 PRINCIPLES OF PROGRAMMING LANGUAGES Prereq. ESO 211 Brief history of development of programming languages, Introduction - imperative programming, functional programming, logic programming and object oriented programming, Values and types, Notion of variables, Lifetime of variables- local, global and heap variables, Bindings and environments, bindables, scope- block structure, static and dynamic scoping, Abstraction - procedural and function abstractions, Type systems - monomorphic type systems. Introduction to polymorphism, Types of polymorphism - overloading, parametric polymorphism, polymorphic types, Type checking and type inference – inference rules for monomorphic types, introduction to polymorphic type inference, Functional programming, Logic Programming, Object oriented programming.

CS 355 PROGRAMMING TOOLS AND TECHNIQUES Prereq. ESC 101 Software management tools, CVS, Scripting tools, GUI programming tools, Language processing tools, Web programming tools.

In document Courses of Study 2008 (Page 109-112)