Board of Studies: Master of Science (Computer Science)
Board of Studies: Master of Science (Computer Science)
(COMPUTER SCIENCE)
SYLLABUS
FOR
CREDIT-BASED FLEXIBLE
CURRICULUM
(Applicable for 2018-2019 onwards)
Board of Studies
Vision:
Mission:
1
The board of studies for Computer Applications Department includes the following
members:
Chairman:
Dr. S.R.Balasundaram
Head of the department
External Experts:
Dr.V.Ramachandran, Professor,
Department of Information Science and Technology,
Anna University, Chennai.
Mr.Krishna Ramachnadran
Principal Education & Research
Infosys, Chennai.
Members:
1. Dr. N.P. Gopalan, Professor
2. Dr. A.V. Reddy , Professor
3. Dr. B. Ramadoss, Professor
4. Dr.S.Nickolas, Professor
5. Dr. Michael Arock, Professor
6. Dr. P.J.A Alphonse, Professor
7. Dr. S. Domnic , Associate Professor
8. Dr. (Mrs) B.Janet , Assistant Professor
9. Dr. (Mrs) S. Sangeetha, Assistant Professor
10. Dr. (Mrs). R. Eswari, Assistant Professor
11. Dr. U. Srinivasulu Reddy, Assistant Professor
12. Dr. C.Sivaraj
13. Dr. (Mrs). Adlin Suji
14. Ms. Cynthia Devi
15. Ms. Jenie Arock
16. Mr.K.Vignesh
2
Seme Subject
Code Subject Name L T P C
ster
CAS 761 Mathematical Foundations of Computer 3 0 0 3
Science
CAS 763 Multimedia Communications 2 1 0 3
CAS 765 Data Structures and Algorithms 2 1 0 3
CAS 767 Database Technologies 2 1 0 3
I
CAS 769 Advanced Operating Systems 3 0 0 3
CAS 751 Data Structures Lab 0 0 4 2
CAS 753 Operating Systems Lab – Unix & Shell 0 0 4 2
Programming
CAS762 High Performance Computing 3 0 0 3
CAS 764 Data Mining and Analytics 2 1 0 3
CAS 766 Advanced Statistical Techniques for Data 3 0 0 3
Science
II CAS 768 Problem Solving Using Python and R 3 0 0 3
XXXXXX Elective I 3 0 0 3
CAS 752 High Performance Computing Lab 0 0 4 2
CAS 754 DBMS and Data Mining Lab 0 0 4 2
CAS 771 Web Computing 2 1 0 3
CAS 773 Artificial Intelligence 3 0 0 3
CAS 775 Object Oriented Software Engineering 3 0 0 3
XXXXXX Elective-II 3 0 0 3
III
XXXXXX Elective-III 3 0 0 3
CAS 755 Project Work- Phase I 0 0 4 2
CAS 757 FOSS Lab 0 0 4 2
3
LIST OF ELECTIVES
Subject
Subject Name L T P C
Code
CAS 7A1 Big Data Analytics 3 0 0 3
CAS 7A2 Computational Intelligence 3 0 0 3
CAS 7A3 Cyber Security 3 0 0 3
4
CAS761 MATHEMATICAL FOUNDATIONS OF COMPUTER
SCIENCE
Objectives:
To acquire skills in solving mathematical and logical problems.
To comprehend mathematical principles and logic.
To understand fundamental concepts and tools in discrete mathematics with
emphasis on their applications to computer science.
Set Theory : Sets and operations, properties - power set - methods of proof - relations, graph
and matrix of a relation - partial and total orders, well ordering - equivalence relations, classes
and properties - functions, 1-1, onto and bijective - composition of relations and functions -
inverse functions.
Mathematical Logic : Propositions and logical operators – Truth table – Equivalences and
implications – Basic laws– Some more connectives – Functionally complete set of connectives
– Review of Propositional Calculus - Validity - Satisfiability related concepts - CNF and DNF
forms - Conversion of arbitrary propositional formula to CNF or DNF.
Graph Theory : Definitions and basic results - Representation of a graph by a matrix and
adjacency list - Trees - Cycles - Properties - Paths and connectedness - Sub graphs - Graph
Isomorphism - Operations on graphs - Vertex and edge cuts - Vertex and edge connectivity,
Spanning Trees, Euler circuits, Hamiltonian graphs.
Sampling Distributions & Descriptive Statistics: The Central Limit Theorem, Distributions of
the sample mean and the sample variance for a normal population, Sampling distributions (Chi-
Square, t, F, z). Test of Hypothesis- Testing for Attributes – Mean of Normal Population –
One-tailed and two-tailed tests, F-test and Chi-Square test - - Analysis of variance ANOVA –
One way and two way classifications.
References:
1. Kenneth H. Rosen, “Discrete Mathematics and Its Applications”, 7th Edition, McGraw-
Hill, 2012.
2. Kolman, Busby and Ross, “Discrete Mathematical Structures”, 6th Edition, PHI, 2013.
3. Sheldon M. Ross,”Introduction to Probability and Statistics for Engineers and
Scientists”, 5th edition, Academic Press; 2014.
Outcome:
Students will be able to:
Apply the concepts of discrete mathematics in the modeling and design of
CAS763 COMPUTER ORGANIZATION AND ARCHITECTURE
computational problems.
5
CAS763 MULTIMEDIA COMMUNICATIONS
Objectives:
To understand multimedia content representation and transmission
To be familiar with existing state-of-the-art in network protocols, architectures, and
applications.
To gain comprehensive knowledge about multimedia data transmission over the
network.
Multimedia Information Networks: Introduction, LANs, Ethernet, Token ring, Bridges, FDDI
High-speed LANs, LAN protocol
References:
Outcomes:
Students will be able to:
Use and apply appropriate network protocols to transmit multimedia content
6
CAS 765 DATA STRUCTURES AND ALGORITHMS
Objectives:
To learn the basics of programing
To learn basic concepts of data structures
To design and analyse algorithms
Binary Trees – Binary Tree Representations – node representation, internal and external nodes,
implicit array representation - Operations on binary trees – Binary tree Traversals -
Representing Lists as Binary Trees–Search Trees.
Revisiting various operations of different data structures with time complexity analysis –
Design and Analysis of Heap Sort - Quick Sort – Sorting in linear time – Radix sort – Selection
in linear time.
References
1. Stephen Prata,”C++ Primer Plus”, 6th Edition ,Addison-Wesley Professional, 2011
2. Bjarne Stroustrup, “Programming: Principles and Practice Using C++,1st Edition,
Addison-Wesley Professional, 2008
3. Bruce Eckel ,”Thinking in C++: Introduction to Standard C++: Volume One” 2nd
Edition,PrenticeHall, 2000
4. T.H.Cormen, C.E.Leiserson, R.L.Rivest and C. Stein, "Introduction to algorithms", 3rd
edition, 2009, MIT Press.
5. P. H. Dave and H. B.Dave, “Design and Analysis of Algorithms”, 2009, Pearson Education
India.
6. S. Lipschutz and G.A.V. Pai, “Data Structures”, 2010, Tata McGraw-Hill.
7. Clifford A. Shaffer, “Practical Introduction to Data Structures and Algorithm Analysis”,
2000, 2nd edition, Prentice Hall.
8. P. Brass, “Advanced Data Structures”, 2008, Cambridge University Press.
Outcomes:
Students will be able to:
Design and implement abstract data types/Data structures.
Design and analyse algorithms
7
CAS 767 DATABASE TECHNOLOGIES
Objectives:
To learn different database models and design of databases
To study query languages, transaction management, indexing and hashing
To be aware of emerging database technologies
Relational Query Languages – Relational Algebra – Tuple and domain Relational Calculus –
SQL – Query processing and optimization – Transformation of relational expressions –
Evaluation plans
File organization – Organization of records in files – Indexing – B tree and B+ tree index files
– Static hashing – Dynamic hashing
Parallel and distributed databases – Object-based databases - Mobile databases - XML and
Web databases – Intelligent databases – Mongo DB – NOSQL - PostgreSQL
References:
1. Silberschatz, Korth and Sudarshan, “Data Base System Concepts”, McGraw-Hill, 6th
Edition, 2011.
2. R. Elmasri, S.B. Navathe, “Fundamentals of Database Systems”, 7thEdition, Pearson
Education, 2017.
3. Raghu Ramakrishnan and Johannes Gehrke, “Data Base Management Systems”, 3rd
Edition, McGraw-Hill, 2014.
4. C. J. Date, “An Introduction to Database Systems”, 8th Edition, Addison-Wesley, 2006.
5. Guy Harrison, “Next Generation Databases”, Apress, 2015.
6. Eric Redmond, Jim R Wilson, “Seven Databases in Seven Weeks”, LL. 2012.
7. Adam Fowler, “NoSQL for dummies”, John Wiley & Sons, 2015.
Outcomes:
Students will be able to:
Illustrate the features of DBMS and models for designing databases
Apply logical database design principles in solving real world problems
Describe the nuances of data retrieval methods
Acquire the knowledge about emerging database systems.
8
CAS 769 ADVANCED OPERATING SYSTEMS
Objectives:
Disk Structure, Disk Scheduling and Disk Management. Protection and security Case Studies:
UNIX, Linux and Windows Operating Systems.
Distributed Operating Systems – Distributed system structure, Distributed file system; Mobile
Operating systems
References:
1. Abraham Silberschatz, Peter B. Galvin and Greg Gagne, “Operating System Concepts “,8th
edition, John Wiley & Sons Inc., 2013.
2. Andrew S. Tanenbaum, “Modern Operating Systems”, 4th Edition, Prentice Hall, 2014.
3. William Stallings, “Operating Systems: Internals and Design Principles”, 7th Edition,
Prentice Hall, 2011.
.
Outcomes:
Students will be able to:
Use system calls for managing processes, memory and the file system
Be familiar with various types of operating systems including UNIX, Linux and windows.
Explore the functionalities of distributed and Mobile operating systems.
.
9
CAS751 DATA STRUCURES LAB
Exercises for learning basic features of C and exercises to implement various data structures
for real world applications
Course Outcomes:
Students will be able to:
1. Write C programs for solving any problems.
2. Implement linear and nonlinear data structures to solve real-time problems
3. Perform searching and sorting techniques to different application domains
4. Implement different design strategies to solve complex problems
Course Outcomes:
Students will be able to:
1. Work on the concepts, design, and structure of the UNIX operating system.
2. Use basic UNIX Utilities
3. Work on UNIX shell programming.
10
CAS762 HIGH PERFORMANCE COMPUTING
Objectives:
To learn the fundamentals of High Performance Computing.
References:
3.handle advanced tools and techniques
11
CAS764 DATA MINING AND ANALYTICS
Objectives:
To introduce the basic concepts and techniques of data mining and analytics.
To develop skills of using recent data mining and analytics software for solving
problems.
To be aware of advanced concepts of data mining and analytics techniques and its
applications in the knowledge discovery process.
Data Mining Techniques-Data Mining Process-Process with a typical set of data- Data Analytic
Techniques-Big Data-Visualization of data through data mining and analytical software.
Data Stream Mining, Mining Time Series, Text Mining, Data Stream Clustering, mining Big
Data through data mining and analytical tools.
Market Basket Analysis - Fuzzy Data Mining approaches - Fuzzy Decision Tree approaches
Fuzzy Association Rule applications. Rough Sets - Support Vector Machines - Genetic
algorithms. Case studies.
Social Computing - Analysis -Graph Mining – Social Network Mining-Web Mining – Web
Usage Mining-Privacy Preserving Data Mining-Recommender Systems. Case studies.
References:
1. David L. Olson and Dursun Delen, “Advanced Data Mining Techniques”, Springer,
2008.
2. Charu C. Aggarwal and Haixun Wang, “Managing and Mining Graph Data”, Springer,
2010.
3. Ian H. Witten, Eibe Frank and Mark A. Hall, “Data Mining: Practical Machine Learning
Tools and Techniques”, Morgan Kaufmann Publishers, 2011.
4. Jiawei Han and Micheline Kamber, “Data Mining: Concepts and Techniques”, Morgan
Kaufmann Publishers, 2006.
5. Margaret H. Dunham, “Data Mining Introductory and Advanced Topics”, Prentice
Hall, 2003.
6. Anand Rajaraman and Jeff Ullman, “Mining of Massive Datasets”, Cambridge
University Press, 2011.
7. Wolfganag, J., Business Analytics for managers, Spinger, 2011.
Outcomes:
Students will be able to:
Understand the concepts and algorithms of data mining and analytics.
Apply data mining and analytic techniques for business intelligence.
Be aware of the privacy and security issues in data mining and analytics.
12
CAS766 Advanced Statistical Techniques for Data Science
Objectives:
To understand advanced statistical techniques
To gain comprehensive knowledge on applications of statistical techniques for data
analysis
References:
1. Joseph F. Hair Jr,Rolph E. Anderson, Ronald L Tatham, and , Multivariate data analysis
by Fifth Edition, Pearson Education, 1998.
Outcomes:
Students will be able to:
Apply statistical techniques for real time data analysis applications
13
CAS768 PROBLEM SOLVING USING Python and R
Objectives:
To write simple Python programs using Python data structures.
To develop object oriented programs in Python
To manipulate files using Python.
To work on few python packages
To write simple R programs for statistical computing.
Functions: parameters, return values, local and global scope, function composition, recursion,
and lambda functions;
Object orientation – Classes, Objects, methods, Operator overloading, and Inheritance. Files
and exception: text files, reading and writing files, format operator; errors and exceptions,
handling exceptions; creating modules and packages;
Python Modules and Packages: Python Standard Library, Numpy, Pandas, Matplotlib, GUI-
Tkinter, wxWidgets ; Database- MySQLDB, Scikit-Learn, NLTK
References:
1. Allen B. Downey, “Think Python: How to Think like a Computer Scientist”, 2nd
edition, Updated for Python 3, O‘Reilly Publishers, 2016
2. Zed Shaw's ,”Learn Python the Hard Way: A Very Simple Introduction to the
Terrifyingly Beautiful World of Computers and Code, Addison-Wesley Professional;
3 edition, 2013
3. Robert Sedgewick, Kevin Wayne, Robert Dondero, Introduction to Programming in
Python: An Inter - disciplinary Approach, Pearson India Education Services Pvt. Ltd.,
2016.
4. Paul Teetor, R Cookbook- Proven Recipes for Data Analysis, Statistics, and Graphics,
O'Reilly Media, 2011
5. Wesley J Chun, Core Python Programming , 2nd edition, Prentice Hall ,2009
Outcomes:
Students will be able to:
Write programs using Python data structures.
Develop solutions to real world problems using object oriented concepts
Read and write data from/to files using Python.
Make use of Python Modules and Packages to solve complex problems
Write simple R programs for statistical computing.
14
CAS752 HIGH PERFORMANCE COMPUTING LAB
Exercises to implement parallel algorithms using openMP, MPI etc. with CUDA and other
architectures.
Course Outcomes:
Students will be able to:
1. Investigate modern design structures of pipelined and multiprocessors systems.
2. Write algorithms using parallel programming principle.
3. Design the architecture of parallel systems.
Course Outcome
15
CAS771 WEB COMPUTING
Objectives:
To comprehend basics of the internet and web terminologies.
To introduce scripting language concepts for developing client side applications.
To practice server side programming features – ASP .NET, PHP, JSP.
To be familiar with database applications
To know the usefulness of web services.
Internet and World Wide Web : Introduction to Internet, www, Internet browsers Netscape &
Explorer, Introduction to Client Server Architecture/Computing, History of the web, Growth
of the web, Protocols governing the web, resources of Internet, H/W & S/W requirements of
Internet, Internet service providers, Internet Services, Internet Clients and Internet Servers.
Concept of E-Commerce and E-governance.
Markup Languages: Introduction to HTML, Formatting Tags, Links, Lists, Tables, Frames,
Forms, Comments in HTML, DHTML and XML Documents, Data Interchange with an XML
document, Document type definition, Features and Applications, Working with Style sheets.
Server Side Scripting: Introduction to server side scripting language, RMI, The Problem with
Servelet. JSP Application Design with MVC Setting Up and JSP Environment: Installing the
Java Software Development Kit, Tomcat Server & Testing Tomcat- Generating Dynamic
Content, Using Scripting Elements Implicit JSP Objects, Conditional Processing – Displaying
Values Using an Expression to Set an Attribute, Declaring Variables and Methods Error
Handling and Debugging - Sharing Data Between JSP pages, Requests and Users Passing
Control and Date between Pages – Sharing Session and Application Data – Memory Usage
Considerations
PHP Basic command with PHP examples, Connection to server, creating database, selecting a
database, listing database, listing table names creating a table, inserting data, altering tables,
queries, deleting database, deleting data and tables, PHP myadmin and database bugs.
References:
Outcomes:
Students will be able to:
Design and develop web applications.
Understand client and server side scripting and their applicability.
16
CAS773 ARTIFICIAL INTELLIGENCE
Objectives:
Knowledge representation and reasoning: predicate logic, rule based systems, Decision tree,
Semantic networks, Ontology, Basics of Semantic Web
References:
Outcomes:
Students will be able to:
Know how to build simple knowledge-based systems
Apply knowledge representation and machine learning techniques to solve real
world problems
Apply Computational Intelligence techniques to solve real-world problems
17
CAS 775 OBJECT ORIENTED SOFTWARE ENGINEERING
Objectives :
To comprehend basics of the software engineering process life cycle.
To be introduced to the object-oriented (OO) approach to software
development, through OO principles.
To be conversant with UML (Unified Modelling Language) and the benefits of
visual modeling / diagramming.
To get introduced to software engineering principles for both procedural and
object oriented approaches.
Software Requirements Elicitation and Analysis - Case Study: Library Management System-
What is Software Requirement? – Requirements Elicitation Techniques – Characteristics of a
good Requirement- Software Requirements Specification Document - Requirements Change
Management - Object Oriented Analysis - Overview of Cost Estimation Techniques - Agile
development – Classification of methods – The agile manifesto and principles – Agile project
management Agile Methodology - Method overview – Lifecycle – Work products, Roles and
Practices values – Process mixtures – Adoption strategies – Understanding SCRUM.
Software Design - Object Oriented Design - What is done in object oriented design? – UML -
Refinement of Use Case Description – Refinement of classes and relationships - – Construction
of Details class diagrams - Development of Details Design and Creation – Generating Test
cases from User Cases – Object Oriented Design principles for Improving Software Quality.
References:
18
3. G. Booch, Benjamin/Cummings, “Object-Oriented Analysis and Design with
Applications”, 3rd Edition, Addison-Wesley, 2007.
4. Roger Pressman, “Software Engineering: A Practitioner's Approach”, McGraw-Hill
Higher Education, 2010.
5. S. Kenneth Rubin, “Essential Scrum: A Practical Guide to the Most Popular Agile
Process”, Pearson Publication, 2012
6. Jason Swartz, “Learning Scala Practical Functional Programming for the JVM”,
O'Reilly Media, December 2014
Outcomes:
Students will be able to:
Practice the application principles of object-oriented software development
and various CASE tools.
Convey design decisions using UML.
1. Linux
2. Android/ Mozilla OS
3. GIMP: GNU Image Manipulation Program
4. Apache Struts
5. PHP
6. Python
7. Ruby
8. Apache Cassandra database
9. Mongo DB, NoSQL
10. Hadoop
Internal project work 6 Months duration with submission of thesis and viva-voce
examination
Outcome: To publish papers in conference or a journal.
19
ELECTIVES
CAS7A1 BIG DATA ANALYTICS
Objectives:
To get introduced to big data analytics and to understand the importance of big data.
To get introduced with different approaches of exploiting big data sources such as
social media, mobile devices and sensors through understanding methodologies of
analyzing big data.
To acquire knowledge of handling unstructured and semi-structured data using
NoSQL database.
Big Data Analytics: Classification, Clustering, and Mining, Information Extraction, Regression
and Feature Selection, Reasoning: Logic and its Limits, Dealing with Uncertainty, Bayesian
Inference, Forecasting, Neural Models, Introduction to Deep Learning.
NoSQL Databases : Evolution of Document DataBases – Design and use of NoSQL Databases
– Storage and Retrieval of Unstructured Data – NoSQL Applications and query options. Types
of NoSQL Databases, Graph Databases – Neo4j ; Case Studies - Real Time Sentiment
Analysis, Stock Market Predictions.
FRAMEWORKS: Applications on Big Data Using Pig and Hive – Data processing operators
in Pig – Hive services – HiveQL – Querying Data in Hive - fundamentals of HBase and
ZooKeeper - Visualizations - Visual data analysis techniques, interaction techniques; Systems
and applications ; Introduction to Tableau.
Introduction: IT revolution, digital media, relationship among people, media and information,
The fundamental structure of web, Social media as a platform, the framework of media, the
References:
20
4. Anand Rajaraman and Jeffrey David Ullman, “Mining of Massive Datasets”,
Cambridge University Press, 2012.
5. Bill Franks, “Taming the Big Data Tidal Wave: Finding Opportunities in Huge Data
Streams with Advanced Analytics”, JohnWiley & sons, 2012.
6. Glenn J. Myatt, “Making Sense of Data”, John Wiley & Sons, 2007
7. PeteWarden, “Big Data Glossary”, O’Reilly, 2011.
8. Jiawei Han, Micheline Kamber “Data Mining Concepts and Techniques”, Second
Edition, Elsevier, Reprinted 2008.
9. Da Ruan,Guoquing Chen, Etienne E.Kerre, GeertWets, Intelligent Data Mining,
Springer,2007
10. Paul Zikopoulos ,Dirk deRoos , Krishnan Parasuraman , Thomas Deutsch , James Giles
, David Corrigan , Harness the Power of Big Data The IBM Big Data Platform, Tata
McGraw Hill Publications, 2012.
Outcomes
Students will be able to:
Comprehend the concepts of big data analytics.
Build web-intelligence applications exploiting big data using new big data platforms
based on the ‘map-reduce’ parallel programming framework.
Effectively use NoSQL database for storage and retrieval of big data.
21
CAS7A2 COMPUTATIONAL INTELLIGENCE
Objectives:
To introduce the fundamentals of key intelligent systems technologies including
neural networks, fuzzy systems, evolutionary computation and swarm intelligence
To explain the integration of intelligent systems technologies
Neuro Fuzzy Systems - Adaptive Neuro - Fuzzy Inference Systems - Architecture - Hybrid
Learning Algorithm - Learning Methods that Cross-fertilize ANFIS and RBFN - Coactive
Neuro Fuzzy Modelling - Framework Neuron Functions for Adaptive Networks - Neuro Fuzzy
Spectrum
References:
1. Eberhart and Shi, “Computational Intelligence ‐ Concepts to Implementations” Morgan
Kaufmann, 2007
2. S. Haykin, “Neural Networks – A Comprehensive Foundation”, Prentice Hall, 1999
3. N. Sivanandam, S. N. Deepa,” Principals of soft Computing”, Wiley India, 2nd ed., 2011.
4. A.P. Engelbrecht, “Computational Intelligence: An Introduction”, 2nd Edition, John Wiley &
Sons, 2012.
5. H.K. Lam, S.S.H. Ling, and H.T. Nguyen, “Computational Intelligence and Its Applications:
Evolutionary Computation, Fuzzy Logic, Neural Network and Support Vector Machine”,
Imperial College Press, 2011.
6. J.S.R.Jang, C.T.Sun and E.Mizutani, “Neuro-Fuzzy and Soft Computing”, PHI, 2004
7. J. Freeman and D. Skapura, “Neural Networks: Algorithms, Applications, and Programming
Techniques”, Addison-Wesley, 1991
8. G. J. Klir, and B. Yuan, “Fuzzy Sets and Fuzzy Logic: Theory and Applications”, Prentice-
Hall, 1995
9. S. Rajasekaran and G.A.V.Pai, “Neural Networks, Fuzzy Logic and Genetic Algorithms”, PHI,
2003
22
Outcomes:
Students will be able to:
Implement typical computational intelligence algorithms
Apply intelligent systems technologies in a variety of engineering applications
Model global optimization solutions for various real life problems
23
CAS7A3 CYBER SECURITY
Objectives:
To study the concepts and principles of Cyber Security.
To understand the various security threats and the ways to overcome them effectively.
To know the effectiveness of various network and data security toolkits.
Cyber Security - Security Model, Balancing Security and Access, Security SDLC
References:
Outcomes:
Students will be able to:
Understand and anticipate cyber security issues and to suggest preventive measures.
Design and execute penetration testing on a real computer network.
24
CAS7B1 GPGPU PROGRAMMING
Objectives:
To introduce the features of massively parallel programming architecture.
To utilize massively parallel computing capability of a GPU for high performance
computing requirements.
To provide an overview of parallel design patterns.
Introduction: CPU Design – Latency Oriented, GPU Design – Throughput Oriented – Need to
use both - Software Cost - Scalability, Portability, GPU Introduction and Architecture, History
of GPU Computation, GPGPU Frameworks, Graphics Processor Architecture, Compute
Capability, Drop-In Libraries, OpenACC Directives
Parallel Programming Patterns: Overview, Element Addressing - Multidimensional Kernel,
Map, Gather, Scatter, Reduce, Scan, Thread Handling, Overview, Barrier Synchronization,
Thread Synchronization Demo, Warp Divergence, Matrix Multiplication
CUDA Tools and APIs: Tools Overview, Using NSight Visual Studio and Eclipse, Running
CUDA Apps, Debugging, Profiling, CUDA Architecture, CUDA APIs, CUDA 5.5 and 6
Features
CUDA programming: Overview, Compilation Process, Von Neumann Processor and CUDA
Thread, Execution Model, First program in CUDA (Vector Addition), Location Qualifiers,
Grid and Block Dimensions, Global Memory, Constant and Texture Memory, Shared Memory,
Register and Local Memory, Data Movement, Error Handling, Device Introspection
Atomics: Overview, Need for Atomics, Atomic Functions, Atomic Sum, Monte Carlo Pi,
Handling Events and Streams, Overview, Events, Event API, Event example, Pinned.
References:
1. D. Kirk and W. Hwu, “Programming Massively Parallel Processors – A hands-on
approach”, 2nd Edition, Morgan Kaufmann Publishers, 2010.
2. Thomas Rauber and Gudula Runger, “Parallel Programming for Multi-core and Cluster
Systems”, ACM Computing classification, 1998.
3. Shane Cook, “CUDA Programming - A Developer’s Guide to Parallel Computing with
GPUs”, Morgan Kaufmann Publishers, 2012.
4. Jason Sanders and Edward Kandrot, “CUDA by Example”, Addison Wesley, 2010.
Outcomes
Students will be able to:
Utilize massively parallel computing capability of a GPU.
Solve High Performance Computing problems using GPUs.
25
CAS7B2 PATTERN RECOGNITION
Objectives:
To understand the fundamental concepts related to image processing, feature
extraction, pattern analysis etc.
To apply the concepts to solve computer vision problems of different fields.
Edges - Canny, LOG, DOG; Line detectors (Hough Transform), Corners - Harris and Hessian
Affine, Orientation Histogram, SIFT, SURF, HOG, GLOH, Scale-Space Analysis- Image
Pyramids and Gaussian derivative filters, Gabor Filters and DWT.
Motion analysis: Background Subtraction and Modeling, Optical Flow, KLT, Spatio-Temporal
Analysis, Dynamic Stereo; Motion parameter estimation.
References:
Outcomes:
Students will be able to:
Apply fundamental algorithms in Image Processing and analyse their applicability
for real time problems.
Design solutions for various computer vision problems.
26
CAS7B3 CRYPTOGRAPHY
Objectives:
To understand the principles of encryption algorithms: conventional and public key
cryptography.
To have a detailed knowledge about authentication, hash functions and application
level security mechanisms.
Outcomes:
Students will be able to:
Understand fundamental techniques used in Cryptography.
Decide upon the use of a particular cryptographic technique for a specific real time
scenario.
27
CAS7C1 DESIGN PATTERNS
Objectives
To comprehend the rationale and benefits of software design patterns.
To impart knowledge on the development of good design patterns.
Introduction: Introduction to Design Patterns, Object Oriented Analysis and Design, Types of
Design Patterns, Applications of Design Patterns, Anti Patterns, Code Refactoring Techniques
for design patterns
Creational Patterns: Factory Methods, Static Factory Pattern, Singleton Pattern, Abstract
Factory Pattern, Object Pool Pattern, Prototype Pattern, Builder Pattern, Telescopic
Constructor Pattern
Structural Patterns: Adapter Pattern, Bridge Pattern, Composite Pattern, Decorator Pattern,
Façade Pattern, Flyweight Pattern, Private Class Data, Proxy Pattern
Behavioral Design Patterns – II: Memento Pattern, Null Object Pattern, Observer Pattern, State
Pattern, Strategy Pattern, Template method, Visitor Pattern
References:
Outcomes
Students will be able to:
Solve common problems in software design with ease.
Represent design decisions more effectively with examples and architectural use
cases.
28
CAS7C2 INTERNET OF THINGS
Objectives
To understand the fundamentals of internet of things.
To acquire skills to program the embedded devices and connecting them to the web
and cloud.
Internet of things: Overview, technology of the internet of things, enchanted objects, Design
principles for connected devices, Privacy, Web thinking for connected devices
Writing Code: building a program and deploying to a device, writing to Actuators, Blinking
Led, Reading from Sensors, Light Switch, Voltage Reader, Device as HTTP Client, HTTP,
Push Versus Pull
Pachube, Netduino, Sending HTTP Requests—The Simple Way, Sending HTTP Requests—
The Efficient Way
HTTP: Device as HTTP Server, Relaying Messages to and from the Netduino, Request
Handlers, Web Html, Handling Sensor Requests, Handling Actuator Requests
Going Parallel: Multithreading, Parallel Blinker, prototyping online components, using an API,
from prototypes to reality, business models, ethics, privacy, disrupting control, crowdsourcing
References:
1. Adrian McEwen and Hakim Cassimally, “Designing the Internet of Things”, John
Wiley & Sons, 2013.
2. Cuno Pfister, “Getting Started with the Internet of Things: Connecting Sensors and
Microcontrollers to the Cloud”, Maker Media, 2011.
Outcomes:
Students will be able to:
Program embedded devices.
Program simple actuators and sensors.
Build client programs that push sensor readings from a device to a web service.
29
CAS7C3 CLOUD COMPUTING AND VIRTUALIZATION
FUNDAMENTALS
Objectives:
To learn the various concepts of Distributed and Cloud computing.
To study the Architecture and service models in Cloud computing.
Cloud Computing and Service Models – Data-center Design and Interconnection Networks –
Architectural Design of Compute and Storage Clouds – Public cloud Platforms – Inter-cloud
Resource Management – Cloud Security and Trust Management
Cloud Programming and Software Environments – Features of Cloud and Grid Platforms –
Parallel and Distributed Paradigms – Programming Support of Google App Engine – Amazon
AWS and Microsoft Azure - Emerging Cloud Software Environments
References:
1. Kai Hwang, Geoffrey C.Fox, and Jack J. Dongarra,”Distributed and Cloud Computing”,
Elsevier India Private Limited, 2012.
2. Foster and Kesselman, “The Grid: Blueprint for a New Computing Infrastructure”,
Morgan Kauffman publishers Inc.,2004
3. Coulouris, Dollimore and Kindber, “Distributed System: Concept and Design”, Fifth
Edition, Addison Wesley, 2011.
4. Michael Miller, “Cloud Computing”, Dorling Kindersley India, 2009.
5. Anthony T. Velte, Toby J. Velte and Robert Elsenpeter, “Cloud computing: A practical
Approach”, McGraw Hill, 2010.
Outcomes:
Students will be able to:
Be aware of the features of Cloud Computing.
Understand several performance criteria to evaluate the quality of the cloud
architecture.
30