B. Sc. (H) Computer Science 3-YEAR FULL TIME PROGRAMME RULES, REGULATIONS AND COURSES CONTENTS DEPARTMENT OF COMPUTER SCIENCE FACULTY OF MATHEMATICAL SCIENCES UNIVERSITY OF DELHI DELHI – 110007 2010 Semester Systems at the undergraduate level Course of Study: B. Sc. (H) Computer Semester – I CSHT-101 Programming Fundamentals CSHT-102 Discrete Structures Digital Electronics Calculus and Matrices CSHT-203 Data Structures Semester – II CSHT-204 computer Systems Architecture English Calculus and Geometry using C++
Semeser – III CSHT-305 Algorithms CSHT-306 Systems Programmin g CSHT-307 File Structures and Database Basic Probability and Statistics Semester – IV CSHT-408 Operating Systems CSHT-409 Data Communica tion and Computer CSHT-410 Software Engineering Real Analysis / Differential Equations Semester – V CSHT-511 Theory of Computations CSHT-512 Microproces sors CSHT-513 Internet Technologie s Optimization I/ Real Analysis/To be decided by the student Semeser – VI CSHT-614 Computer Graphics CSHT-615 Information Security CSHT-616 Electives Statistical Methodology/ DE/To be decided by the student Electives: 1.
Software Testing 2. Artificial Intelligence 3. Network Programming and Administration 4. Data Mining 5. Combinatorial Optimizations Proposed Structure and Syllabi for B. Sc. (H) Computer Science – July 2010 Semester I Coding Title L–T–P Credits Total Marks 100 Pre-requisites CSHT-101 Programming Fundamentals using C++ Discrete Structures Digital Electronics Calculus and Matrices Software Lab based on 101 Lab based on Digital Electronics 5 – 0-0 5 – CSHT-102 ** ** CSHP-101 5 – 0-0 5 100 – 0-0-8 4 100 Semester II Coding Title L–T–P Credits Total Marks 100 100 Pre-requisites CSHT-203 CSHT-204 ** ** CSHP-202 CSHP-203
Data Structures Computer Systems Architecture EL – II (Language) Calculus and Geometry Software Lab based on 203 Lab based on 204 5 – 0-0 5 –0-0 5 5 101 0-0-8 0-0-4 4 2 100 50 Semester III Coding Title L–T–P Credits Total Marks 100 100 Pre-requisites CSHT-305 CSHT-306 Algorithms Systems Programming 5-0-0 5 – 0 -0 5 5 101,203 101, 203 CSHT-307 ** CSHP-304 CSHP-305 CSHP- 306 Database Systems Basic Statistics and Probability Software Lab based on 305 Software Lab based on 306 Software Lab based on 307 5–0-0 5 100 101, 203 0-0-4 0-0-4 0-0-4 2 2 2 50 50 50 Semester IV Coding Title L–T–P Credits Total Marks 100 100
Pre-requisites CSHT-408 CSHT-409 Operating Systems Data Communication and Computer Networks Software Engineering Real Analysis/ Differential Equations Software Lab based on 408 Software Lab based on 409 Software Lab based on 410 5 – 0-0 5 – 0-0 5 5 101, 203 CSHT-410 ** 5 – 0-0 5 100 101, 203 – CSHP-407 CSHP-408 CSHP-409 0-0-4 0-0-4 0-0-4 2 2 2 50 50 50 Semester V Coding Title L–T–P Credits Total Marks 100 100 100 Pre-requisites CSHT-511 CSHT-512 CSHT-513 ** CSHP-510 Theory of Computations Microprocessors Internet Technologies Optimization I/Real Analysis/* Software Lab based on 512 5 – 0– 0 5–0-0 5–0-0 5 5 5 01 204 409 0-0-4 2 50 CSHP-511 Lab based on 513 0-0-4 2 50 Semester VI Coding Title L–T–P Credits Total Marks 100 100 100 Pre-requisites CSHT-614 CSHT-615 CSHT-616 ** Computer Graphics Information Security Elective Differential Equations/ Statistical Methodology/* Software Lab based on 614 Software Lab based on 615 Software Lab based on 616 5-0-0 5-0-0 5-0-0 5 5 5 – CSHP-612 CSHP-613 CSHP-614 0-0-4 0-0-4 0-0-4 2 2 2 50 50 50 • To be decided by the student from any discipline * * Will be finalized after the syllabi by the respective departments (Electronics / Mathematics / Statistics / English) are made.
CSHT-101 Programming Fundamentals (60 Lectures) Basic Computer Organization: Functional Units, basic I/O devices and storage devices; Representation of integers, real (fixed and floating point), characters (ASCII and Unicode); Basic operations of a programming environment. Problem Solving Approaches: Notion of an algorithm, problem solving using top-down design and decomposition into sub-problems, stepwise methodology of developing an algorithm, methodology of developing an algorithmic solution from a mathematical specification of the problem, use of recursion for problems with inductive characterization.
Programming using C++: basic data types; constants and variables, arithmetic and logical expressions, assignment; input-output interface; control structures in conditionals, loops; procedural abstractions; strings and arrays; command line arguments; file handling; error handling. Introduction to the object-oriented programming paradigms; data abstraction and encapsulation — objects and classes; inheritance; polymorphism; Recommended Books: 1. B. A. Forouzan and R. F. Gilberg, Computer Science, A structured Approach using C++, Cengage Learning, 2004. 2. R. G. Dromey, How to solve it by Computer, Pearson Education 1982 3. E.
Balaguruswamy, Object Oriented Programming with C++ , 4th Edition, Tata McGraw Hill 1997 4. G. J. Bronson, A First Book of C++ From Here to There, 3rd Edition, Cengage Learning 2005. 5. G. Seed, An Introduction to Object-Oriented Programming in C++, with applications in Computer Graphics Springer 2nd Edition 2001. CSHT 102 Discrete Structures (60 Lectures) Introduction: Sets – finite and Infinite sets, uncountably Infinite Sets; functions, relations, Properties of Binary Relations, Closure, Partial Ordering Relations; counting – Pigeonhole Principle, Permutation and Combination; Mathematical Induction, Principle of Inclusion and Exclusion.
Growth of Functions: Asymptotic Notations, Summation formulas and properties, Bounding Summations, approximation by Integrals Recurrences: Recurrence Relations, generating functions, Linear Recurrence Relations with constant coefficients and their solution, Substitution Method, Recurrence Trees, Master Theorem Graph Theory: Basic Terminology, Models and Types, multigraphs and weighted graphs, Graph Representaion, Graph Isomorphism, Connectivity, Euler and Hamiltonian Paths and Circuits, Planar Graphs, Graph Coloring, Trees, Basic Terminology and properties of Trees, Introduction to Spanning Trees Prepositional Logic: Logical Connectives, Well-formed Formulas, Tautologies, Equivalences, Inference Theory Recommended Books: 1. C. L. Liu & Mahopatra, Elements of Discrete mathematics, 2nd Sub Edition 1985, Tata McGraw Hill 2. Rosen, Discrete Mathematics and Its Applications, Sixth Edition 2006 3. T. H. Coremen, C. E. Leiserson, R. L. Rivest, Introduction to algorithms, Prentice Hall on India (3rd edition 2009) 4. M. O. Albertson and J. P. Hutchinson, Discrete Mathematics with Algorithms 1988 Johnwiley Publication 5. J. L. Hein, Discrete Structures, Logic, and Computability, Jones and Bartlett Publishers, 3rd Edition, 2009 6. D. J. Hunter, Essentials of Discrete Mathematics, Jones and Bartlett Publishers, 2008 Digital Electronics In consultation with Department of Electronics) Number System and Codes: Decimal, Binary, Hexadecimal, Octal, BCD, Conversions, Complements (1’s and 2’s), Signed and Unsigned numbers, Addition and Substraction, Multiplication Gray and Hamming Codes Logic Gates and Boolean Algebra: Truth Tables, OR, AND, NOT, EXOR, Universal (NOR and NAND) Gates, Boolean Theorems, DeMorgan’s Theorems. Combinational Logic Analysis and Design: Standard representation of logic functions (SOP and POS), Minimization Techniques(Karnaugh Map Method: 4,5 variables). Multiplexers(2:1,4:1)) and Demultiplexers (1:2,4:1), Adder (half and full) and their use as substractor, Encoder (8-line-to-3-line) and Decoder (3-line-to-8-line) , Code Converters( Binary to BCD and vice versa).
Sequential logic design: Latch, Flip flop, S-R FF , J-K FF, T and D type FFs, Clocked FFs, Registers, Counters (ripple, synchronous and asynchronous, ring, modulus), State Table, State Diagrams and Sequential Machines. A/D and D/A Converters: Successive Approximation ADC, R/2R Ladder DAC. Memories: General Memory Operation, ROM, RAM (Static and Dynamic), PROM, EPROM, EEPROM, EAROM. Suggested Books: 1. Digital Electronics, Principles and Applications, R. L. Tokheim, Tata McGraw-Hill. 2. Digital Principles, R. L. Tokheim, Schaum’s Outline Series, Tata McGraw-Hill. 3. Digital Systems, Principles and Applications, R. J. Tocci and N. S. Widner, Pearson Education Asia. 4. Digital Principles and Applications, A. P. Malvino and D. Leach, Tata McGraw Hill. 5. Digital Design, M. M. Mano, Pearson Education Asia. 6.
Digital Fundamentals, T. L. Floyd, Pearson Education Asia. 7. Solved Problems in Digital Electronics, S. P. Bali, Sigma Series, Tata McGraw-Hill. 8. Digital Electronics, W. H. Gothmann, Prentice Hall of India. 9. Modern Digital Electronics, R. P. Jain, Tata McGraw-Hill. CSHT 203 Data Structures (60 Lectures) Introduction: Abstract Data Types, Arrays- Single and Multidimensional arrays, Sparse matrices. Linear structures: Stacks, Queues (linear as well as circular implementation), singly-, doubly-, and circularly- linked lists — Operations and applications. Recursion: Problem solving using recursion, run time stack in recursion, tail recursion, and its removal.
Searching techniques: Linear search, Binary search and their efficiency, Skip Lists, Hashing. Tree Structures: Trees, Binary Trees, Complete Binary trees and almost complete Binary trees, binary search trees, Insertion, Deletion, Tree traversal algorithms, Threaded trees (recursive as well as Non recursive), applications of trees. Multiway trees – B-Trees and introduction to B+ Trees. Recommended Books: 1. A. Drozdek, Data Structures and algorithm in C++, 3rd Edition, Course Technology 2004. 2. Data Structures using C and C++, Tannenbaum, 2nd edition ** 1995 3. Data Structures and Algorithms in C++. Publication John Wiley 2003 4. S. Sahni, Data Structures, Algorithms and applications in C++, Publication Silicon Press 2004 5. B. R.
Preiss, Data structures and algorithms with object oriented design patterns in C++, John Wiley and sons, 1998. CSHT 204 Computer System Architecture (60 Lectures) Basic Computer Organization and Design: Computer registers, bus system, instruction set, timing and control, instruction cycle, memory reference, input-output and interrupt, Interconnection Structures, Bus Interconnection design of basic computer. Central Processing Unit: Register organization, arithmetic and logical micro-operations, stack organization, micro programmed control. Instruction formats, addressing modes, instruction codes, machine language, assembly language, input output programming, RISC, CISC architectures, pipelining and parallel architecture.
Memory Organization: Cache memory, Associative memory, mapping. Input-output Organization: Input / Output: External Devices, I/O Modules, Programmed I/O, Interrupt-Driven I/O, Direct Memory Access, I/O Channels Recommended Books: 1. M. Mano, Computer System Architecture, Prentice Hall of India Third edition / Pearson Education 1992. 2. A. J. Dos Reis, Assembly language and computer architecture using C++ and JAVA, Course Technology, 2004. 3. W. Stallings, Computer Organization and Architecture Desiguing for Performance 8th Edition 2009, Prentice Hall of India. CSHT 305 Algorithms (60 Lectures) Introduction: Basic Design and Analysis techniques of Algorithms, Correctness of Algorithm.
Algorithm Design Techniques: Iterative techniques, Divide and Conquer, Dynamic Programming, Greedy Algorithms. Sorting and Searching Techniques: Elementary sorting techniques – Bubble Sort, Insertion Sort, Merge Sort, Advanced Sorting techniques – Heap Sort, Quick Sort, Sorting in Linear Time Bucket Sort, Radix Sort and Count Sort, Searching Techniques, Medians & Order Statistics, complexity analysis; Lower Bounding Techniques: Decision Trees Balanced Trees – Red-Black Trees Advanced Analysis Technique: Amortized analysis Graphs: Graph Algorithms – Breadth First Search, Depth First Search and its Applications, Minimum Spanning Trees. String Processing: String Matching, KMP Technique
Recommended Books: 1. T. H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein Introduction to Algorithms, PHI, 3rd Edition 2009 2. Sarabasse & A. V. Gelder Computer Algorithm – Introduction to Design and Analysis, Publisher – Pearson 3rd Edition 1999 CSHT 306 Systems Programming (60 Lectures) Introduction: Introduction to Systems Software and machine architecture. Assemblers: Example of an assembly language, programming in assembly language, assembler features and functions, Load and Go assembler, One-pass and two pass assemblers, Macros and macro processors. Compilers: Compiler functions and features, phases of compilation, optimization.
Loaders and Linkers: Basic Loader functions and features, Relocation, Program Linking, static and dynamic linking. Recommended Books: 1. A. J. Dos Reis, Assembly language and computer architecture using C++ and JAVA, Course Technology, 2004 2. D. M. Dhamdhere Systems Programming and Operating Systems, Tata McGraw-Hill Publishing Company, Ltd; Second Revised Edition 1996 3. L. Beck, D. Manjula, System Software, An Introduction to Systems Programming, Pearson, 3rd Edition 1996. 4. S. Chattopadhyay, Systems Software, PHI 2007. CSHT 307 Database Systems (60 Lectures) Introduction: Characteristics of database approach, data models, database system architecture and data independence. Entity Relationship(ER) Modeling: Entity types, relationships, constraints.
Relation data model: Relational model concepts, relational constraints, relational algebra, SQL queries, programming using embedded SQL. Database design: mapping ER model to relational database, functional dependencies, normal forms. Transaction Processing: ACID properties, concurrency control, recovery. Web based databases: XML documents and databases. Books Recommended: 1. R. Elmasri, S. B. Navathe, Fundamentals of Database Systems 6th Edition, Pearson Education 2010. 2. R. Ramakrishanan, J. Gehrke, Database Management Systems 3rd Edition, McGraw-Hill 2002. 3. A. Silberschatz, H. F. Korth, S. Sudarshan, Database System Concepts 6th Edition, McGraw Hill 2010. CSHT 408 Operating Systems (60 Lectures)
Introduction: Basic OS functions, resource abstraction, types of operating systems – multiprogramming systems, batch systems , time sharing systems; operating systems for personal computers & workstations, process control & real time systems. Operating System Organization: processor and user modes, kernels, system calls and system programs. Process Management: System view of the process and resources, process abstraction, process hierarchy, threads, threading issues, thread libraries; Process Scheduling, non-pre-emptive and pre-emptive scheduling algorithms; concurrent and processes, critical section, semaphores, methods for inter-process communication; deadlocks.
Memory Management: Physical and virtual address space; memory allocation strategies -fixed and variable partitions, paging, segmentation, virtual memory File and I/O Management: Directory structure, file operations, file allocation methods, device management. Protection and Security: Policy mechanism, authentication, internal access authorization. Recommended Books: 1. A Silberschatz, P. B. Galvin, G. Gagne, Operating Systems Concepts, 8th Edition, John Wiley Publications 2008. 2. A. S. Tanenbaum, Modern Operating Systems, 3rd Edition, Pearson Education 2007. 3. G. Nutt, Operating Systems: A Modern Perspective, 2nd Edition Pearson Education 1997. 4. W.
Stallings, Operating Systems, Internals & Design Principles 2008 5th Edition, Prentice Hall of India. 5. M. Milenkovic, Operating Systems- Concepts and design, Tata McGraw Hill 1992. CSHT 409 Data Communication and Computer Networks (60 Lectures) Introduction to Computer Networks: Network definition; network topologies; network classifications; network protocol; layered network architecture; overview of OSI reference model; overview of TCP/IP protocol suite. Data Communication Fundamentals and Techniques: Analog and digital signal; data-rate limits; digital to digital line encoding schemes; pulse code modulation; parallel and serial transmission; digital to analog modulation-; multiplexing techniques- FDM, TDM; transmission media.
Networks Switching Techniques and Access mechanisms: Circuit switching; packet switching- connectionless datagram switching, connection-oriented virtual circuit switching; dial-up modems; digital subscriber line; cable TV for data transfer. Data Link Layer Functions and Protocol: Error detection and error correction techniques; data-link control- framing and flow control; error recovery protocols- stop and wait ARQ, goback-n ARQ; Point to Point Protocol on Internet. Multiple Access Protocol and Networks: CSMA/CD protocols; Ethernet LANS; connecting LAN and back-bone networks- repeaters, hubs, switches, bridges, router and gateways; Networks Layer Functions and Protocols: routing; routing algorithms; network layer protocol of Internet- IP protocol, Internet control protocols.
Transport Layer Functions and Protocols: Transport services- error and flow control, Connection establishment and release- three way handshake; Overview of Application layer protocol: Overview of DNS protocol; overview of WWW & HTTP protocol. Recommended Books: 1. B. A. Forouzan: Data Communications and Networking, Fourth edition, THM Publishing Company Ltd 2007. 2. A. S. Tanenbaum: Computer Networks, Fourth edition, PHI Pvt. Ltd 2002. CSHT 410 Software Engineering (60 Lectures) Introduction: The Evolving Role of Software, Software Characteristics, Changing Nature of Software, Software Engineering as a Layered Technology, Software Process Framework, Framework and Umbrella Activities, Process Models, Capability Maturity Model Integration (CMMI).
Requirement Analysis: Software Requirement Analysis, Initiating Requirement Engineering Process, Requirement Analysis and Modeling Techniques, Flow Oriented Modeling, Need for SRS, Characteristics and Components of SRS. Software Project Management: Estimation in Project Planning Process, Project Scheduling. Risk Management: Software Risks, Risk Identification, Risk Projection and Risk Refinement, RMMM Plan. Quality Management: Quality Concepts, Software Quality Assurance, Software Reviews, Metrics for Process and Projects. Design Engineering: Design Concepts, Architectural Design Elements, Software Architecture, Data Design at the Architectural Level and Component Level, Mapping of Data Flow into Software Architecture, Modeling Component Level Design.
Testing Strategies & Tactics: Software Testing Fundamentals, Strategic Approach to Software Testing, Test Strategies for Conventional Software, Validation Testing, System Testing, BlackBox Testing, White-Box Testing and their type, Basis Path Testing. Recommended Books: 1. R. S. Pressman, Software Engineering: A Practitioner’s Approach (7th Edition), McGrawHill, 2009. 2. P. Jalote, An Integrated Approach to Software Engineering (2nd Edition), Narosa Publishing House, 2003. 3. K. K. Aggarwal and Y. Singh, Software Engineering (revised 2nd Edition), New Age International Publishers, 2008. 4. I. Sommerville, Software Engineering (8th edition), Addison Wesle, 2006. 5. D. Bell, Software Engineering for Students (4th Edition), Addison-Wesley, 2005. 6. R. Mall, Fundamentals of Software Engineering (2nd Edition), Prentice-Hall of India, 2004. CSHT 511 Theory of Computation (60 Lectures)
Languages: Alphabets, string, language, Basic Operations on language, Concatenation, Kleene Star Finite Automata and Regular Languages: Regular Expressions, Transition Graphs, Deterministics and non-deterministic finite automata, NFA to DFA Conversion, Regular languages and their relationship with finite automata, Pumping lemma and closure properties of regular languages. Context free languages: Context free grammars, parse trees, ambiguities in grammars and languages, Pushdown automata (Deterministic and Non-deterministic), Pumping Lemma, Properties of context free languages, normal forms. Turing Macines and Models of Computations: RAM, Turing Machine as a model of computation, Universal Turing Machine, Language acceptability, decidability, halting problem, Recursively enumerable and recursive languages, unsolvability problems.
Recommended Books: 1. Daniel I. A. Cohen, Introduction to computer theory – John Wiley (1996 2nd Edition). 2. Lewis & Papadimitriou, Elements of the theory of computation – II Edition PHI 1997. 3. Hoperoft, Aho, Ullman, Introduction to Automata theory, Language & Computation –3rd Edition 2006, Pearson Education. 4. P. Linz, An Introduction to Formal Language and Automata 4th edition Publication Jones Bartlett 2006 CSHT 512 Microprocessors (60 Lectures) Microprocessor architecture: Internal architecture, system bus architecture, memory and I/O interfaces. Microprocessor programming: Register Organization, instruction formats, assembly language programming.
JDBC: JDBC Fundamentals, Establishing Connectivity and working with connection interface, Working with statements, Creating and Executing SQL Statements, Working with Result Set Objects. JSP: Introduction to JavaServer Pages, HTTP and Servlet Basics, The Problem with Servlets, The Anatomy of a JSP Page, JSP Processing, JSP Application Design with MVC, Setting Up the JSP Environment, Implicit JSP Objects, Conditional Processing, Displaying Values, Using an expression to Set an Attribute, Declaring Variables and Methods, Error Handling and Debugging, Sharing Data Between JSP Pages, Requests, and Users, Database Access. Java Beans: Java Beans Fundamentals, JAR files, Introspection, Developing a simple Bean, Connecting to DB
Fundamental Techniques in Graphics: Raster scan line, circle and ellipse drawing, thick primitives, Polygon filling, line and polygon clipping algorithms, 2D and 3D Geometric Transformations, 2D and 3D Viewing Transformations (Projections- Parallel and Perspective), Vanishing points. Geometric Modeling: Representing curves & Surfaces. Visible Surface determination: Hidden surface elimination. Surface rendering: Illumination and shading models. Basic color models and Computer Animation. Books Recommended: 1. J. D. Foley, A. Van Dan, Feiner, Hughes Computer Graphics Principles & Practice 2nd edition Publication Addison Wesley 1990. 2. D. Hearn, Baker: Computer Graphics, Prentice Hall of India 2008. 3. D. F. Rogers Procedural Elements for Computer Graphics, McGraw Hill 1997. 4. D. F. Rogers, Adams Mathematical Elements for Computer Graphics, McGraw Hill 2nd edition 1989. CSHT 615 Information Security (60 Lectures)
Introduction: Security, Attacks, Computer Criminals, Security Services, Security Mechanisms. Cryptography: Substitution ciphers, Transpositions Cipher, Confusion, diffusion, Symmetric, Asymmetric Encryption. DES Modes of DES. ,Uses of Encryption. ,Hash function,key exchange, digital signatures,Digital Certificates. Program Security: Secure programs,Non malicious Program errors, Malicious codes virus,trap doors,salami attacks, covert channels,Control against program Threats. Protection in OS: Memory and Address Protection, Access control, File Protection, User Authentication. Database Security: Requirements, Reliability, Integrity, Sensitive data, Inference, Multilevel Security.
Security in Networks: Threats in Networks s Networks security Controls, detection systems, Secure e-mails firewalls, Intusion Administrating Security: Security Planning, Risk Analysis, Organisational Security Policy, Physical Security. Ethical issues in Security: Protecting Programs and data. Information and law. Recommended Books: 1. C. P. Pfleeger, S. L. Pfleeger; Security in Computing, Prentice Hall of India, 2006 2. W. Stallings ; Network Security Essentials: Applications and Standards, 4/E, 2010 CSHT 616 (i) Foundations of Software Testing Fundamentals of testing: Need for testing, process, The psychology of testing General testing principles, Fundamental test
Testing throughout the software life cycle: Software development models, Test levels (Unit, Integration, System Acceptance testing), Test types (functional, non-functional, regression testing), Maintenance testing Static techniques: Static techniques and the test process, Review process (types of review, roles and responsibilities), Test design techniques: The Test Development Process, Categories of test design techniques, Specification-based or black-box techniques (Equivalence partitioning, Boundary value analysis, Decision table testing, State transition testing, Use case testing), Structure-based or white-box techniques (Statement testing and coverage, Decision testing and coverage, other structure-based techniques), Experience-based techniques, Choosing test techniques
Test management: Test organization (test leader, tester), Test planning and estimation ( Test planning, Test planning activities, Exit criteria, Test estimation, Test approaches), Test progress monitoring and control (Test progress monitoring, test reporting, test control), Configuration management, Risk and testing (Project risks, Product risks), Incident management Web Application Testing Foundation: Basic test planning and testing methods for web applications, Introduction to gray-box testing and its application to testing web applications, Outline knowledge, methods and tools for testing web applications, Introduction to web testing tools and sources, Introduction to research tools on the Net.
Tool support for testing: Types of test tool, Test tool classification, Tool support for management of testing and tests, static testing, test specification, test execution and logging, performance and monitoring, specific application areas, using other tools, Effective use of tools: potential benefits and risks Recommended Books: 1. 2. 3. 4. 5. Boris Beizer, “Software Testing Techniques”, Van Nostrand Reinhold Louise Tamres, “Software Testing”, Pearson Education Paul Jogerson, “Software Testing” CRC Press Roger R Pressman, “Software Engineering – A Practitioner’s approach” Mc Graw Hill Testing Applications on the Web, 2nd Edition by Nguyen, Michael Hackett, and Bob Johnson (Wiley, 2003 CSHT 616 (ii) ARTIFICIAL INTELLIGENCE Introduction: (60 Lectures) Introduction to Artificial Intelligence, Background and Applications, Turing Test and Rational Agent approaches to AI, Introduction to Intelligent Agents, their structure, behavior and environment.
Problem Solving and Searching Techniques: Problem Characteristics, Production Systems, Control Strategies, Breadth First Search, Depth First Search, Hill climbing and its Variations, Heuristics Search Techniques: Best First Search, A* algorithm, Constraint Satisfaction Problem, Means-End Analysis, Introduction to Game Playing, Min-Max and Alpha-Beta pruning algorithms. Knowledge Representation: Introduction to First Order Predicate Logic, Resolution Principle, Unification, Semantic Nets, Conceptual Dependencies, Frames, and Scripts, Production Rules, Conceptual Graphs. Programming in Logic (PROLOG). Dealing with Uncertainty and Inconsistencies:
Truth Maintenance System, Default Reasoning, Probabilistic Reasoning, Bayesian Probabilistic Inference, Possible World Representations. Understanding Natural Languages: Parsing Techniques, Context-Free and Transformational Grammars, Recursive and Augmented Transition Nets. BOOKS RECOMMENDED: 1. 2. DAN. W. Patterson, Introduction to A. I and Expert Systems – PHI, 2007. Russell & Norvig, Artificial Intelligence-A Modern Approach, LPE, Pearson Prentice Hall, 2nd edition, 2005. Rich & Knight, Artificial Intelligence – Tata McGraw Hill, 2nd edition, 1991. W. F. Clocksin and Mellish, Programming in PROLOG, Narosa Publishing House, 3rd edition, 2001. 5.
Ivan Bratko, Prolog Programming for Artificial Intelligence, Addison-Wesley, Pearson Education, 3rd edition, 2000. 3. 4. CSHT 616 (iii) Network Programming and Administration Transport Layer Protocols: TCP, UDP, SCTP protocol. Socket Programming: Socket Introduction; TCP Sockets; TCP Client/Server Example ; signal handling; I/O multiplexing using sockets; Socket Options; UDP Sockets; UDP client server example; Address lookup using sockets. Network Applications: Remote logging; Email; WWWW and HTTP. LAN administration: Linux and TCP/IP networking: Network Management and Debugging. Books recommended: 1. W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, Unix Network Programming, The sockets Networking API, Vol. 1, 3rd Edition, PHI. 2. B. A.
Forouzan: Data Communications and Networking, Fourth edition, THM Publishing Company Ltd. 3. Nemeth Synder & Hein, Linux Administration Handbook, Pearson Education, 2nd Edition 4. R. Stevens, Unix Network Programming, PHI 2nd Edition CSHT 616 (iv) Data Mining Overview: Predictive and descriptive data mining techniques, supervised and unsupervised learning techniques, process of knowledge discovery in databases, pre-processing methods Data Mining Techniques: Association Rule Mining, classification and regression techniques, clustering, Scalability and data management issues in data mining algorithms, measures of interestingness Books Recommended: 1.
Introduction to Data Mining, Pang-Ning Tan, Michael Steinbach, Vipin Kumar, Pearson Education. 2. Data Mining: A Tutorial Based Primer, Richard Roiger, Michael Geatz, Information; Pearson Education 2003. 3. Introduction to Data Mining with Case Studies, G. K. Gupta, PHI,2006. 4. Insight Into Data Mining: Theory And Practice, Soman K P,Diwakar Shyam, Ajay V, PHI, 2006 CSHT 616 (v) Combinatorial Optimization Introduction: Optimization problems, neighborhoods, local and global optima, convex sets and functions, simplex method, degeneracy; duality and dual algorithm, computational considerations for the simplex and dual simplex algorithms-Dantzig-Wolfe algorithms.
Integer Linear Programming: Cutting plane algorithms, branch and bound technique. Graph Algorithms: Primal-Dual algorithm and its application to shortest path, Math-flow problems Dijkstra’s algorithm, Max-flow problem, matching problem, bipartite matching algorithm, non-bipartite matching algorithms. Books recommended: 1. C. H. Papadimitriou and K. Steiglitz, Combinatorial Optimization: Algorithms and complexity, Prentice-Hall of India, 2006 2. K. Lange, Optimization, Springer, 2004 3. Mokhtar S. Bazaraa, John J. Jarvis and Hanif D. Sherali, Linear Programming and Network Flows, John Wiley & Sons, 2004 4. H. A. Taha, Operations Research: An Introduction (8th Edition), Prentice Hall, 2006