Académique Documents
Professionnel Documents
Culture Documents
1 First Year Semester-1 ............................................................................................................ 6 1.1 CS-101: Principles of Programming Languages ............................................................................... 7 1.2 CS102 - Advanced Networking ..................................................................................................... 12 1.3 CS-103: Distributed Database Concepts ......................................................................................... 15 1.4 CS-104: Design and Analysis of Algorithms .................................................................................. 17 1.5 CS-105- Seminar ............................................................................................................................. 19 1.6 CS-106: Practical Based on Course-CS-101 ................................................................................... 20 1.7 CS -107 Practical Based on Course: CS-102 ............................................................................... 21 1.8 CS -108 Practical based on Course CS-103 .................................................................................... 22 1.9 CS -109 Practical Based on Course-CS-104 ................................................................................ 23 2 First Year Semester-2 .......................................................................................................... 24 2.1 CS-201: Digital Image Processing .................................................................................................. 25 2.2 CS-202: Advanced Operating System ............................................................................................ 27 2.3 CS-203: Data Mining and Data Warehousing ................................................................................ 30 2.4 CS-206: Practical based on course CS-201..................................................................................... 32 2.5 CS-207 : Practical Based on Course CS-202 .................................................................................. 33 2.6 CS-208: Practical Based on CS 203:............................................................................................... 34 3 Second Year Semester-3 .................................................................................................... 36 3.1 CS301: Software Metrics & Project Management .......................................................................... 37 3.2 CS-302: MOBILE COMPUTING .................................................................................................. 38 3.3 CS-303 SOFT COMPUTING ......................................................................................................... 42 3.4 CS 305 COMPILER DESIGN ........................................................................................................ 43 Electives ....................................................................................................................................... 44 2. Functional Programming................................................................................................................. 46 3. Linux Kernel Programming and Introduction to Device Drivers ................................................... 48 4. Natural Language Processing.......................................................................................................... 50 5. Program Analysis ............................................................................................................................ 51 6. DOT NET........................................................................................................................................ 52 7. Information Systems Security ......................................................................................................... 55 8. Software Architecture and Design Patterns .................................................................................... 58 9. Software Testing Tools & Methodologies ...................................................................................... 60 10. MODELLING AND SIMULATION ............................................................................................. 65 11. EMBEDDED SYSTEM PROGRAMMING .................................................................................. 66 12. Language Processors ....................................................................................................................... 68 13. Artificial Intelligence ...................................................................................................................... 70 4 Guide Line of Project (Minor) ................................................................................................. 72 PROJECT STRUCTURE ....................................................................................................................... 73 INTRODUCTION ................................................................................................................................... 73 OBJECTIVES ......................................................................................................................................... 73 IMPORTANCE OF THE MINI PROJECT .................................................................................................. 73 MINI PROJECT: TABLE OF CONTENTS.................................................................................................. 74 EXPLANATION OF CONTENTS.............................................................................................................. 76 Key Features Of The Project ................................................................................................................... 81 Analysis ............................................................................................................................................... 81 Design.................................................................................................................................................. 82 Coding ................................................................................................................................................. 82 1 M.Sc. (Computer Science)
Testing ................................................................................................................................................. 82 STEPS OF THE MINI PROJECT .......................................................................................................... 83 Selection of Topic Area ....................................................................................................................... 83 Project Report Planning ...................................................................................................................... 84 Project Plan ......................................................................................................................................... 84 Project Proposal Report ...................................................................................................................... 84 Project Final Report ............................................................................................................................ 85 Project Assessment ............................................................................................................................. 85 GUIDELINES FOR THE PROJECT PROPOSAL ................................................................................ 85 Project Proposal .................................................................................................................................. 85 Front page ........................................................................................................................................... 85 Structure ............................................................................................................................................. 85 INTRODUCTION ......................................................................................................................... 85 Problem Definition ...................................................................................................................... 86 Requirements Specification ........................................................................................................ 86 Planning and Scheduling ............................................................................................................. 86 Software and Hardware Requirements ...................................................................................... 86 Preliminary Product Description ................................................................................................. 86 Conceptual Models. .................................................................................................................... 86
REFERENCES ................................................................................................................................... 86 GUIDELINES FOR THE PROJECT REPORT ..................................................................................... 86 Project Report Format ........................................................................................................................ 86 Project Report Layout ......................................................................................................................... 87 Font size and margin ........................................................................................................................... 87 Heading ............................................................................................................................................... 87 Figure and Tables ................................................................................................................................ 89 Software Requirement Specification ...................................................................................................... 89 External Interfaces of the system: They identify the information which is to flow from and to to the system............................................................................................................................................ 89 A typical SRS should include following contents: Normally IEEE standard is followed. ..................... 90 PROJECT CATEGORIES ......................................................................................................................... 90 LIST OF APPLICATION AND TOOLS ........................................................................................... 91
M.Sc.(Computer Science)
Semester 1
Subject Code CS-101 CS-102 CS-103 CS-104 CS-105 CS-106 CS-107 CS-108 CS-109
Subject Paper Theory Marks (A) Sessional Marks (B)
Principles of Programming Languages Advanced Networking Distributed Database Concepts Design and Analysis of Algorithms Seminar Practical Based on Course CS-101 Practical Based on Course CS-102 Practical Based on Course CS-103 Practical Based on Course CS-104
Min 40 40 40 40 30 30 60 30
Max 50 50 50 50 50 250
Min 30 30 30 30 30 -
4 3 15
2 3 10 2 4 4 6 4 20
Total (Paper+Internal)
Semester 2
Subject Code CS-201 CS-202 CS-203 CS-204 CS-205 CS-206 CS-207 CS-208 CS-209
Subject Paper Theory Marks (A) Sessional Marks (B)
Digital Image Processing Advanced Operating Systems Data Mining and Data Warehousing Elective Course-1 Project (Minor) Practical Based on Course CS-201 Practical Based on Course CS-202 Practical Based on Course CS-203 Practical Based on Course CS-204
Min 40 40 40 40 30 30 30 30 30
Max 50 50 50 50 50 250
Min 30 30 30 30 30 -
3 3 14
3 3 10 2 4 4 6 4 20
Total (Paper+Internal)
Semester 3
Subject Code CS-301 CS-302 CS-303 CS-304 CS-305 CS-306 CS-307 CS-308 CS-309
Subject Paper Theory Marks (A) Sessional Marks (B)
Max
Software Metrics & Project Management Mobile Computing Soft Computing Elective Course II Compiler Design Seminar Practical Based on Course CS-302 Practical Based on Course CS-303 Practical Based on Course CS-304
Min 40 40 20 20 30 30 60 60 60
Max 50 50 50 50 50 250
Min 30 30 30 30 30 -
4 4 3 3 14
2 2 3 3 10 2 4 4 6 4 20
Total (Paper+Internal)
Semester 4
Subject Code CS-401
4
Subject Paper Theory Marks (A) Sessional Marks (B)
Max
SYSTEM DEVELOPMENT PROJECT
Min 120
Max 100
Min 30
200
Important information regarding the CS-204/CS-304: Elective Course Please note that, one elective from the following list to be opted for each of the semesters 2nd and 3rd (CS-204 in semester two and CS-304 in semester three respectively) according to prerequisite conditions (if any). List of Elective Courses 1. Advanced Algorithms 2. Functional Programming 3. Linux Kernel Programming and Introduction to Device Drivers 4. Natural Language Processing 5. Program Analysis 6. DOT NET 7. Information Systems Security 8. Software Architecture and Design Patterns 9. Software Testing Tools & Methodologies 10. Modeling and Simulations 11. Embedded System Programming 12. Language Processors 13. Artificial Intelligence
M.Sc.(Computer Science)
1 First Year Semester-1
Unit-1 1. Introduction The Art of Language Design The Programming Language Spectrum Why Study Programming Languages? Compilation and Interpretation Programming Environments 2. Non-Imperative Programming Models: Functional, Logic Languages Common LISP Basic LISP Primitives ( FIRST, REST, SETF, CONS, APPEND, LIST,NTHCDR, BUTLAST,LAST, LENGTH, REVERSE, ASSOC) Procedure definition and binding, DEFUN, LET Predicates and Conditional, EQUAL, EQ, EQL, =, MEMBER, LISTP, ATOM, NUMBERP, SYMBOLP, NIL, NULL, IF, WHEN, UNLESS,COND, CASE Procedure Abstraction and Recursion Turbo Prolog Introduction, facts, Objects and Predicates, Variables, Using Rules, Controlling execution fail and cut predicates 3. Names, Scopes, and Bindings The Notion of Binding Time Object Lifetime and Storage Management : Static Allocation, Stack-Based Allocation, Heap-Based Allocation, Garbage Collection Scope Rules o Static Scoping, Nested Subroutines, Declaration Order, Dynamic Scoping The meaning of Names in a Scope o Aliases, Overloading, Polymorphism and Related Concepts The Binding of Referencing Environments Subroutine Closures, First-Class Values and Unlimited Extent, Object Closures Macro Expansion Unit-2 4. Control Flow Expression Evaluation o Precedence and Associativity, Assignments, Initialization, Ordering Within Expressions, Short-Circuit Evaluation
Structured and Unstructured Flow o Structured Alternatives to goto o Sequencing o Selection o Short-Circuited Conditions, Case/Switch Statements o Iteration o Enumeration-Controlled Loops, Combination Loops, Iterators, Logically o Controlled Loops o Recursion o Iteration and Recursion, Applicative- and Normal-Order Evaluation Unit-3
5. Data Types Introduction Primitive Data Types Numeric Types Integer Floating point Complex Decimal Boolean Types Character Types Character String Types Design Issues Strings and Their Operations String Length Operations Evaluation Implementation of Character String Types User defined Ordinal types Enumeration types Designs Evaluation Subrange types Adas design Evaluation Implementation fo used defined ordinal types Array types Design issues Arrays and indices Subscript bindings and array categories, Heterogeneous arrays, Array initialization Array operations, Rectangular and Jagged arrays, Slices, Evaluation, Implementation of Array Types Associative Arrays Structure and operations, Implementing associative arrays
9 M.Sc. (Computer Science)
Record types Definitions of records, References to record fields, Operations on records Evaluation, Implementation of Record types Union Types Design issues, Discriminated versus Free unions, Evaluation Implementation of Union types Pointer and Reference Types Design issues, Pointer operations, Pointer problems Dangling pointers, Lost heap dynamic variables Pointers in C and C++ Reference types Evaluation Implementation of pointer and reference types Representation of pointers and references Solution to dangling pointer problem Heap management 6. Subroutines and Control Abstraction. Fundamentals of Subprograms Design Issues for subprograms Local Referencing Environments Parameter-Passing Methods Parameters That are Subprograms Overloaded Subprograms Generic Subroutines Generic Functions in C++ Generic Methods in Java Design Issues for Functions User-Defined Overloaded Operators Coroutines The General Semantics of Calls and Returns Implementing Simple Subprograms Implementing Subprograms with Stack-Dynamic Local Variables Nested Subprograms Blocks Implementing Dynamic Scoping Unit-4 7. Data Abstraction and Object Orientation. Object-Oriented Programming Encapsulation and Inheritance Modules, Classes, Nesting (Inner Classes), Type Extensions, Extending without Inheritance Initialization and Finalization
10 M.Sc. (Computer Science)
Choosing a Constructor, References and Values, Execution Order, Garbage Collection Dynamic Method Binding Virtual- and Non-Virtual Methods, Abstract Classes, Member Lookup, Polymorphism, Object Closures Multiple Inheritance Semantic Ambiguities, Replicated Inheritance, Shared Inheritance, Mix-In Inheritance Unit-5 8. Concurrency Introduction Multiprocessor Architecture Categories of concurrency Motivations for studying concurrency Introduction to Subprogram-level concurrency Fundamental concepts Language Design for concurrency, Design Issues Semaphores Introduction Cooperation synchronization Competition Synchronization Evaluation Monitors Introduction Cooperation synchronization Competition Synchronization Evaluation Message Passing Introduction The concept of Synchronous Message Passing Java Threads The Thread class, Priorities Competition Synchronization Cooperation Synchronization, Evaluation Text Books: 1.Scott Programming Language Pragmatics, 3e(With CD) ISBN 9788131222560 Kaufmann Publishers, An Imprint of Elsevier, USA 2. Concepts of Programming Languages, Eighth Edition by Robert W. Sebesta, Pearson Education. 3. Introduction to Turbo Prolog by Carl Townsend 4. LISP 3rd edition by Patrick Henry Winston & Berthold Klaus Paul Horn (BPB) Additional Reading: Programming Languages: Principles and Paradigms, M. Gabbrielli, S. Martini, Springer, ISBN: 9781848829138
11 M.Sc. (Computer Science)
Plain Text and Cipher Text Substitution Techniques Transposition Techniques Symmetric and Asymmetric key cryptography Unit-4 8. Symmetric Key Algorithms Algorithms types and modes DES 9. Asymmetric key Algorithms RSA Symmetric and Asymmetric key Cryptography Digital Signatures 10. Digital Certificates Introduction Digital Certificates Unit-5 11. Internet Security Protocols Secure Socket Layer TLS SHTTP TSP SET SSL Verses SET 3-D Secure Protocol Electronic Money Email Security Firewalls IP Security VPN 12. User Authentication Passwords Certificate-based Authentication Kerberos Security Handshake Pitfalls Text Books: TCP / IP Protocol Suite Fourth Edition Behrouz A. Forouzan Computer Networks Fourth Edition Andrew Tanenbaum Cryptography and Network Security Second Edition Atul Kahate Supplementary but very useful references/texts: (Few of the references below contain latest research and trends related to Networks and Security and are useful for seminar/presentations by the students.) 1. Computer Network Security, Kizza, Springer, 9780387204734 2. Guide to Computer Network Security, Kizza, Springer, 978-1-84800-916-5 3. Network Security, Harrington, Elsevier, ISBN 9788131202166 4. Douglas E. Comer, Internetworking with TCP/IP, Vol. 1, Principles, Protocols
13 M.Sc. (Computer Science)
and Architecture Fifth Edition, Prentice Hall, 2000, ISBN 0-13-018380-6. 5. William Stallings, Data and Computer Communications , Seventh Edition, Pearson Education 6. Douglas E. Comer, Internetworking with TCP/IP, Vol. 2, Design, Implementation and Internals, Prentice Hall Publisher. 7. Internetworking with TCP/IP, Vol. 3, Client-server Programming and Applications by Douglas E. Comer, Prentice Hall Publisher. (Excellent reference for distributed programming over TCP/IP networks) 8. Richard Stevens, TCP/IP Illustrated, Vol. 1, by, Addison Wesley (A very practical book with lots of useful network diagnostic tools and programs.) 9. Craig Hunt, TCP/IP Network Administration OReilly & Associates, Inc. (A must for network and system administrators dealing with internetworking.) 10. L. Peterson and B. Davie. Morgan , Computer Networks: A Systems Approach by Kaufmann Publishers Inc., ISBN 9788131210451 11. J. Kurose, K. Ross ``Computer Networking: A Top-Down Approach Featuring the Internet'' Addison-Wesley, '00 12. William Stallings," Cryptography And Network Security Prentice Hall /Pearson Education Guidelines to paper setters: Frame formats of protocols are not expected Problems should be asked on Routing Protocols , TCP, Cryptography, RSA
14
Concurrency control Foundations of distributed concurrency control Distributed deadlocks Concurrency control based on timestamps Optimistic methods for distributed concurrency control Unit-5 Distributed DBMS reliability Reliability concepts & measures Failures in DDBMS Local reliability protocols Distributed reliability protocols Dealing with site failures Network partitioning Reference Books: 1. Principles of Distributed Database Systems; 2nd Edition By M. Tamer Ozsu and Patrick Valduriez Publishers: Pearson Education Asia ISBN: 81-7808-375-2 2. Distributed Database; Principles & Systems By Stefano Ceri and Giuseppo Pelagatti Publications: McGraw-Hill International Editions ISBN: 0-07-010829-3 3. Database systems (2nd edition) By Raghuramakrishnan and Johannes
16
Text Books Ellis Horowitz, Sartaj Sahni & Sanguthevar Rajasekaran, Computer Algorithms, Galgotia. T. Cormen, C. Leiserson, & R. Rivest, Algorithms, MIT Press, 1990 1 References Texts 1) A. Aho, J. Hopcroft, & J. Ullman, The Design and Analysis of Computer Algorithms, Addison Wesley, 1974 2) Donald Knuth, The Art of Computer Programming (3 vols., various editions, 1973-81), Addison Wesley 3) The Algorithm Manual, Steven Skiena, Springer ISBN:9788184898651 4) Graphs, Networks and Algorithms, Jungnickel, Springer, ISBN: 3540219056
18
19
Prolog: Sample Set of: 1. Prolog programs doing formal reasoning and resolutions proofs. e.g. Consider the following statements: John likes all kinds of food. Apples are food. Chicken is food. Anything anyone eats, and is still alive, means whatever he ate was a food. Sue eats everything Bill eats. Bill eats Peanuts and is still alive. Write a Prolog program to prove that John likes Peanuts, and to answer the question What food does Sue eat? 2. Simple Prolog programs using facts, rules, built-in I/O predicates, fail, recursion with or without repeat predicate, and cut predicate.
20 M.Sc. (Computer Science)
1.7 CS -107 Practical Based on Course: CS-102 Suggested List 1.Write a C prog that contains a string (char pointer) with a value Hello World .The program should XOR each character in this string with 0 & display the result. Repeat the exercise by an XOR operation with 1. 2. Study phishing in more detail. Find out which popular bank sites have been phished and how . 3. Think about offering phishing prevention techniques. Which ones of them would be most effective and why ? 4. Encrypt the following message by using ___________ technique. Key is _____. 5. Write C/Java program to implement DES algorithm logic. 6. Write C/Java program that generate the message digest of a given number. 7. Write a Java prog , which accepts the details of a base-64 encoded digital certificate, parses it and displays its main contents such as issuer name, serial number, subject name , valid from and valid to. 8. Write a C program to perform Base-64 encoding on a 24 bit input. 9. SSL talks about security at the transport layer. What if we want to enforce security at the lower layers 10. Investigate how to use SSL in Java & .Net. Write an SSL client and server in these technologies. 11. Implement Kerberos. . Download &Study at least one free real life firewall product. 13.Study how VPN is implemented.
21
1.8 CS -108 Practical based on Course CS-103 Suggested Topic1. Problems on Fragmentation: Small case studies, where each case specifies the database schema, the workload for the database is given. Based on this info, the fragmentation has to be done ( horizontal or vertical) 2. Problems on deriving & classifying the join graphs, given the relation fragments, of a database 3. Problems on query optimization ( Exrecise problems given in reference book , Database systems By Raghuramakrishnan ( the 3rd reference book given in the syllabus) 4. Problems on concurrency control algorithms (similar to the problems given in exercises of reference book 1 & 2)
22
23
24
Filter - Geometric Transformations, Spatial Transformations, Gray-Level Interpolation Unit-4 Color Image Processing Color Fundamentals, Color Models - RGB, CMY, HSI; Pseudocolor Image Processing Intensity Slicing, Gray Level to Color Transformations; Basics of Full-Color Image Processing, Color Transformations - Formulation, Color Complements, Color Slicing, Tone and Color Corrections, Histogram Processing; Smoothing and Sharpening, Color Segmentation, Color Edge Detection, Noise in Color Images Morphological Image Processing Some Basic Concepts from Set Theory, Logic Operations Involving Binary Images, Dilation and Erosion, Opening and Closing, The Hit-or-Miss Transformation, Some Basic Morphological Algorithms - Boundary Extraction, Region Filling, Extraction of Connected Components, Convex Hull, Thinning, Thickening; Extensions to Gray-Scale Images Unit-5 Image Segmentation Detection of Discontinuities - Point Detection, Line Detection, Edge Detection, Edge Linking and Boundary Detection - Local Processing, Global Processing via the Hough Transform, Thresholding - The Role of Illumination, Basic Global Thresholding, Basic Adaptive Thresholding, Optimal Global and Adaptive Thresholding, Use of Boundary Characteristics for Histogram Improvement and Local Thresholding, Thresholds Based on Several Variables, Region-Based Segmentation Region Growing, Region Splitting and Merging, Representation and Description Chain Codes, Polygonal Approximations, Signatures, Boundary Segments, Skeletons, Simple Boundary Descriptors, Shape Numbers, Fourier Descriptors, Statistical Moments, Simple Regional Descriptors, Topological Descriptors, Texture, Moments of Two-Dimensional Functions Use of Principal Components for Description, Relational Descriptors Text Book: 1. Gonzalez, R. C. and Woods, R. E. [2002/2008], Digital Image Processing, 2nd/3rd ed., Prentice Hall Reference Books: 1. Sonka, M., Hlavac, V., Boyle, R. [1999]. Image Processing, Analysis and Machine Vision ( 2 nd edition), PWS Publishing, or (3rd edition) Thompson Engineering, 2007 2. Gonzalez, R. C., Woods, R. E., and Eddins, S. L. [2009]. Digital Image Processing Using MATLAB, 2nd ed., Gatesmark Publishing, Knoxville, TN. 3. Anil K. Jain [2001], Fundamentals of digital image processing (2nd Edition), Prentice-Hall, NJ 4. Willian K. Pratt [2001], Digital Image Processing (3rd Edition), , John Wiley & Sons, NY 5. Burger, Willhelm and Burge, Mark J. [2008]. Digital Image Processing: An Algorithmic Introduction Using Java, Springer 6. Digital Image Analysis (With CD-ROM), Kropatsch, Springer, ISBN 978038795066
26 M.Sc. (Computer Science)
27
Unit-2 3. Process Environment, Process Control and Process Relationships Process states and transitions, the context of a process, saving the context of a process, sleep, process creation, signals, process termination, awaiting process termination, invoking other programs, the user id of a process Process termination, environment list, memory layout of a C program, shared libraries, memory allocation, environment variables, setjmp and longjmp, getrlimit and setrlimit, process identifiers, fork, vfork, exit, wait and waitpid, waitid, wait3 and wait4, race conditions, exec, changing user IDs and group IDs, interpreter files, system function, process accounting, user identification, process times, Terminal logins, network logins, process groups, sessions, controlling terminal, tcgetpgrp, tcsetpgrp, and tcgetsid functions, job control, shell execution of programs, orphaned process groups. The Process ID, Running a New Process, Terminating a Process, Waiting for Terminated Child Processes, Users and Groups, Sessions and Process Groups, Daemons, Process Scheduling, Yielding the Processor, Process Priorities, Processor Affinity . Unit-3 4. Memory Management The Process Address Space, Allocating Dynamic Memory, Managing Data Segment, Anonymous Memory Mappings, Advanced Memory Allocation, Debugging Memory Allocations, Stack-Based Allocations, Choosing a Memory Allocation Mechanism, Manipulating Memory, Locking Memory, Opportunistic Allocation. Unit-4 5. Signal Handling Signal concepts, signal function, unreliable signals, interrupted system calls, reentrant functions, SIGCLD semantics, reliable-signal technology, kill and raise, alarm and pause, signal sets, sigprocmask, sigpending, sigaction, sigsetjmp and siglongjmp, sigsuspend, abort, system function revisited, sleep, job-control signals. Signal Concepts, Basic Signal Management, Sending a Signal, Reentrancy, Signal Sets, Blocking Signals, Advanced Signal Management, Sending a Signal with a Payload. Unit-5 6. Windows Internals Foundation Concepts, utilities and Terms Services, Functions, and Terms, Processes, Threads, and Jobs, Virtual Memory, Kernel Mode vs. User Mode Introduction to the Sysinternals Troubleshooting Utilities (File and Disk, Process, Security, System Information and Miscellaneous Utilities) System Architecture Requirements and Design Goals, OS Model, Architecture Overview (Portability, Symmetric Multiprocessing) Process Internals
28 M.Sc. (Computer Science)
Data Structures, Kernel variables, Performance Counters, Relevant Functions Protected Processes Flow of CreateProcess Stage 1 through Stage 7, New Process Thread Internals Data Structures, Kernel Variables, Performance Counters, Relevant Functions, Birth of a Thread Examining Thread Activity Limitations on Protected Process Threads Worker Factories (Thread Pools) Thread Scheduling Overview of Windows Scheduling, Priority Levels, Windows Scheduling APIs, Relevant Tools, Real-Time Priorities, Thread States, Dispatcher Database, Quantum, Scheduling Scenarios, Context Switching, Idle Thread,Priority Boosts Job Objects
Recommended Text: 1. Linux System Programming, OReilly, by Robert Love. 2. Windows Internals, Microsoft Press, by Mark E. Russinovich and David A. Soloman. 3. The Design of the UNIX Operating System, PHI, by Maurice J. Bach. 4. Advanced Programming in the UNIX Environment, Addison-Wesley, by Richard Stevens. 5. Guide to Assembly Language Programming in Linux, Sivarama P. Dandamudi, Springer 6. Professional Assembly Language, Richard Blum, Wrox, Wiley India
29
30
6. Software for data mining and applications of data mining R, Weka, Sample applications of data mining 7. Clustering k-means Expectation Maximization (EM) algorithm Hierarchical clustering, Correlation clustering Unit-5 8. Brief overview of advanced techniques Active learning Reinforcement learning Text mining Graphical models Web Mining Reference Books: 1. Data Mining: Concepts and Techniques, Han, Elsevier ISBN:9789380931913/ 9788131205358 2. Margaret H. Dunham, S. Sridhar, Data Mining Introductory and Advanced Topics, Pearson Education 3. Tom Mitchell, Machine Learning, McGraw-Hill, 1997 4. R.O. Duda, P.E. Hart, D.G. Stork. Pattern Classification. Second edition. John Wiley and Sons, 2000. 5. Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer 2006 6. Raghu Ramkrishnan, Johannes Gehrke, Database Management Sysstems, Second Edition, McGraw Hill International 7. Ian H.Witten, Eibe Frank Data Mining: Practical Machine Learning Tools and Techniques, Elsevier/(Morgan Kauffman), ISBN:9789380501864 8. [Research-Papers]: Some of the relevant research papers that contain recent results and developments in data mining field
31
32
1. Divide the data into 2 parts : part I containing a random set of 30 samples, and the rest into part II. 2. Use part I to get prior probabilities of each class. 3. First you will use only the first feature to classify the flowers into these 3 classes. Assume that the class conditional distribution of "sepal length" is Gaussian for each of the 3 classes. Estimate the parameters of the three distributions using maximum likelihood estimation. Use data in part II. 4. Using the parameters obtained above, classify the data in part II. Report on the number of errors. 5. Now use all four features in Step 3 above : assume that the class conditional distribution is a 4dimensional Gaussian. Repeat Step 4. Practical 5: Regression Build a linear regression model for the housing dataset from UCI Machine learning repository to reduce the dimensionality of data. Which are the features selected in this reduced dataset? Build a linear regression with the reduced dataset? Compare the two models built.
35
36
37
- Handover iv. Value Added Services - SMS Architecture, Mobile Originated and Mobile Terminated procedures - Cell Broadcast Service Architecture, Message Transfer Procedure - MMS Architecture, Protocol framework, Message Transfer Procedure - Location Services Logical Reference Model, Control Procedures, Network Architecture, determination of Location Information, Location based services v. GPRS Book1: Mobile Comm. By Jochen Schiller Book5:2G Mobile Networks: GSM and HSCSD By Nishit Narang and Sumit Kasera 5. Mobile IP i. Goals, assumptions and requirements ii. Entities and terminologies iii. Agent Discovery iv. Registration v. Tunneling and encapsulation vi. Reverse Tunneling vii. IPv6 viii. IP micro-mobility support Cellular IP, Hawaii, Hierarchical mobile IPv6 ix. Mobile Routing : Destination sequence distance Vector, Dynamic Source Routing, Alternative Matrix, Adhoc Routing Protocols -Flat, Hierarchical, Geographic-position-assisted Book1: Mobile Comm. By Jochen Schiller 6. Mobile TCP i. Traditional TCP - Congestion Control, Slow start, Fast retransmit / Fast recovery - Implications on mobility ii. Classical TCP improvements Indirect TCP, Snooping TCP, Mobile TCP, Fast retransmit / Fast recovery, Transmission / Timeout freezing, Selective Retransmission, Transaction oriented TCP iii. TCP over 2.5/3G wireless networks Book1: Mobile Communications By Jochen Schiller
39
iii. Making a connection using HTTP iv. Using datagram connection Any J2ME book 13. Wireless Messaging i. Architecture for Messaging application ii. Messaging API iii. Types of applications iv. Pros and cons of messaging References: http://java.sun.com/products/wma http://forum.nokia.com Books 1. Mobile Communications Jochen Schiller, Pearson Education, 2nd Edition 2. Pervasive Computing Technology and Architecture of Mobile Internet Applications Jochen Burkhardt, Dr. Horst Henn, Steffen Hepper, Klaus Rintdorff, Thomas Schack , Pearson Education 3. Wireless Java Programming with J2ME Yu Feng and Dr, Jun Zhu , Techmedia Publications, 1st edition 4. Complete Reference J2ME 5. Mobile Networks GSM and HSCSD Nishit Narang, Sumit Kasera, TataMcGrawHill 6. Mobile Computing Asoke K Talukdar, Roopa R. Yavagal, TataMcGrawHill
41
42
43
Electives
44
representations and persistence of DS, Revision of Graph algorithms: Network flows (max flow and min-cost flow/circulation) String algorithms: (10 Hrs) o String searching - (KnuthMorrisPratt algorithm, BoyerMoore string search algorithm, RabinKarp string search algorithm) o Suffix trees - mathematical properties of suffix trees o Applications of Suffix trees: regular expression searches using suffix trees; Finding all maximal pairs and maximal repeats, Patricia trees Intractable problems: approximation algorithms 1. Steiner tree and TSP 2. Steiner forest 3. Group Steiner trees 4. Set cover via primal-dual 5. k-median on a cycle Integer programming and optimization algorithms 1. Formulations, complexity and relaxations 2. discrete optimization, 3. cutting plane methods, 4. enumerative and heuristic methods 5. Convex programming algorithms: ellipsoid method, interior-point methods, proximalpoint methods. Preliminary reading: Introduction to Algorithms: by Cormen, T.H., C.E. Leiserson, R.L. Rivest, and C. Stein; MIT Press; ISBN: 9780262032933 The Algorithm Manual, Steven Skiena, Springer ISBN:9788184898651 Reference Books: Theory of Linear and Integer Programming: by Schrijver; John Wiley & Sons. ISBN: 9780471982326 Convex Optimization: by Boyd and Vandenberghe; Cambridge University Press; ISBN: 9780521833783 Approximation Algorithms: by Vazirani; Springer-Verlag: ISBN: 9783540653677 Advances in Steiner Trees (Combinatorial Optimization) by Ding-Zhu Du (Editor), J.M. Smith (Editor), J. Hyam Rubinstein (Editor); Springer; ISBN: 978-0792361107 Algorithms On Strings,Trees, And Sequences; by D. Gusfield; Cambridge University Press, (ISBN 052158519) Additional reading: Algorithmic Number Theory: by Bach and Shallit; MIT Press; ISBN: 9780262024051
45
Unit-4
Programs and Proofs o Equational reasoning o Proofs on program equivalence
Unit-5
Monads o IO monad o List monad o Maybe monad o State monad
Reference Books Haskell - The Craft of Functional Programming: by Simon Thompson, Addison-Wesley,
46 M.Sc. (Computer Science)
ISBN 0-201-34275-8 Types and Programming Languages, by Benjamin C. Pierce; The MIT Press; ISBN 0262162091 Additional reading: Haskell 98 language and libraries - the Revised Report: by Simon Peyton Jones; Cambridge University Press; ISBN 0521826144
47
3. CS-204/CS 304 -Elective Course: Linux Kernel Programming and Introduction to Device Drivers
Objectives: - Important concepts in OS kernel development getting hands-on Knowledge with Linux kernel - Getting to know the device driver programming. Pre-requisite: Should have done course on Advanced Operating System UNIX/LINUX Internals: as Operating System. Usage and Implementation of UNIX/LINUX System Calls Course Contents Unit-1 Introduction to the kernel design - monolithic Vs microkernel Empowering the kernel - drivers and module Communication with the userspace Memory Management issues in the kernel Unit-2 Accessing Hardware - address space concepts - memory mapped and I/O - Virtual devices, char devices Handling hardware events - interrupt handling - timers and polling Unit-3 Kernel source code organization - Linux kernel sources and organisation - Browsing and understanding the kernel sources - Common Techniques used during Linux kernel programming Linux module programming - Hello World - Basic Virtual device, char device, mknod, - Debugging typical kernel Oops - strace Unit-4 Communication with the userspace - ioctls, proc, Accessing Hardware - address space concepts - memory mapped and I/O kobjects and sysfs
48 M.Sc. (Computer Science)
Unit-5 Handling hardware events - interrupt handling, bottom halves, timers - softirq, tasklets and workqueues Sleeping and Locking - sleeping: interruptible, timed - locking: mutex, semaphores, spinlocks Exploring and developing a driver for any peripheral of one embedded device. (The college/Institute has complete freedom to include or exclude this chapter, as per the availability of proper devices. Not to be asked for any examination) Reference books Linux kernel development, Robert Love, Pearson, ISBN: 9788131758182 Professional Linux Kernel Architecture, Wolfgang Mauerer, Wrox (Wiley India), ISBN 9788126519293 Understanding the Linux Kernel, Bovet, Cesati, Shroff/O'Reilly ISBN: 9788184040838 Linux Device Drivers, 3rd Edition, Corbet, Rubini, Greg-Kroah Hartman , Shroff/O'Reilly , ISBN: 8173668493 ARM System Developer's Guide: Designing and Optimizing System Software - Sloss, Symes, Wright
49
50
51
i. Defining and using collections, Indexers, iterators ii. Type comparison, Value Comparison iii. Overloading Conversion operators, as operator d. Generics i. Using generics ii. Defining Generics, generic Interfaces, Generic methods, Generic Delegate Unit-II 3. Window Programming a. Window Controls i. Common Controls ii. Container Controls iii. Menus and Toolbars iv. Printing v. Dialogs b. Deploying Window Application i. Deployment Overview ii. Visual studio setup and Deployment project types iii. Microsoft windows installer architecture iv. Building the project : Installation Unit-III 4. Data Access a. File System Data b. XML c. Databases and ADO.NET d. Data Binding 5. Web Programming a. Basic Web programming b. Advanced Web programming c. Web Services d. Deployment Web applications Unit-IV 6. .NET Assemblies a. Components b. .NET Assembly features c. Structure of Assemblies d. Calling assemblies, private and shared assemblies 7. Networking a. Networking overview b. Networking programming options i. Webclient ii. WebRequest and WebResponse iii. TcpListener &TcpClient 8. Introduction to GDI+ a. Overview of Graphical Drawing b. Pen Class, Brush Class, Font Class
53 M.Sc. (Computer Science)
c. Using Images d. Clipping, Drawing2D, Imaging Unit-V 1. Introduction to ASP.NET 2. Server Controls and Variables, control Structures & Functions a. Forms, webpages, HTML forms, Webforms b. Request & Response in Non-ASP.NET pages c. Using ASP.NET Server Controls d. Datatypes : Numeric, text, arrays, datacollections e. Overview of Control structures f. Functions : web controls as parameters 3. Even Driven Programming and PostBack a. HTML events b. ASP.NET page events c. ASP.NET Web control events d. Event driven programming and postback 4. Reading from Databases a. Data pages b. ADO.NET 5. ASP.NET Server Controls a. ASP.NET Web Controls b. HTML Server Controls c. Web Controls 6. DOTNET assemblies and Custom Controls a. Introduction to Coolies, Sessions b. Session events c. State management Recommendations 7. Web Services a. HTTP, XML & Web services b. SOAP c. Building ASP.NET web service d. Consuming a web service Recommended Text and Reference books: Beginning Visual C#, Wrox Publication Professional Visual C#, Wrox Publication Inside C#, by Tom Archer ISBN: 0735612889 Microsoft Press 2001, 403 pages Beginning ASP.NET 3.5, Wrox Publication Programming ASP.NET 3.5 by Jesse Liberty, Dan Maharry, Dan Hurwitz, OReilly Illustrated C# 2008, Solis, Publication APRESS, ISBN 978-81-8128-958-2 Professional C# 4.0 and .NET 4by Christian Nagel, Bill Evjen, Jay Glynn, Karli Watson, Morgan Skinner, WROX Beginning C# Object-Oriented Programming By Dan Clark , Apress ADO.NET Examples and Best Practices for C# Programmers, By Peter D. Blackburn Apress Database Programming with C#, By Carsten Thomsen, Apress
54 M.Sc. (Computer Science)
- Message Authentication Code (MAC) & HMAC - Digital Signature techniques o Digital Signatures using DSA (Digital Signature Algorithm) o DSS (Digital Signature Standard) and RSA Digital Certificates and PKI (Public Key Infrastructure) - Digital Certificates - Private key management - PKIX Model - Public key cryptography standards (PKCS) - XML, PKI and Security Unit-IV Authentication techniques - Passwords - Authentication Tokens - Certificate Based Authentication - Biometric Authentication - Kerberos - Key Distribution Center(KDC) - Security Handshake Pitfalls Internet Security protocols - Secure Socket Layer (SSL) - Transport Layer Security (TLS) , Secure HTTP (SHTTP) - Time Stamping Protocol (TSP) - Secure Electronic Transaction ( SET) - 3-D Secure Protocol - Electronic Money - Email Security : SMTP, PEM, PGP, S/MIME - Wireless Application Protocol (WAP) Security - Security in GSM - Security in 3G Unit-V Server Security & Firewalls - Intrusion Detection, IDS, Intrusion Prevention Systems (IPS) - Introduction of Firewall, Packet Filters, - Application Level Gateways - Circuit Level Gateways - Firewall architecture - This chapter should also include detailed study of at least one free Firewall, IDS, IPS products with demonstrations ( For Internal evaluation only) Malicious Software - Malicious Code - Viruses : types, working of anti-virus software - Worms - Trojan horse, Spyware - Attacks: Hoax, Back-door, Brute Force, Dictionary, Spoofing, Denial-of-service, Man-inthemiddle, spam, E-mail Bombing & Spamming, Sniffer. Timing attack.
56 M.Sc. (Computer Science)
Recommended Books (Text and Reference): 1. Atul Kahate, "Cryptography And Network Security TMH 2. William Stallings," Cryptography and Network Security Prentice Hall /Pearson Education 3. Cryptography and Information Security By V.K. Pachghare ( PHI Learning Private Limited) 4. Introduction to Computer Security By Matt Bishop and Sathyanarayana (PEARSON EDUCATION) 5. Applied Cryptography Protocols, Algorithms, and Source Code in C By Bruice Schneier (Wiley India) 6. A Classical Introduction to Cryptography, Vaudenay, Springer, 978-0-387-25464-7 7. A Classical Introduction to Cryptography Exercise Book, Baigneres, Springer, 978-0-38727934-3
57
58
Unit-IV 6. Study of Frameworks: Frameworks as reusable chunks of architecture, The framework lifecycle, development using frameworks, Struts for Identify the MVC (Separation of layers) Configuration Declarative error handling Validation Framework Interaction with web application Case Study Use of Front controller & Service to worker patterns. Web Architectures Available o Baracudda, Webworks, Velocity, Struts etc. Selection of proper framework Comparing Frameworks Advantages of Struts 7. Components: Development using components, composition, components as units of deployment, different approaches to components (e.g. OMG, Microsoft, Sun), developing components. Unit-V 8. Case Study (struts) Take a Framework and find Patterns in the Frame work. Benefits of Patterns in the choosen Framework How Pattern interact in the selected Framework. Reference Books: Design Patterns Elements of Reusable Object-oriented Software By E. Gamma, Richard Helm, Ralph Johnson , John Vlissides (GoF) Struts By Chuck Canvass. Pattern Oriented Software Architecture (POSA) Volume 1. By: Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal. Software Architecture in Practice. By Len Bass, Paul Clements, Rick Kazman. Applying UML and Patterns By Craig Larman. Software Architecture- Perspectives on an emerging discipline by Mary shaw and David Garlan Software Design Methodology: From Principles to Architectural Styles, Zhu, Elsevier ISBN:9788131203569
59
8. CS 204//CS 304 -Elective Course: Software Testing Tools & Methodologies Unit-I
1. Preliminaries Software Quality Assurance Software Quality Software Testing Quality Control Quality Assurance Quality Factors Difference between quality control and quality assurance 2. Basics of Software Testing Inspection and Testing What is testing? Testing objectives Terms : fault, failure, error, fault masking, test, test case Fundamental Test process : test planning, test specification, Test execution, test records, test completion Prioritizing the tests Psychology of testing Difference between QA and Testing
Unit-II
3. Testing in the Software Lifecycle The general V-model Component Testing Integration testing System Testing Acceptance Testing Maintenance testing 4. Software Testing Process When Testing should occur? Requirement Phase Design Phase Program (Build) Phase Test Phase Installation Phase Maintenance Phase Testing activities Test Plan Test Development Test Execution Results Defect tracking
60 M.Sc. (Computer Science)
Reports
Unit-III
5. Test Plan Objective of the test Scope of the test Approach Resources Roles and Responsibilities Entry and Exit Criteria Schedules and mile stones Risks Defect Management Deliverables Sign off Case Study 6. Test Development Test Case Good Test case Successful Test case Test case design methods Business logic base test case design Input domain base test case design User interface base test case design Common Mistakes in writing Test case Case Study
Unit-IV
7. Test Execution What is it? Why is it important? Who does it? How? 8. Defect tracking Defects Variance from product specifications Variance from customer/user expectation Purpose for recording defects Severity versus Priority What should be done after a bug is found? Defect Classification Defect Severity Defect Priority Defect log example
61 M.Sc. (Computer Science)
9. Test Metrics Functional or Test Coverage Metric Function Test Metric Software Release Metrics Software Maturity Metric Reliability Metric 10. Test Reports Interim Reports Functional Testing Status Functions Working Timeline Expected verses Actual Defects Detected Defects Detected verses Corrected Gap Defect Distribution Relative Defect Distribution Testing Actions Final Test Report 11. Levels of Testing Levels of Testing Entry and exit Criteria for each level of testing Integration Testing System Testing User Acceptance Testing
Unit-V
12. Software Testing Techniques Static and Dynamic Testing White Box Testing Basis Path Testing Control Structure Testing Functional Testing o Black Box Testing Equivalence Class Testing Boundary Value Testing Comparison Testing Graph based Testing o Incremental Integration Testing o Integration Testing o Regression Testing o Smoke Testing o Alpha Testing o Beta Testing o System Testing o Recovery Testing o Security Testing
62 M.Sc. (Computer Science)
o Sanity Testing o End-to-End Testing o User Acceptance Testing o Usability Testing o Compatibility Testing o Install/Uninstall Testing Non-Functional Testing Performance Testing o Load Testing o Stress Testing o Endurance Testing o Robustness Testing o Scalability Testing o Case examples on each type of testing 13. Test Tools Types of test tools Selection and use of test tools References: Cem Kaner, Jack Falk, and Hung Quoc Nguyen, Testing Computer Software, Second edition, Wiley, New York, 1999. Practical Software Testing: A Process-Oriented Approach, Burnstein, Springer, ISBN 978-818128-089-3 Edward Kit, Software Testing in the Real World: Improving the Process, Addison Wesley, 1995. Glenford J. Myers, The Art of Software Testing, Wiley, New York, 1979. Elfriede Dustin, Jeff Rashka, and John Paul, Automated Software Testing: Introduction, Management, and Performance, Addison Wesley, Reading, Mass., 1999. Frank P. Ginac, Customer Oriented Software Quality Assurance, Prentice-Hall, Upper Saddle River, NJ, 1998. Alka Jarvis and Vern Crandall, Inroads to Software Quality: "How To" Guide and Toolkit, Prentice-Hall, Upper Saddle River, NJ, 1997. Stephen H. Kan, Metrics and Models in Software Quality Engineering Addison Wesley, Reading, Mass., 1995. Michael R. Lyu, Ed., Handbook of Software Reliability Engineering McGraw-Hill, New York, 1996. William E. Perry, How to Test Software Packages, Wiley, New York, 1986. Stephen R. Schach, Classical and Object-Oriented Software Engineering with UML and Java, Fourth edition, McGraw-Hill, Boston, 1999. Textbook for COSC 158 Systems Analysis. Robert L. Baber, Error-Free Software: Know-how and Know-why of Program Correctness, Wiley, New York, 1991. Program proving. Richard Fairley, Software Engineering Concepts, McGraw-Hill, New York, 1985. John Musa, Software Reliability Engineering, McGraw-Hill, New York, 1989. Assumes an organization at least at CMM level 3. Jerry Peek, Tim O'Reilly, and Mike Loukides, Unix Power Tools, O'Reilly, Sebastopol, CA. Especially SCCS, p. 366.
63 M.Sc. (Computer Science)
Thomas C. Royer, Software Testing Management -- Life on the Critical Path, Prentice Hall, Englewood Cliffs, NJ, 1993. Edward Yourdon, Structured Walkthroughs, Yourdon Press, Englewood Cliffs, NJ, 1989.
64
Unit-II
2. Random numbers Pseudo random numbers, methods of generating random varieties, discrete and continuous distributions, testing of random numbers.
Unit-III
3. Design of simulation experiments problem formulation , data collection and reduction, time flow mechanism , key variables, logic flow chart, starting condition, run size, experimentaldesign consideration, output analysis and interpretation validation.
Unit-IV
4. Simulation language comparison, and selection of simulation languages, study of any one simulation language.
Unit-V
5. Case Studies Development simulation models using the simulation language studied for systems like queuing systems, production systems, inventory systems. BOOKS: 1. Simulation, 4e, Ross, Elsevier, ISBN-9788131214626 2. Theory of Modeling and Simulation, 2e, Zeigler, Elsevier, ISBN-9788131207406 3. Modeling and Simulation: Exploring Dynamic System Behaviour, Birta, Springer, IBSN 978-81-8489-365-6 4. Jerry Banks and John, S. Carson, "Discrete Event System Simulation" PHI 5. Shannon, R.E., "Systems Simulation, The Art and Science" , PHI
65
Unit-II
Real time system concepts Foreground/ background systems Critical section of code Resource, shared resource Multitasking, task, task switch Kernel, scheduler, non-preemptive kernel, preemptive kernel Reentrancy, round-robin scheduling Task priority, static priority, dynamic priority, priority inversions, assigning task priorities Mutual exclusion, deadlock, synchronization, event flags, intertask communication Interrupts : latency, response, recovery, ISR processing time, NMI Note: For C implementation of above concepts, please refer to chapters 4,5,6,7 of the book An Embedded Software Primer by David E. Simon published by Pearson Educations
Unit-III
Writing software for embedded systems The compilation process : compile, link, load Cross compilers Run-time-libraries : processor dependent, I/O dependent, system calls, exit routines Writing a library, using alternative libraries Porting Kernels C extensions for embedded systems Buffering and other data structures Linear buffers, Directional buffers, double buffering, Buffer exchange, Linked lists, FIFO, Circular buffers, Buffer underrun and overrun, Allocating buffer memory, Buffer leakage Downloading
66
Unit-IV
Emulation and Debugging techniques Debugging techniques: HLL simulation, low level simulation, on-board debugger, task level debugging, symbolic debug Emulation Optimization problems Basic design using RTOS Overview Principles Example Encapsulating semaphores and queues Hard real time scheduling considerations Saving memory space Saving power
Unit-V
Real time without RTOS Choosing the SW environment Deriving real time performance from non-real time system Scheduling and data sampling Controlling from an external switch Problems Reference books: 1. Embedded Systems Design, 2e, Heath, Elsevier, ISBN:9788181479709 2. Embedded Systems Design with FPGAs, Saas, Elsevier, ISBN: 9789380501918 3. Programming Embedded Systems Michael Barr 4. Embedded Systems Building Blocks _ Jean J. Labrosse 5. An Embedded Software Primer _ David E. Simon published by Pearson Educations
67
Unit-I
Classic theory of compilers Scanning (Lexical analysis) o It is expected to cover Lex utility in depth and the student should be able to design the lexical analyzer for any given language set. While designing the lexical analyzer, the paper work should be done using the concepts of DFA,NFA, RE etc and then the lex program to be written. o Scanning in 2 commercial compilers : case study Parsing (Syntax analysis) o It is expected to cover YACC utility in depth and the student should be able to design a LALR parser for the given language set and that should call a lex utility for the token separation. While designing the parser, paper works should be done using parse tree creation.
Unit-II
o Parsing in 2 commercial compilers : case study Semantic analysis o Attributes and attribute grammars o Algorithms for attribute computations o Symbol table o Data types and type checking o Semantic analysis in 2 commercial compilers : case study Runtime Environments
Unit-III
o o o o o Memory organization during program execution Fully static runtime environments Stack based runtime environments Dynamic memory Parameter passing mechanisms Code generation o Intermediate code and data structures for code generation o Basic code generation techniques o Code generation 68 M.Sc. (Computer Science)
Of data structure references Of control statements and logical expressions Of procedure and function calls o Code generation in 2 commercial compilers : case study Optimization and data flow analysis
Unit-IV
o o o o o o o o o o o o Principal source of optimization Optimization of basic blocks Loops in flow graphs Global data flow analysis Interactive solution of data flow equations Code improving transformations Dealing with aliases Data flow analysis of structures flow graphs Efficient data flow analysis A tool for data flow analysis Estimation of types Symbolic debugging of optimized code.
Unit-V
Implementation of TINY sample language based on each topic Scanning (Lexical analysis) : TINY sample language and Compiler and implementation of TINY Compiler Parsing (Syntax analysis) : Syntax of TINY Language, RDP for TINY Language and generation of TINY parser using YACC Semantic analysis : A semantic analyzer for TINY language Code generation : Simple Optimizations for TINY code generator (The language details and the guidance regarding each of the above points should be given the lectures.) Reference books 1. Engineering-A Compiler, 2e, Cooper, Elsevier, ISBN:9789380931876 2. Advanced Compiler Design and Implementation, Muchnick,Elsevier,ISBN-9788131214039 3. Compiler Construction by Loudan, 4. Lex and Yacc by OReally publications 5. Compiler Design using FLEX and YACC by DAS, PHI 6. Compilers: Principles, Techniques, and Tools By Aho, Sethi, Ullman
69
Unit-I
1. Introduction to Artificial Intelligence - What is AI? - Early work in AI - AI and related fields - AI problems and Techniques 2. Problems, Problem Spaces and Search - Defining AI problems as a State Space Search: example - Production Systems - Search and Control Strategies - Problem Characteristics - Issues in Design of Search Programs - Additional Problems
Unit-II
3. Heuristic Search Techniques - Generate-and-test - Hill Climbing - Best First Search - Problem Reduction - Constraint Satisfaction - Mean-Ends Analysis
Unit-III
4. Knowledge Representation - Representations and Mappings - Approaches to Knowledge Representation - Knowledge representation method - Propositional Logic - Predicate logic - Representing Simple facts in Logic - Representing Instances and Isa relationships - Computable Functions and Predicates - Resolution - Forward and backward chaining
70
Unit-IV
5. Slot and Filler Structures - Weak Structures - Semantic Networks - Frames - Strong Structures - Conceptual Dependencies - Scripts
Unit-V
6. Game Playing - Minimax Search Procedures - Adding alpha-beta cutoffs - Uncertianty Reasoning: Basic Probabilty Axioms, Baye's Rule, Baysian Classification, Certainty Factor Theory, Dempster Shafar Theory. 7. Learning - What is learning? - Rote Learning - Learning by taking advice - Learning in problem solving - Learning from examples - Explanation based learning Practical Works: - To implement the AI concepts using programming language PROLOG. Reference books 1. Computational Intelligence, Eberhart, Elsevier, ISBN 9788131217832 2. Artificial Intelligence: A New Synthesis, Nilsson, Elsevier, ISBN 9788181471901 3. Artificial Intelligence, Tata McGraw Hill, 2nd Edition, by Elaine Rich and Kevin Knight 4. Introduction to Artificial Intelligence and Expert System, Prentice Hall of India Pvt. Ltd., New Delhi, 1997, 2nd Printing, by Dan Patterson.
71
4 Guide Line
of Project (Minor/Major)
72
PROJECT STRUCTURE
INTRODUCTION
The project report should be documented with an engineering approach to the solution of the problem that you have sought to address. The project report should be prepared in order to solve the problem in a methodical and professional manner, making due references to appropriate techniques, technologies and professional standards. You should start the documentation process from the first step of software development so that you can easily identify the issues to be focused upon in the ultimate project report. You should also include the details from your project notebook, in which you would have recorded the progress of your project throughout the course. The project report should contain enough details to enable examiners to evaluate your work. The details, however, should not render your project report as boring and tedious. The important points should be highlighted in the body of the report, with details often relegated to appendices. This unit covers all the details on the structure of mini project report contents; it also contains detailed explanations on each of these contents.
OBJECTIVES
After going through this unit, you should be able to: demonstrate a systematic understanding of project contents; understand methodologies and professional way of documentation; know the meaning of different project contents, and understand established techniques of project report development.
73
You understand the wider context of computing by relating your choice of the project, and the approach you take, to existing products or research. You can apply the theoretical and practical techniques taught in the course to the problem you are addressing and that you understand their relevance to the wider world of computing. You are capable of objectively criticising your own work and making constructive suggestions for improvements or further work based on your experiences so far. You can explain your thinking and working processes clearly and concisely to others through your project report.
CHAPTER 2: SURVEY OF TECHNOLOGIES CHAPTER 3: REQUIREMENTS AND ANALYSIS 3.1 Problem Definition 3.2 Requirements Specification 3.3 Planning and Scheduling 3.4 Software and Hardware Requirements 3.5 Preliminary Product Description 3.6 Conceptual Models CHAPTER 4: SYSTEM DESIGN 4.1 Basic Modules 4.2 Data Design 4.2.1 Schema Design 4.2.2 Data Integrity and Constraints 4.3 Procedural Design 4.3.1 Logic Diagrams 4.3.2 Data Structures 4.3.3 Algorithms Design 4.4 User interface design 4.5 Security Issues 4.6 Test Cases Design CHAPTER 5: IMPLEMENTATION AND TESTING 5.1 Implementation Approaches 5.2 Coding Details and Code Efficiency 5.2.1 Code Efficiency
75
5.3 Testing Approach 5.3.1 Unit Testing 5.3.2 Integrated Testing 5.4 Modifications and Improvements CHAPTER 6: RESULTS AND DISCUSSION 6.1 Test Reports 6.2 User Documentation CHAPTER 7: CONCLUSIONS 7.1 Conclusion 7.2 Limitations of the System 7.3 Future Scope of the Project REFERENCES GLOSSARY APPENDIX A APPENDIX B
EXPLANATION OF CONTENTS
Title Page Sample format of Title page is given in Appendix 1 of this block. Students should follow the given format. Original Copy of the Approved Proforma of the Project Proposal Sample Proforma of Project Proposal is given in Appendix 2 of this block. Students should follow the given format. Certificate of Authenticated work Sample format of Certificate of Authenticated work is given in Appendix 3 of this block. Students should follow the given format.
76
Role and Responsibility Form Sample format for Role and Responsibility Form is given in Appendix 4 of this block. Students should follow the given format. Abstract This should be one/two short paragraphs (100-150 words total), summarising the project work. It is important that this is not just a re-statement of the original project outline. A suggested flow is background, project aims and main achievements. From the abstract, a reader should be able to ascertain if the project is of interest to them and, it should present results of which they may wish to know more details. Acknowledgements This should express your gratitude to those who have helped you in the preparation of your project. Table of Contents: The table of contents gives the readers a view of the detailed structure of the report. You would need to provide section and subsection headings with associated pages. The formatting details of these sections and subsections you will find in unit 2 of this block. Table of Figures: List of all Figures, Tables, Graphs, Charts etc. along with their page numbers in a table of figures. Chapter 1: Introduction The introduction has several parts as given below: Background: A description of the background and context of the project and its relation to work already done in the area. Summarise existing work in the area concerned with your project work. Objectives: Concise statement of the aims and objectives of the project. Define exactly what you are going to do in the project; the objectives should be about 30 /40 words. Purpose, Scope and Applicability: The description of Purpose, Scope, and Applicability are given below: Purpose: Description of the topic of your project that answers questions on why you are doing this project. How your project could improve the system its significance and theoretical framework. Scope: A brief overview of the methodology, assumptions and limitations. You should answer the question: What are the main issues you are covering in your project? What are the main functions of your project? Applicability: You should explain the direct and indirect applications of your work. Briefly discuss how this project will serve the computer world and people. Achievements: Explain what knowledge you achieved after the completion of your work. What contributions has your project made to the chosen area? Goals achieved - describes the degree to which 77 M.Sc. (Computer Science)
the findings support the original objectives laid out by the project. The goals may be partially or fully achieved, or exceeded. Organisation of Report: Summarising the remaining chapters of the project report, in effect, giving the reader an overview of what is to come in the project report. Chapter 2: Survey of Technologies In this chapter Survey of Technologies you should demonstrate your awareness and understanding of Available Technologies related to the topic of your project. You should give the detail of all the related technologies that are necessary to complete your project. You should describe the technologies available in your chosen area and present a comparative study of all those Available Technologies. Explain why you selected the one technology for the completion of the objectives of your project. Chapter 3: Requirements and Analysis Problem Definition: Define the problem on which you are working in the project. Provide details of the overall problem and then divide the problem in to sub-problems. Define each sub-problem clearly. Requirements Specification: In this phase you should define the requirements of the system, independent of how these requirements will be accomplished. The Requirements Specification describes the things in the system and the actions that can be done on these things. Identify the operation and problems of the existing system. Planning and Scheduling: Planning and scheduling is a complicated part of software development. Planning, for our purposes, can be thought of as determining all the small tasks that must be carried out in order to accomplish the goal. Planning also takes into account, rules, known as constraints, which, control when certain tasks can or cannot happen. Scheduling can be thought of as determining whether adequate resources are available to carry out the plan. You should show the Gantt chart and Program Evaluation Review Technique (PERT). Software and Hardware Requirements: Define the details of all the software and hardware needed for the development and implementation of your project. Hardware Requirement: In this section, the equipment, graphics card, numeric co-processor, mouse, disk capacity, RAM capacity etc. necessary to run the software must be noted. Software Requirements: In this section, the operating system, the compiler, testing tools, linker, and the libraries etc. necessary to compile, link and install the software must be listed.
78
Preliminary Product Description: Identify the requirements and objectives of the new system. Define the functions and operation of the application/system you are developing as your project. Conceptual Models: You should understand the problem domain and produce a model of the system, which describes operations that can be performed on the system, and the allowable sequences of those operations. Conceptual Models could consist of complete Data Flow Diagrams, ER diagrams, Object-oriented diagrams, System Flowcharts etc. Chapter 4: System Design Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation. Basic Modules: You should follow the divide and conquer theory, so divide the overall problem into more manageable parts and develop each part or module separately. When all modules are ready, you should integrate all the modules into one system. In this phase, you should briefly describe all the modules and the functionality of these modules. Data Design: Data design will consist of how you organise, managing and manipulate the data. Schema Design: Define the structure and explanation of schemas used in your project. Data Integrity and Constraints: Define and explain all the validity checks and constraints you are providing to maintain data integrity. Procedural Design: Procedural design is a systematic way for developing algorithms or procedurals. Logic Diagrams: Define the systematical flow of procedure that improves its comprehension and helps the programmer during implementation. e.g., Control Flow Chart, Process Diagrams etc. Data Structures: Create and define the data structure used in your procedures. Algorithms Design: With proper explanations of input data, output data, logic of processes, design and explain the working of algorithms. User Interface Design: Define user, task, environment analysis and how you intend to map those requirements in order to develop a User Interface. Describe the external and internal components and the architecture of your user interface. Show some rough pictorial views of the user interface and its components.
79
Security Issues: Discuss Real-time considerations and Security issues related to your project and explain how you intend avoiding those security problems. What are your security policy plans and architecture? Test Cases Design: Define test cases, which will provide easy detection of errors and mistakes with in a minimum period of time and with the least effort. Explain the different conditions in which you wish to ensure the correct working of your software. Chapter 5: Implementation and Testing Implementation Approaches: Define the plan of implementation, and the standards you have used in the implementation. Coding Details and Code Efficiency: Students not need include full source code, instead, include only the important codes (algorithms, applets code, forms code etc). The program code should contain comments needed for explaining the work a piece of code does. Comments may be needed to explain why it does it, or, why it does a particular way. You can explain the function of the code with a shot of the output screen of that program code. Code Efficiency: You should explain how your code is efficient and how you have handled code optimisation. Testing Approach: Testing should be according to the scheme presented in the system design chapter and should follow some suitable model e.g., category partition, state machine-based. Both functional testing and user-acceptance testing are appropriate. Explain your approach of testing. Unit Testing: Unit testing deals with testing a unit or module as a whole. This would test the interaction of many functions but, do confine the test within one module. Integrated Testing: Brings all the modules together into a special testing environment, then checks for errors, bugs and interoperability. It deals with tests for the entire application. Application limits and features are tested here. Modifications and Improvements: Once you finish the testing you are bound to be faced with bugs, errors and you will need to modify your source code to improve the system. Define what modification you implemented in the system and how it improved your system. Chapter 6: Results and Discussion Test Reports: Explain the test results and reports based on your test cases, which should show that your software is capable of facing any problematic situation and that it works fine in different conditions. Take the different sample inputs and show the outputs. User Documentation: Define the working of the software; explain its different functions, components with screen shots. The user document should provide all the details of your product
80
in such a way that any user reading the manual, is able to understand the working and functionality of the document. Chapter 7: Conclusions Conclusion: The conclusions can be summarised in a fairly short chapter (2 or 3 pages). This chapter brings together many of the points that you would have made in the other chapters. Limitations of the System: Explain the limitations you encounterd during the testing of your software that you were not able to modify. List the criticisms you accepted during the demonstrations of your software. Future Scope of the Project describes two things: firstly, new areas of investigation prompted by developments in this project, and secondly, parts of the current work that were not completed due to time constraints and/or problems encountered. REFERENCES It is very important that you acknowledge the work of others that you have used or adapted in your own work, or that provides the essential background or context to your project. The use of references is the standard way to do this. Please follow the given standard for the references for books, journals, and online material. GLOSSARY If you use any acronyms, abbreviations, symbols, or uncommon terms in the project report then their meaning should be explained where they first occur. If you go on to use any of them extensively then it is helpful to list them in this section and define the meaning. APPENDICES These may be provided to include further details of results, mathematical derivations, certain illustrative parts of the program code (e.g., class interfaces), user documentation etc.
Scheduling projects using both GANTT and PERT charts, Deciding the S/W requirement specifications and H/W requirement specifications, and Designing and constructing the entity-relationship (ER) diagram (for RDBMS related projects), data flow diagrams (level 0,1,2) (OR Object-oriented diagrams, System Flowcharts etc.) and data dictionary. Design Plan the systems design phase and distinguish between logical and physical design requirements, Create the systems flow charts and state transition diagrams, Describe all the modules and the functionality of modules, Design and evaluate system inputs and outputs, Design and evaluate user interfaces for input, and validity checks for input data, Perform normalisation for the unnormalised tables for RDBMS related projects, Design various test cases for different testing techniques/strategies, and Decide various data structures. Coding Performing coding according to the requirement and design document, Writing comments and description in coding, Using of naming convention of variable and functions, Explaining the exceptions handling and conditional checking, and Maintaining security. Testing Performing various system testing techniques/strategies to include the different phases of testing, Identifying key problems with the software and re-implementation with logical justification, and Generating various test reports. Students can select projects individually according to his interest and the complexity of the project. Guide The Mini-project guide is the person who motivates and helps students during the development of the project. The guide should take responsibility for guiding and approving different project processes,
82
including Analysis, Design, Coding, Testing, and also the editing of project reports. Moreover, the main responsibilities of a guide are: Dedicating adequate time to the student for providing effective supervision and encouragement, Making sure that the student chooses a manageable project topic, Providing critical comments on the students work and progress, Ensuring the student has access to necessary data, Encouraging the student to proceed in the intended direction and to agreed time limits, and Making sure that the project is the students own work.
83
Project Plan
A project plan should be included which provides an estimate of the time that you think you will require in order to work and meet each of your objectives. In your project plan avoid scheduling tasks linearly, try to overlap and tackle more than one task at any point of time. You should begin planning your report from the day you begin your Mini-project. The report is one of the products of your work, in the same way as a program is a product. You should discuss with your guide the way in which your work will be reported. You can produce an outline plan of your report after your first meeting with your guide. This plan will not be detailed, but you can gradually increase the amount of detail in the plan until it forms the complete basis for writing the report. The process of planning can help you sort out your ideas, make vague ideas precise and sequential. One common mistake students make is, to believe that a plan cannot be changed or that it is a sign of weakness to change a plan. A plan is another tool to be used to get work completed according to a satisfactory standard. It needs to be treated with as much respect as any other tool. At first, the plan might be in the list of chapter analyse headings. Next, one or more of the chapters can be broken down into sections, then the sections into subsections, and so on until a whole chapter is ready to be written. You may decide to split a chapter into two or more chapters or to merge two or more chapters into one. This means that you can use your plan to decide when to strengthen your report with some extra work, or when to move on to some new work. A less common mistake that students make is to think that their report has to be written in order, from the first page to the last. It is wise not to begin writing until you have some level of plan for the whole report, but you can write parts as you go along. For instance, when you have the material for your review of previous work, you can write that chapter. It is quite usual to write the inner chapters before the last chapter and then to write the introductory chapter as the last part you write.
report. It also provides the guide with an opportunity to make constructive comments on the written work completed at this stage.
Project Assessment
The project presentation and viva voce also contribute to the final assessment. The presentation will provide an opportunity for the student to set the work done into context and to identify the main features of the work. Student should have good understanding and knowledge of each and every phase of software development either its a group or individual project. In addition, the student will be expected to defend successfully the conclusions put forward in the report. The examiners will be looking for clear evidence that the student has a depth of understanding of the subject areas.
Project Proposal
As we have discussed earlier the project proposal should be prepared in consultation with your guide during the counselling sessions. The project proposal should clearly state the objectives of the project. The project work should compulsorily include the analysis phase of the software development. Front page The front page of the proposal should contain the project title, followed by your name and your guides name. The contents of this proposal report should contain the following: Structure
INTRODUCTION Background Objectives Purpose and Scope Purpose Scope 85 M.Sc. (Computer Science)
SURVEY OF TECHNOLOGIES REQUIREMENTS AND ANALYSIS Problem Definition Requirements Specification Planning and Scheduling Software and Hardware Requirements Preliminary Product Description Conceptual Models.
REFERENCES
The description of these topics are already explained in the previous unit, however, the references at this stage of the project proposal may be different from the references of the project report, so you should provide here a list of reference which is related to your project topic: literary and the review, survey of technologies that acts as a good reference to your work. This will demonstrate that your project is current and it is supported by articles, papers or books, which are accessible. (Refer to the reference in further sections). After finalising the proposal report, students should submit the project proposal report along with the proforma.
use of appendices. For example, software user instructions, detailed code listings, correspondence may be relegated to appendices. Note that spiral bindings are not suitable for handing in the project report. Project Report Layout Project report should contain all the details and text should be short and concise, lengthy reports may not be qualitative, and care should be taken to edit the material sensibly. The project report should normally be printed with single line spacing on A4 paper (one side only). Figures should be clearly drawn and all material should be reproducible by normal photocopy. All pages, tables and figures must be numbered and figures should have titles. Detailed information about the layout for the project proposal and report are also listed below: Font size and margin 1. The report is to be bound with a clear front cover. 2. The text is in 12-point Times New Roman font. 3. The pages are of A4 size, with margins as given below, except for the front cover, which has a specific format given in unit 1. Margins of pages should follow the following specifications. a. Left margin - 2 inch. from edge of paper. b. Right margin - 1 inch. from edge of paper. c. Top margin - 1 inch. from edge of paper. d. Bottom margin - 1 inch. from edge of paper. 4. The above margins shall be observed on charts, graphs, tables, and drawings. Folded papers or large size paper will not be accepted unless there is absolutely no other way for the material to be presented. Heading 1. Headings used in the project report should follow the following convention: 2. Main Headings or Chapter Headings a. Times Roman, 16 Font size (1,2,3 etc.) numerals. b. Capital and Bold. c. Must begin a new page and be centered. d. Main headings are to be titled names that reflect content of the text that follows. Main headings are not to be identified as chapters. e. The number of the headings shall be followed by a period and two spaces. f. Must precede the following text material by second heading by three spaces. 87 M.Sc. (Computer Science)
3. Second Headings a. Times Roman, 14 Font size, Bold, 2.1, 2.2, 2.3, etc. b. Must be centered and be typed in capital and lower case (sentence case) letters; i.e., the first letter of each word except conjunctions, prepositions, and articles must be a capital letter. Omit period at the end of the heading. c. The letter designation of the heading shall be followed by a period and two spaces. d. Must be four spaces below preceding text and three spaces ahead of succeeding text. 4. First sub-headings
a. Times Roman, 12 Font size, Bold, 2.2.1, 2.2.2, etc. b. Must be typed on separate lines beginning at the left margin line of the text, but need not begin on a new page. c. Must be typed in capitals and lower case letters except conjunctions, prepositions, and articles. d. The number designation of the heading shall be followed by a period and two spaces. Omit period at the end of the heading. e. Must be separated from the succeeding text by three spaces. 5. Second sub-headings (second sub-headings should be avoided if possible). a. Times Roman, 12 Font size, Bold. b. Must be typed on the same line as the text it introduces beginning at the left margin line of the text. c. Must be typed in sentence case. d. Must be followed by a period at the end of the heading and must be underscored by a line. e. The letter designation shall be followed by a period and two spaces.
Appendices re-start the section numbering, using capital letters as section labels and Arabic numerals as
sub-section labels (i.e., A.1, A.2,); appendix headers are in decreasing-sized fonts.
If a section is divided into sub-sections, it has at least two subsections. Similarly for subsections divided
sections are not divided into sub-sections. (Include in Main Heading or Chapter Heading). 88 M.Sc. (Computer Science)
Figure and Tables Each figure has a number and a caption below the figure. As given in the example of a Figure.
Figure 1: A typical computer network Each table has a number and a title above the table. As given in the example of a Table. Table 1: Comparison of various data structures
In particular, if there are technical details of the work done that might be useful to others who wish to build on this work, but that are not sufficiently important to the project as a whole to justify being discussed in the main body of the project, then they should be included as appendices.
A typical SRS should include following contents: Normally IEEE standard is followed.
TABLE OF CONTENTS Introduction Purpose Scope Definition Product and its function Benefits and Goals Overview. Overall Description Product Description Product Functioning Functions of Project Users of Project Assumptions made. Specific Requirements Interface Requirements User Requirements Hardware Requirements Software Requirements Logical Database Requirements. Basic Processing Actions of the System Appendices Input/Output Formats Instruction for Security Results of Fact Finding Data Model Functional Model Process Specification.
PROJECT CATEGORIES
You can select any one of following category for your Mini project. Application development Networking project System software Website development.
90
Visual Basic, Power Builder, X-Windows (X/lib, X/motif, X/Intrinsic), Oracle Developer 2000,VC++, Jbuilder Oracle, Ingres, Sybase, Progress, SQL Plus, Versant, MY SQL, SQL Server, DB2 C, C++, Java, VC++, C# NS2, MITS, NETSIM, NIST, CPSIM, INSANE, NEST, REAL, OPNET, JAVA PERL, SHELL Scripts (Unix), TcL/TK
RDBMS/BACK END
SCRIPTING LANGUAGES
RDBMS/BACK END
Oracle, Ingres, Sybase, Progress, SQL Plus, Versant, MY SQL, SQL Server, DB2 Dyalog APL, VB.Net, C#.Net, Visual C#.Net, Net, ASP.Net, Delphi COM/DCOM, Active-X, EJB, WINCE, MSMQ, BEA, MessageQ, MTS, CICS Device Drivers, RPC, Threads, Socket programming COBRA, TUXEDO, MQ SERIES DHTML, Java script, VB Script, Perl & CGI script, HTML, Java, Active X, RMI, CORBA, SWING, JSP, ASP, XML, EJB, Java Beans, Servlets, Visual Age for
.NET Platform
91