Vous êtes sur la page 1sur 91

Contents

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)

BASTAR VISHWAVIDYALAYA JAGDALPUR


Syllabus for M.Sc. (Computer Science) (Academic year 2012-2013) Course Structure The entire course is a Two years and Four semester full time course. For three semesters there will be four theory courses and Lab courses. The last semester will be project. Assessment Pattern

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

Max 100 100 100 100 50 50 100 50 (650+250) 900

Min 40 40 40 40 30 30 60 30

Max 50 50 50 50 50 250

Min 30 30 30 30 30 -

Teaching Load per Week L T P 4 2 4 3

4 3 15

2 3 10 2 4 4 6 4 20

Total (Paper+Internal)

M.Sc. (Computer Science)

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

Max 100 100 100 100 50 50 50 50 50 (650+250) 900

Min 40 40 40 40 30 30 30 30 30

Max 50 50 50 50 50 250

Min 30 30 30 30 30 -

Teaching Load per Week L T P 4 2 4 2

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 -

Teaching Load per Week L T P

100 50 50 50 50 50 100 100 100 (650+250) 900

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

Teaching Load per Week L T P

200

M.Sc. (Computer Science)

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)

M.Sc.(Computer Science)
1 First Year Semester-1

M.Sc. (Computer Science)

1.1 CS-101: Principles of Programming Languages


Course Prerequisites: It is assumed that student learning this course have the following background: Experience with an OOP language (such as Java or C++) Experience with a procedural language (such as C) Working knowledge of C, C++, and Java programming. Basic algorithms and data structure concepts. Why to study this course? To allow Informed Design Decisions Gives insight when debugging Permits effective use of compilers/linkers interpreters and language oriented tools. Helps to understand how language features work. Learn features, emulate missing features. Develop a greater understanding of the issues involved in programming language design and implementation Develop an in-depth understanding of functional, logic, and object-oriented programming paradigms Implement several programs in languages other than the one emphasized in the core curriculum (Java/C++) Understand design/implementation issues involved with variable allocation and binding, control flow, types, subroutines, parameter passing Develop thorough understanding of the compilation process To introduce several different paradigms of programming To gain experience with these paradigms by using example programming languages To understand concepts of syntax, translation, abstraction, and implementation Course Objectives: This course will prepare you to think about programming languages analytically: - Separate syntax from semantics - Compare programming language designs - Learn new languages more quickly - Use standard vocabulary when discussing languages - Understand basic language implementation techniques This course focuses on both: - Theory is covered by the textbook readings, lectures, and on the tests - Implementation is covered by the homework assignments

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

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)

1.2 CS102 - Advanced Networking


Unit-1 1. Review of Basic Concepts TCP/IP Protocol Suite Underlying Technologies : LAN (802.3) Wireless Lans (802.11) Point-to-point WANS Switched WANS 2. The Internet Layer Protocols Review of IPv4 Protocol IPv6 Transition from IPv4 to IPv6 ICMPv4 ICMPv6 3. Routing Protocols Forwarding Structure of a Router Routing Tables Intra And Inter-Domain Routing Distance Vector Routing RIP OSPF BGP Multicast Routing Unit-2 4. The Transport Layer The Transport Service Elements of Transport Protocols UDP TCP 5. Multimedia Digitizing Audio and Video Streaming stored Audio / Video Streaming Live Audio / Video Real-Time Interactive Audio / Video RTP RTCP Voice Over IP Unit-3 6. Introduction To Security The need for Security Security Approaches Principles of Security Types of Attacks 7. Cryptography: Concepts and Techniques Introduction
12 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

M.Sc. (Computer Science)

1.3 CS-103: Distributed Database Concepts


Pre-requisites: Students should be well-versed with the basic and advanced concepts of RDBMS Objectives: Main objective is to understand the principles and foundations of distributed databases. This course addresses architecture, design issues, integrity control, query processing and optimization, transactions, and concurrency control & distributed transaction reliability. Unit-1 Distributed databases: An overview Features of distributed Vs centralized databases Why DDB? DDBMS Promises / problem areas in implementing a DDB DDBMS Architecture DBMS Standardization Architectural models for DDBMS DDBMS architecture Distributed catalog management Unit-2 Distributed database design Alternative design strategies Distributed design issues Concepts of join graphs Fragmentation and allocation Overview of Query processing Query processing problems Objectives of query processing Complexity of relational algebra operators Characterization of query processors Layers of query processing Unit-3 Query decomposition & data localization Query decomposition Optimization of distributed queries Query optimization Centralized query optimization Join ordering in fragment queries. Distributed query optimization algorithms Centralized query optimization Join ordering in fragment queries Distributed query optimization algorithms Unit-4 Management of distributed transactions Framework for transaction management Supporting atomicity of distributed transactions Concurrency control of distributed transactions Architectural aspects of distributed transactions
15 M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

1.4 CS-104: Design and Analysis of Algorithms


Prerequisites Basic algorithms and data structure concepts. Basic programming concepts Objectives This course will prepare students in Basic Algorithm Analysis techniques and understand the use o asymptotic notation Understand different design strategies Understand the use of data structures in improving algorithm performance Understand classical problem and solutions Learn a variety of useful algorithms Understand classification o problems Unit-1 Analysis Algorithm definition, space complexity, time complexity, worst case best case average case complexity, asymptotic notation, sorting algorithms (insertion sort, heap sort) , sorting in linear time, searching algorithms, recursive algorithms ( Tower of Hanoi , Permutations). Unit-2 Design strategies Divide and conquer-control abstraction, binary search, merge sort, Quick sort, Strassens matrix multiplication Greedy method- knapsack problem, job sequencing with deadlines, Minimum-cost spanning trees, Kruskal and Prims algorithm, optimal storage on tapes, optimal merge patterns, Huffman coding Unit-3 Dynamic programming- matrix chain multiplication, . single source shortest paths, Dijkstras algorithm, Bellman- ford algorithm , all pairs shortest path, longest common subsequence, string editing, 0/1 knapsack problem, Traveling salesperson problem. Unit-4 Decrease and conquer: - DFS and BFS, Topological sorting, connected components Backtracking: General method, 8 Queens problem, Sum of subsets problem, graph coloring problem, Hamiltonian cycle Unit-5 Branch and Bound Technique : FIFO, LIFO, LCBB, TSP problem, 0/1 knapsack problem Transform and conquer:- Horners Rule and Binary Exponentiation Problem Reduction Problem classification Nondeterministic algorithm, The class of P, NP, NP-hard and NP- Complete problems, significance of Cooks theorem
17 M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

1.5 CS-105- Seminar


Suggested List of Seminar Topics: Wireless Security Wi-Fi and WIMAX Digital Certificates and Digital Signatures Mobile Security Public Key Infrastructure

19

M.Sc. (Computer Science)

1.6 CS-106: Practical Based on Course-CS-101


Principal of Programming Language LISP Sample Set: 1. Define a LISP function to compute sum of squares. 2. Define a LISP function to compute difference of squares. (if x > y return x2-y2, otherwise y2x2) 3. Define a Recursive LISP function to solve Ackermanns Function. 4. Define a Recursive LISP function to compute factorial of a given number. 5. Define a Recursive LISP function which takes one argument as a list and returns last element of the list. (do not use last predicate) 6. Define a Recursive LISP function which takes one argument as a list and returns a list except last element of the list. (do not use butlast predicate) 7. Define a Recursive LISP function which takes one argument as a list and returns reverse of the list. (do not use reverse predicate) 8. Define a Recursive LISP function which takes two arguments first, an atom, second, a list, returns a list after removing first occurrence of that atom within the list. 9. Define a Recursive LISP function which appends two lists together. 10. Define a recursive LISP function which takes 2 lists as arguments and returns a list containing alternate elements from each list. e.g. if L1=(1 5 7) and L2=(2 4 9 3) output should be (1 2 5 4 7 9 3)

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

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

1.9 CS -109 Practical Based on Course-CS-104


1. Problem Assignments A set of problems from the exercises of Text Book can be given as problem solving assignments 2. Programming Assignment Implementing a set of algorithms And comparing their performance on an input set.

23

M.Sc. (Computer Science)

M.Sc. (Computer Science)


First Year Semester-2

24

M.Sc. (Computer Science)

2.1 CS-201: Digital Image Processing


Unit-1 Introduction Definition of Digital Image Processing, The Origins of Digital Image Processing, Examples of Fields that Use Digital Image Processing - X-ray Imaging, Ultraviolet Band, Visible and Infrared Bands, Microwave Band, and Radio Band Imaging; Fundamental Steps in Digital Image Processing, Components of an Image Processing System, Digital Image Fundamentals Elements of Visual Perception, Light and the Electromagnetic Spectrum, Image Sensing and Acquisition - Single Sensor, Sensor Strips, Sensor Arrays, A Simple Image Formation Model; Image Sampling and Quantization - Spatial and Gray-Level Resolution, Aliasing and Moir Patterns, Zooming and Shrinking Digital Images; Some Basic Relationships Between Pixels Neighbors, Adjacency, Connectivity, Regions, and Boundaries, Distance Measures, Image Operations on a Pixel Basis; Linear and Nonlinear Operations Unit-2 Image Enhancement in the Spatial Domain Some Basic Gray Level Transformations - Negatives, Log, Power-Law, Piecewise-Linear Transformations; Histogram Processing - Histogram Equalization, Histogram Matching (Specification), Local Enhancement; Enhancement Using Arithmetic/Logic Operations - Image Subtraction, Image Averaging; Basics of Spatial Filtering, Smoothing Spatial Filters - Smoothing Linear and Order-Statistics Filters; Sharpening Spatial Filters - Use of Second Derivatives for Enhancement : The Laplacian, Use of First Derivatives for Enhancement: The Gradient; Combining Spatial Enhancement Methods Image Enhancement in the Frequency Domain Introduction to the Fourier Transform and the Frequency Domain - One-Dimensional Fourier Transform and its Inverse, Two-Dimensional DFT and Its Inverse, Filtering in the Frequency Domain, Correspondence between Filtering in the Spatial and Frequency Domains; Smoothing and Frequency-Domain Filters - Ideal , Butterworth, and Gaussian Lowpass Filters; Sharpening Frequency Domain Filters - Ideal , Butterworth, and Gaussian Highass Filters, Laplacian in the Frequency Domain, Unsharp Masking, High-Boost Filtering, and High-Frequency Emphasis Filtering; Homomorphic Filtering Implementation - Some Additional Properties of the 2-D Fourier Transform, Computing the Inverse Fourier Transform Using a Forward Transform Algorithm, More on Periodicity: the Need for Padding, The Convolution and Correlation Theorems, Summary of Properties of the 2-D Fourier Transform, The Fast Fourier Transform; Unit-3 Image Restoration A Model of the Image Degradation/Restoration Process, Noise Models, Restoration in the Presence of Noise Only Spatial Filtering - Mean, Order-Statistics, and Adaptive Filters Filters; Periodic Noise Reduction by Frequency Domain Filtering - Bandreject, Bandpass, and Notch Filters Filters; Estimating the Degradation Function - Estimation by Image Observation, Experimentation and Modeling; Inverse Filtering, Minimum Mean Square Error (Wiener) Filtering, Geometric Mean
25 M.Sc. (Computer Science)

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)

7. Digital Image Processing, 6e (With CD), Jhne, Springer, ISBN:978-3-540-24035-8 2

2.2 CS-202: Advanced Operating System


Prerequisites: Working knowledge of C programming. Working knowledge of NASM/GAS assembler for 80x86 (32 and 64 bit) instruction Set Basic Computer Architecture concepts. Basic algorithms and data structure concepts. Course Objectives: This course teaches Advanced Operating Systems Concepts using Unix/Linux and Windows as representative examples. This course strikes a delicate balance between theory and practical applications In fact, most chapters start with the theory and then switches focus on how the concepts in a C program. This course describes the programming interface to the Unix/Linux system - the system call interface. It is intended for anyone writing programs that run under Unix/Linux. Finally, it concludes with an overview of Windows Internals. This course provides an understanding of the functions of Operating Systems. It also provides provide an insight into functional modules of Operating Systems. It discusses the concepts underlying in the design and implementation of Operating Systems. This course also gives implementation details at lower level using Assembly language Programming by creating some interest in system call design. Syllabus: Unit-1 1. Introduction to UNIX/Linux Kernel System Structure, User Perspective, Assumptions about Hardware, Architecture of UNIX Operating System. Concepts of Linux Programming, Getting Started with System Programming. Introduction to the tools on Linux, NASM 2. File and Directory I/O inodes, structure of regular file, open, read, write, lseek, close, pipes, dup open, creat, close, lseek, read, write, file sharing, atomic operations, dup and dup2, fcntl, ioctl, /dev/fd, stat, fstat, lstat, file types, Set-User-ID and Set-Group-ID, file access permissions, ownership of new files and directories, access function, umask function, chmod and fchmod, sticky bit, chown, fchown, and lchown, file size, file truncation, file systems, link, unlink, remove, and rename functions, symbolic links, symlink and readlink functions, file times, utime, mkdir and rmdir, reading directories, chdir, fchdir, and getcwd, device special files. Scatter/Gather I/O, The Event Poll Interface, Mapping Files into Memory, Advice for Normal File I/O, Synchronized, Synchronous, and Asynchronous Operations, I/O Schedulers and I/O Performance, Files and their Metadata, Directories, Links, Copying and Moving files, Device Nodes, Out-of-Band Communication, Monitoring File Events.

27

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

2.3 CS-203: Data Mining and Data Warehousing


Unit-1 Introduction to Data Mining Basic Data Mining Tasks DM versus Knowledge Discovery in Databases Data Mining Issues Data Mining Metrics Social Implications of Data Mining Overview of Applications of Data Mining Introduction to Data Warehousing Architecture of DW OLAP and Data Cubes Dimensional Data Modeling-star, snowflake schemas Data Preprocessing Need, Data Cleaning, Data Integration & Transformation, Data Reduction Machine Learning Pattern Matching Unit-2 Data Mining Techniques Frequent item-sets and Association rule mining: Apriori algorithm, Use of sampling for frequent item-set, FP tree algorithm Graph Mining: Frequent sub-graph mining, Tree mining, Sequence Mining Unit-3 Classification & Prediction Decision tree learning: Construction, performance, attribute selection Issues: Over-fitting, tree pruning methods, missing values,continuous classes Classification and Regression Trees (CART) Bayesian Classification: Bayes Theorem, Nave Bayes classifier, Bayesian Networks Inference Parameter and structure learning Linear classifiers Least squares, logistic, perceptron and SVM classifiers Prediction Linear regression Non-linear regression Unit-4 5 Accuracy Measures Precision, recall, F-measure, confusion matrix, cross-validation, bootstrap

30

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

2.4 CS-206: Practical based on course CS-201


Image Processing Fundamentals and Coding Practice 1. Design 128, 64, 32, 16, 8 and 4-level uniform quantizers and quantize the gray-level image, lena.pgm. Compare the results by these six different quantizers. Explain the artifacts (e.g., the visibility of undesirable contours). 2. Divide the image lena.pgm into blocks and each block has the size 4 x 4 pixels. Replace each block by the intensity of the (2,2) pixel within the block. The new image will be 1/4th the size in both dimensions. Display the down-sampled image Spatial Transforms and Filtering 3. Apply power law transformation to the city.pgm image taking different values for gamma ( = 3, = 4, and = 5). 4. Compute and plot (show the image and its histogram) the histogram of lena.pgm and city.pgm. Comment on what information can be discerned about the images from an examination of the histogram. 5. Apply histogram equalization to the input images lcgrain.pgm and darkgrain.pgm; submit your code and the output images. 6. Reduce the salt-and-pepper noise in the circuit.pgm image; submit your code and the output image. Filtering in Frequency Domain and Image Restoration 7. Remove the noise from the input images circuit1.pgm, circuit2.pgm, circuit3.pgm, and moon.pgm . Submit your code and the output images. 8. Restore the original images from the inputs degrade1.pgm, degrade2.pgm and degrade3.pgm. Morphological Image Processing 9. Remove the noise from the input image mimage.pgm. Submit your code and the output image. 10. Extract the gradient parts from the input image brain.pgm. Perform edge detection. Segmentation and Object recognition 11. Extract the rice objects from the input image rice.pgm. 12. Separate the two types of blobs in the input image twoblobs.pgm. 13. Develop an imaging application to detect and count human faces in an image. 14. Develop an imaging application to detect and count text lines and number of words in a scanned document. NOTE: a) The submitted answer to the assignments should be a maximum of 2 pages plus the relevant figures. b) All programming should be done using C/C++/Java/OpenCV/MATLAB. c) A copy of your complete program must be attached to your submitted answer as an appendix.

32

M.Sc. (Computer Science)

2.5 CS-207 : Practical Based on Course CS-202


1. Write your own dup2 function that performs the same service as the dup2 system call without calling the fcntl function. Be sure to handle errors correctly. 2. Write a utility like cp(1) that copies a file containing holes, without writing the bytes of 0 to the output file. 3. Write a C program that creates a zombie, and then call system to execute the ps(1) command to verify that the process is a zombie. 4. Implement your own sig2str function. 5. Write a C program that creates a file and writes the integer 0 to the file. The process then creates a child, and the Parent and Child alternate incrementing the counter in the file. Each time the counter is incremented, print which process (Parent or Child) is doing the increment. 6. Write a C program that calls fork and has the child create a new session. Verify that the child becomes a process group leader and that the child no longer has a controlling terminal. 7. Write a C function which handles all possible signals. The function should consist of a single loop that iterates once for every signal in the current signal mask (not once for every possible signal). 8. Write a C program that calls sleep (60) in an infinite loop. Every five times through the loop (every 5 minutes), fetch the current time of day and print the tm_sec field. 9. Write a C program that calls fwrite with a large buffer (a few hundred megabytes). Before calling fwrite, call alarm to schedule a signal in 1 second. In your signal handler, print that the signal was caught and return. 10. Any one assignment on windows internals (Compulsory) (Please note that you are not expected to write sdk program related to windows programming). 11. Write as many programs in Assembly as you can for getting familiar with Assembly Programming, binutils(tool chain for system programmers), OS services on Linux, These programs should make use of system calls related to memory management, process management, file management etc) (Minimum 5 programs Compulsory) 12. Understanding how the utilities of Sys-internals suit are useful for system programmer point of view.
33 M.Sc. (Computer Science)

2.6 CS-208: Practical Based on CS 203:


Practical 1: Using the WEKA Workbench A. Become familiar with the use of the WEKA workbench to invoke several different machine learning schemes. Use latest stable version. Use both the graphical interface (Explorer) and command line interface (CLI). See Weka home page for Weka documentation. B. Use the following learning schemes, with the default settings to analyze the weather data (in weather.arff). For test options, first choose "Use training set", then choose "Percentage Split" using default 66% percentage split. Report model percent error rate. ZeroR (majority class) OneR Naive Bayes Simple J4.8 C. Which of these classifiers are you more likely to trust when determining whether to play? Why? D. What can you say about accuracy when using training set data and when using a separate percentage to train? Practical 2: Basic classification and usage of weka Become familiar with the use of the WEKA workbench to invoke several different machine learning schemes. Use latest stable version. Use both the graphical interface (Explorer) and command line interface (CLI). Use the following learning schemes, with the default settings to analyze the weather data (in weather.arff). For test options, first choose "Use training set", then choose "Percentage Split" using default 66% percentage split. Report model percent error rate. - ZeroR (majority class) - OneR - Naive Bayes Simple - J4.8 Which of these classifiers are you more likely to trust when determining whether to play? Why? What can you say about accuracy when using training set data and when using a separate percentage to train? Practical 3: Classification I Build different classification models using different classification algorithms (such as decision tree, naive bayes, bayesian networks) for the IRIS dataset that comes with weka / R.. Compare the accuracy (precision, recall, F1 measure) of these different classification algorithms. Practical 4: Classification II For this assignment, you will use the "Iris" data-set from UCI Machine Learning Repository. This data-set considers three classes of flowers : Iris Setosa, Iris Versicolour, Iris Virginica and has 50 samples from each flower (so a total of 150 samples). For each sample, it records 4 features: sepal length in cm; sepal width in cm; petal length in cm; petal width in cm Task:
34 M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

M.Sc. (Computer Science)


3 Second Year Semester-3

36

M.Sc. (Computer Science)

3.1 CS301: Software Metrics & Project Management


1. What is Project? What is Project management? Project phases and project life cycle, organizational structure, Qualities of Project Manager. 2. Project Management Components. Project Integration Management-Project plan development and execution, change controls, configuration management. 3. Scope Management-Strategic planning, scope planning, definition, verification and control. 4. Time management- Activity planning, schedule development and control. 5. Cost Management- Cost estimation and Control. 6. Quality Management- Quality planning and assurance. 7. Human Resource Management- Organizational planning , staff acquisition. 8. Communication Management-Information distribution , reporting. 9. Risk Management-Risk identification, Quantification and control. 10. Procurement Management- Solicitation, contract administration. 11. Software Metrics- The scope of software metrics, software metrics data collection, analyzing software data, measuring size, structure, external attributes. 12. Software Reliability- Measurement and prediction, resource measurement, productivity, teams and tools. 13. Planning a messurement program. What is metrics plan?: Developing goals, questions and metrics. Where and When: Mapping measures to activities. How: Measurement tools. Who: Measurers , analyst, tools revision plans. 14. Quality Standards CMM, PSP/TSP References : 1. Information Technology Project Management By -Kathy Schwalbe. 2. Software Metrics A rigorous and practical approach By Norman Fenton, Shari Lawrence Pfleeger. 3: Software Engineering By- Roger Presman.

37

M.Sc. (Computer Science)

3.2 CS-302: MOBILE COMPUTING


Prerequisites Concepts of multiplexing and modulation Concepts of Networking Conversant with OS internals Familiar with event handling Web browsers Create and Compile Java Programs Brief History of wireless communication Objectives To familiarize the students with the buzz words and technology of mobile communication Understand the GSM architecture Understand the issues relating to Wireless applications 1. Introduction to Mobile Computing i. Introduction and need for Mobile computing ii. Mobility and portability iii. Mobile and Wireless devices iv. Applications v. Brief History of wireless communication Book1: Mobile Comm. By Jochen Schiller 2. Wireless Transmission i. General Concepts of multiplexing and modulation ii. Spread Spectrum iii. Cellular Systems iv. Cellular Phone Array v. Mobile Phone Technologies (1G, 2G, 2.5G, 3G) Book1: Mobile Comm. By Jochen Schiller 3. Medium Access Control Layer i. Why specialized MAC? - hidden and exposed terminals - near and far terminals ii. General Concepts and comparison of SDMA, FDMA, TDMA , CDMA Book1: Mobile Comm. By Jochen Sciller 4. Global System for Mobile Comm. i. Mobile Services (Bearer, Tele-and-supplementary services) ii. System Architecture - Radio subsystem - Network and switching subsystem - Operation subsystem iii. Protocols - Localization and calling
38 M.Sc. (Computer Science)

- 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

M.Sc. (Computer Science)

7. Wireless Application Protocol


i. Architecture ii. Wireless datagram protocol iii. Wireless transport layer security iv. Wireless transaction protocol v. Wireless session protocol vi. Wireless application environment vii. WML viii. WML Scripts ix. Push Architecture x. Push Pull Services Book1: Mobile Communications by Jochen Schiller 8. Platform/Operating Systems i. Palm OS ii. Windows CE iii. Embedded Linux iv. J2ME (Introduction) v. Symbian (Introduction) vi. File Systems (Book1) Book2: Pervasive Computing Book1: Mobile Comm. By Jochen Schiller 9. Java for Wireless Devices i. Setting up the development environment ii. Basic Data types, Libraries (CLDC, MIDP) Any J2ME book 10. UI Controls i. Displayable and Display - Image - Events and Event Handling - List and choice - Text box - Alerts Any J2ME book 11. Persistent Storage i. Record Stores ii. Records iii. Record Enumeration Any J2ME book 12. Network MIDlets i. The Connection Framework ii. Connection Interface
40 M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

3.3 CS-303 SOFT COMPUTING


1.Introduction Soft computing paradigms-Neural network-Fuzzy logic-derivation free optimization methods of Genetics algo.-soft computing characteristics. 2. Fuzzy logic sets-properties-arithmetics-member functions- fuzzy relations-relation equations-fuzzy measures-types of uncertainity-members of uncertainitiesmeasures of fuzziness-probabilitiesVs possibilities-measures of fuzzy events. 3. Neural computing neuron modelling- learning in simple neuron-perception earning curve-prooflimitations of perception. 4. Neural networks Multilevel perception-algo-visualizing network behaviour-B:PN-self organizing network-Kohenen algo.- Hopfield network-adaptive resonance theory-pattern classification. 5. Genetic algo Introduction- Biological terminology-search space and fitness land scapeselements of genetic algorithms -Genetic algo in problem solving. Books 1. JS Jang ,C.T. Sun , E.Mizutani, " Neuro-fuzzy and soft computing" Prentice International. 2. Simon Haykin " Neural networks - A comprehensive foundation" PHI 3. Melanie Mitchell , " An introduction to Genetic algorithms", PHI

42

M.Sc. (Computer Science)

3.4 CS 305 COMPILER DESIGN


Unit-1 Compilers-Grammars-Languages-Phases of compiler-compiler writing tools-Errors-Lexical phase errors, syntactic phase errors, semantic phase errors Unit-2 Role of lexical analyzer-input Buffering Specification and Recognition of tokens Language for specifying Lexical analyzer-Finite Automata-Regular expression to NFA-Optimization of DFA based pattern matches Design of a Lexical Analyzer Generator Unit-3 Parsers-CFG-derivations and parse trees-capabilities of CFG- Top own parsing-Bottom Up parsing LR,parsing SLR, parsing LALR, parsing CLR, parsing Operator Precedence Predictive Parsing. Unit-4 Syntax Directed Translation scheme-Implementation of Syntax Directed TranslatorsIntermediate code postfix notation, parse trees and syntax trees-Trees three address code Quadruples, Triples Translation of Assignment statements Boolean expressions-Declaration Flow control statements Back patching. Unit-5 Principal source of optimization-Issues in the design of a code generator-Run-Time storage management Basic blocks and flow graphs Next use information-Simple code generator DAG representation of basic blocks-Peephole optimization Code Generation References: 1. A.V.Aho, Ravi Sethi,J. D.ullman, Compilers principles ,Techniques and tools, Addison Wesley publishing company,1988. 2. Allen I.Holub, compiler Design in C, Prentice Hall of India, 1993. 3. Kenneth C. Louden, Compiler Construction: Principles & Practice, Thomson Learning 2003 4. Muchnick, Advanced Compiler Design: Implementation, Acadamic Press. 5. Rajini Jindal , Compilers Construction & Design , Umesh Publications , Delhi.2002 6. Ronald Mak ,Writing Compilers and Interpreters, 2nd Edition , John Miler &Sons , 1996 .

43

M.Sc. (Computer Science)

Electives

44

M.Sc. (Computer Science)

1. CS 204/CS 304: Elective Course : Advanced Algorithm


Advanced data structures (Fibonacci heaps, splay trees, dynamic trees, B-Trees) in-memory

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

M.Sc. (Computer Science)

2. CS 204/CS 304-Elective Course : Functional Programming


Unit-1 Introduction to Functional programming o Expressions and values. o Functions. o Recursion. o Types. Introduction to Haskell o tuples o polymorphism o higher order functions o strings & characters Unit-2 Data types o Data-Type declarations o Data and type constructors o Defining functions over datatypes using pattern o Abstract data types o Polymorphism o Polymorphic Functions, o Polymorphic datatypes, o Type Constructors to define polymorphic Constructor functions o Recursive datatypes o Higher Order functions Unit-3
The Haskell Class System o Classes as predicates on types o Instance declarations o Inheritance and dependent classes o Derived instances o The Show class o The Eq class

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

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

4. CS 204/CS 304- Elective Course : Natural Language Processing


PREREQUISITES 1. A previous course on Artificial Intelligence will help. 2. Courses of Data Structures and Algorithms should have been done. 3. Exposure to Linguistics is useful, though not mandatory. COURSE OUTLINE Words and Word Forms : Morphology fundamentals; Morphological Diversity of Indian Languages; Morphology Paradigms; Finite State Machine Based Morphology; Automatic Morphology Learning; Shallow Parsing; Named Entities; Maximum Entropy Models; Random Fields. Structures : Theories of Parsing, Parsing Algorithms; Robust and Scalable Parsing on Noisy Text as in Web documents; Hybrid of Rule Based and Probabilistic Parsing; Scope Ambiguity and Attachment Ambiguity resolution. Meaning : Lexical Knowledge Networks, Wordnet Theory; Indian Language Wordnets and Multilingual Dictionaries; Semantic Roles; Word Sense Disambiguation; WSD and Multilinguality; Metaphors; Coreferences. Applications of NLP: Sentiment Analysis; Text Entailment; Robust and Scalable Machine Translation; Question Answering in Multilingual Setting; Cross Lingual Information Retrieval (CLIR). REFERENCES 1. Allen, James, Natural Language Understanding, Second Edition, Benjamin/Cumming, 1995. 2. Charniack, Eugene, Statistical Language Learning, MIT Press, 1993. 3. Jurafsky, Dan and Martin, James, Speech and Language Processing, Second Edition, Prentice Hall, 2008. 4. Manning, Christopher and Heinrich, Schutze, Foundations of Statistical Natural Language Processing, MIT Press, 1999. 5. Natural Language Processing and Text Mining, Kao, Springer, ISBN-9781846281754

50

M.Sc. (Computer Science)

5. Elective Course: Program Analysis


Static analysis: Abstract interpretation (dataflow analysis) Type systems o simple type systems o type reconstruction o universal and existential polymorphism o subtyping o bounded quantification o recursive types o type operators Model checking o decision procedures o SAT solvers o BDDs o Partial Order Reduction o Satisfiability Modulo Theory (SMT) solvers Theorem-proving Dynamic Analysis Automated testing and debugging using model inference Software visualization Reference Books: Logic in Computer Science - Modelling and Reasoning About Systems: by Michael Huth and Mark Ryan; Cambridge University Press (ISBN 9780521670890) Principles of Program Analysis: by Nielson and Chris Hankin, Springer ISBN 978-3-54065410-0 Model Checking: by Clarke, Grumberg, and Peled; MIT Press Decision Procedures - An Algorithmic Point of View: by Kroening and Strichman; Springer Software Visualization: by John T. Stasko, John B. Domingue, Marc H. Brown and Blaine A. Price; MIT Press (ISBN: 978-0-262-19395-5) Types and Programming Languages, by Benjamin C. Pierce; The MIT Press; ISBN 0262162091

51

M.Sc. (Computer Science)

6. CS 204/CS 304: Elective Course: DOT NET


Objectives: - To understand the DOTNET framework, C# language features and Web development using ASP.NET - Evaluation will be as below 1. Theory paper : 50 marks 2. Project work (either in C# or ASP.NET): 50 marks. Students are supposed to give the project demo and presentation of their project. Project Evaluation : ( to be done internally by subject teacher) a. Coding : 20 Marks b. Documentation & Demo : 15 marks c. Presentation + presentation style : 15 marks Prerequisite: - Knowledge of object-oriented programming concepts such as data abstraction, encapsulation, inheritance, and polymorphism. - Familiarity with programming language such as C++ and/or Java. - Knowledge of web development Topics to be covered: Unit I 1. DOTNET Framework a. Introduction to DOTNET b. DOT NET class framework c. Common Language Runtime i. Overview ii. Elements of .NET application iii. Memory Management iv. Garbage Collector : Faster Memory allocation, Optimizations d. Common Language Integration i. Common type system ii. Reflection API e. User and Program Interface 2. Introduction to C# a. Language features i. Variables and Expressions, type conversion ii. Flow Control iii. Functions, Delegates iv. Debugging and error handling, exception handling ( System Defined and User Defined) b. Object Oriented Concepts i. Defining classes, class members, Interfaces, properties ii. Access modifiers, Implementation of class, interface and properties iii. Concept of hiding base class methods, Overriding iv. Event Handling c. Collections, Comparisons and Conversions
52 M.Sc. (Computer Science)

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)

7. CS 204/CS 304 : Elective Course : Information Systems Security


Objectives of the Course: 1. To enable students to get sound understanding of Info-Sys-Security, Net Security Cryptography 2. To equip with knowledge and skills necessary to support for their career in Information Security 3. To develop attitude and interest along with necessary knowledge and skills among the students to encourage them to do further academic studies / research in this area, after the completion of their M.Sc. Course Unit-I Conceptual foundation of Information Systems Security - Concepts and Terminology o Threats, Attacks, Types of attacks, Programs that attack o Vulnerabilities, Risks, Risk Assessment and Mitigation - Security & Elements / principles of Information Security o Confidentiality, Integrity, Availability, Identification, Authentication, Authorization, Accountability, Privacy Data Encryption techniques - Introduction, Plain text, Cipher text - Substitution techniques: Caeser cipher, Mono-alphabetic cipher, Homophonic, polygra, polyalphabetic, playfair, Hill cipher - Transposition techniques: Reil Fense technique, simple columnar, Vernam, Book cipher - Encryption & Decryption - Symmetric and Asymmetric key cryptography: Diffie-Hellman key exchange - Steganography Unit-II Symmetric / Secret Key Encryption - Algorithm Types and Modes - Overview of symmetric key cryptography - DES (Data Encryption Standard) - Double DES, Triple DES - AES (Advanced Encryption Standard) - IDEA (International Data Encryption Algorithm) - Blowfish - RC4 & RC5 Asymmetric key / Public Key Encryption - History & overview of asymmetric key cryptography - RSA algorithm - key management - Deffie-Hellman key exchange - Elliptic curve cryptography Unit-III Message Integrity techniques - Message Digest - MD5 - SHA
55 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

M.Sc. (Computer Science)

8. CS 204/CS 304 : Elective Course: Software Architecture and Design Patterns


Unit-I 1. The Big Picture How it all fits in? UML :The Notation Process :Unified Process / Rational Unified Process inception, elaboration, construction, transition. How various components fit in the life cycle The artifacts at end of each process / discipline 2. Software Architecture: What Software Architecture is and what it isnt. Why is architecture important? Architectural structures and views Unit-II 3. Architectural Styles: Architectural Styles Pipes and Filters Data Abstraction and Object Oriented Organization Event-Based, Implicit Invocation Layered Systems Repositories Interpreters Other familiar Architectures Heterogeneous Architectures. Unit-III 4. Patterns: What is a Pattern & Design Pattern? What makes a Pattern? (GOF) Describing Design Patterns. Pattern Categories & Relationships between Patterns. Organizing the Catalog. Patterns and Software Architecture. 5. Study of Design Patterns: Creational Patterns-singleton, factory method, abstract factory Structural Patterns-adapter, decorator, facade Behavioral Patterns-iterator, observer, strategy, command and state (study of intent, applicability, participants, structure, collaboration and consequences) GRASP(General Responsibility Assignment Software Patterns : Patterns for Assigning Responsibilities o Expert, Creator, High Cohesion, Low Coupling, Controller, Polymorphism, Pure Fabrication, Indirection, Dont Talk to Strangers.

58

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

10. CS204/CS 304 :Elective Course: MODELLING AND SIMULATION Unit-I


1. SIMULATION CONCEPTS Systems, modeling, general system theory, concept of simulation, simulation as a decision making tool, types of simulation.

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

M.Sc. (Computer Science)

11. CS 204//CS 304:Elective Course : EMBEDDED SYSTEM PROGRAMMING Unit-I


Introduction to ES What is ES? Examples of ES Inside ES : processor, memory, peripherals, software Embedded Processors, Memories & Peripherals Microcontrollers 8051 Discrete processors : 8-bit architecture, 16/32 bit CISC, RISC, DSP Integrated processors : ARM RISC Choosing a processor Memory systems : types (SRAM, DRAM, FLASH), organization, access time, validating the contents of memory Basic peripherals : parallel ports, timers, clocks

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

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

12. CS-204/CS 304: Elective Course: Language Processors


Prerequisites - System programming concepts - Detailed knowledge of : DFA, NFA, Regular expressions and regular languages (Scanning), Context Free grammars, Parsing ( Top Down and Bottom up Parsing), Syntax Directed Translation( SDT) - Concepts of Code Generation and Optimization. Objectives : The course should make a student to be in a position to design a small compiler and implement it. Course contents

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

M.Sc. (Computer Science)

13. CS 204/CS 304 : Elective Course: Artificial Intelligence


Prerequisites - Concepts of Data structures and Design and Analysis of algorithms Objectives- To understand and gain the knowledge of the subject Course contents

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

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

4 Guide Line
of Project (Minor/Major)

72

M.Sc. (Computer Science)

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.

IMPORTANCE OF THE MINI PROJECT


The Mini Project is not only a part of the coursework, but also a mechanism to demonstrate your abilities and specialisation. It provides the opportunity for you to demonstrate originality, teamwork, inspiration, planning and organisation in a software project, and to put into practice some of the techniques you have been taught throughout the previous courses. The Mini Project is important for a number of reasons. It provides students with: opportunity to specialise in specific areas of computer science; future employers will most likely ask you about your project at interview; opportunity to demonstrate a wide range of skills and knowledge learned, and encourages integration of knowledge gained in the previous course units. The project report is an extremely important aspect of the project. It serves to show what you have achieved and should demonstrate that:

73

M.Sc. (Computer Science)

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.

MINI PROJECT: TABLE OF CONTENTS


The project report should contain a full and coherent account of your work. Although there will be an opportunity to present your work verbally, and demonstrate the software, the major part of the assessment will be based on the written material in your project report. You can expect help and feedback from your projecr guide, but ultimately its your own responsibility. The suggestive structure of a project report should be as given below; however, you should be guided by your guide in selecting the most appropriate format for your project. Title Page Original Copy of the Approved Proforma of the Project Proposal Certificate of Authenticated work Role and Responsibility Form Abstract Acknowledgement Table of Contents Table of Figures CHAPTER 1: INTRODUCTION 1.1 Background 1.2 Objectives 1.3 Purpose, Scope, and Applicability 1.3.1 Purpose 1.3.2 Scope 1.3.3 Applicability 1.4 Achievements 1.5 Organisation of Report 74 M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

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.

Key Features Of The Project


While preparing the project students learn and practice different activities, which help them to develop the ability to solve real life problems related to software development. There are different activities in each phase of software development; however, some of the key activities of the project work are given below: Analysis Framing the Systems Development Life Cycle (SDLC) Model for the related project, Understanding and evaluating the specific problem, Analysing and evaluating the systems requirements, Cost-benefit analysis, Performing technical feasibility, time feasibility and Operational feasibility for the project, 81 M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

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.

Project Team / Student


The project team should be organised and determined towards the fulfilment of their projects objectives and tasks. A maximum of four students should work on a project, however, an individual student can also undertake the project on his/her own. The main responsibilities of the project team/student are to: Ensure that an appropriate amount of time and effort is applied to the project, Ensure that they are responsive to the guidance of their guide , Acknowledge the text, material and ideas of others properly, Meet all milestones and regulations related to the work, and To communicate any problems that are likely to prejudice the quality or time lines of the work to the guide as and when such problems arise.

STEPS OF THE MINI PROJECT


We have listed here five general steps in your Mini Project, which may help you to determine the milestones and regulations related to project work. Selection of Topic Area, Project Report Planning, Project Proposal Report, Project Final Report, and Project Assessment

Selection of Topic Area


The choice of the topic for the project has great importance so it should be discussed with your guide in detail. The topic needs to integrate the interests of the student with the specialised expertise of the guide, and be of the appropriate level of difficulty. Students are encouraged to think about the areas of their interest in which they would like to undertake a project, and in consultation with a guide, an initial topic can be identified.

83

M.Sc. (Computer Science)

Project Report Planning


You should provide an overall aim for your project, which is a declaration of what you would like to achieve at the end of the project. This should be followed by a number of objectives, which act as clearly defined stages that make up your project.

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.

Project Proposal Report


Project proposal should be presented to, reviewed by and agreed upon in consultation with the project guide to provide constructive feedback on the proposal and planned programme of the project work. Further, in this section, you can present details regarding the preparation of the project proposal. The preparation of the Project proposal report may be taken to be an opportunity for students to practice their report writing skills. It is expected that this report will contain an overall structure for the project analysis along with a substantial part of the survey of technologies. The survey of technologies, and associated list of cited references, would be complete at this stage. The project proposal should contribute to some of the content of the final 84 M.Sc. (Computer Science)

report. It also provides the guide with an opportunity to make constructive comments on the written work completed at this stage.

Project Final Report


The final report will contribute to the assessment and your marks. The format of this report will follow the format, guidelines and suggestions given in this block, but details should also be discussed with your guide. The final reports of students doing the project in a group should not be identical. Each student should emphasise on his/her role and responsibilities in the project work.

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.

GUIDELINES FOR THE PROJECT PROPOSAL


These guidelines on report preparation gives simple and practical recommendation on the problems of getting started, getting organised, dividing the vast task into less difficult pieces and working on those pieces. It includes a suggested structure and a guide to what should go in each section of the project proposal and the project report.

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.

GUIDELINES FOR THE PROJECT REPORT


When you are about to begin writing the project report, it seems a lengthy, complicated job. It will seem less discouraging if you write continuously and prepare the documentation of each phase from the start of the project. However, in this case, towards the conclusion, you will even find, an enjoyment, satisfaction in the sense of achievement and pleasure in the enhancement of your technical writing. Let us look at how you should make a start. Before writing your project report, first write the report outlines containing chapter headings, subheadings, some figure titles and perhaps some other details, notes and comments. The report should contain a full and coherent account of your work. Although there will be an opportunity to present your work verbally, and demonstrate any software, the major part of the assessment will be based on the written material in your project report.

Project Report Format


The project report documentation should contain 80 to 100 pages for analysis, design, and testing phases, however, the size of complete report may vary depending upon the size of coding /implementation and appendices. The project documentation details should not be too generic in nature. To be more specific, whatever theory in respect of these topics is available in reference books should be avoided as far as possible. The project documentation should be in respect of your project only. You should make sensible 86 M.Sc. (Computer Science)

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

into sub sub-sections, and so on.


The font matter, Conclusions, Recommendations, Glossary, Acknowledgements, and References

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

Operation Search Delete Insert

Sequential List O(log n) O(n) O(n)

Linked List O(n) O(1) O(1)

AVL-Tree O(log n) O(log n) O(log n)

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.

Software Requirement Specification


This document is generated as output of requirement analysis. The requirement analysis involves obtaining a clear and thorough understanding of the product to be developed. Thus, SRS should be a consistent, correct, unambiguous and complete, document. The developer of the system can prepare SRS after detailed communication with the customer. An SRS clearly defines the following: External Interfaces of the system: They identify the information which is to flow from and to to the system. Functional and non-functional requirements of the system. They stand for the finding of run time requirements. Design constraints: 89 M.Sc. (Computer Science)

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

M.Sc. (Computer Science)

LIST OF APPLICATION AND TOOLS

FRONT END / GUI Tools

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

LANGUAGES NETWORK SIMULATORS

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

MIDDLE WARE (COMPONENT) TECHNOLOGIES UNIX INTERNALS

ARCHITECTURAL CONCEPTS INTERNET TECHNOLOGIES

91

M.Sc. (Computer Science)

Vous aimerez peut-être aussi