M.Sc. Computer Science (Part-I) (For Colleges) - 19.092019
M.Sc. Computer Science (Part-I) (For Colleges) - 19.092019
Preamble:
This syllabus is the extension of the existing syllabus which is currently being taught to
M.Sc. (Computer Science) of Savitribai Phule Pune University for the last few years, but
modified to be placed within the credit based system to be implemented from the academic
year 2019-2020. However, there are few changes incorporated in the existing syllabus.
It is believed that the proposed changes as part of the credit based system will bring a
qualitative change in the way M.Sc. (Computer Science) is taught, which will offer a more
enriched learning experience. It aims to provide technology-oriented students with the
knowledge and ability to develop creative solutions, and better understand the effects of
future developments of computer systems and technology on people and society.
The syllabus is about developing skills to learn new technology, grasping the concepts and
issues behind its use and the use of computers.
M. Sc. [I] Computer Science
Course Structure:
Year/ Course Type Course Course Name Credit % of Assessment
Sem Code IA UE Total
Core Compulsory CSUT111 Paradigm of 4 30 70 100
Theory Paper Programming Language
I Year CSUT112 Design and Analysis of 4 30 70 100
Sem-I Algorithms
CSUT113 Database Technologies 4 30 70 100
Choice Based CSDT114A Cloud computing 2 15 35 50
Optional Paper CSDP114A Cloud Computing 2 15 35 50
Practical
OR
CSDT114B Artificial Intelligence 2 15 35 50
CSDP114B Artificial Intelligence 2 15 35 50
Practical
OR
CSDT114C Web Services 2 15 35 50
CSDP114C Web Services Practical 2 15 35 50
Core Compulsory CSUP115 PPL and Database 4 30 70 100
Practical Paper Technologies Practical
Subject Platform
PPL Linux
Database Technologies Linux
AI Linux
Web Services Linux/Windows
Cloud Computing Linux
Note : Any version of Linux (Fedora/ Redhat/ Ubuntu etc) can be used as per your comfort.
M. Sc. [I] Computer Science
Detailed Syllabus:
3 Control Flow 5
• Expression Evaluation , Precedence and
Associativity, Assignments, Initialization,
Ordering Within Expressions, Short-Circuit
Evaluation
• Structured and Unstructured Flow, Structured
Alternatives to goto
• Sequencing
• Selection - Short-Circuited Conditions,
Case/Switch Statements Iteration
• Iteration - Enumeration-Controlled Loops,
Combination Loops, Iterators, Logically
Controlled Loops Recursion
• Recursion - Iteration and Recursion,
Applicative- and Normal-Order Evaluation
4 Data Types 8
• 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, Ada’s
design Evaluation Implementation of user
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,
• 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
M. Sc. [I] Computer Science
References:
3 Greedy Method 7
• Knapsack problem
• Job sequencing with deadlines,
• Minimum-cost spanning trees: Kruskal and
Prim’s algorithm
• Optimal storage on tapes
• Optimal merge patterns
• Huffman coding
• Shortest Path :Dijkstra’s Algorithm
4 Dynamic Programming 10
• Principle of optimality
• Matrix chain multiplication
• 0/1 Knapsack Problem
i) Merge & Purge
ii)Functional Method
• Bellman Ford Algorithm
• All pairs Shortest Path
Floyd- Warshall Algorithm
• Longest common subsequence,
• String editing, Travelling Salesperson problem
References:
References:
Note: For Database Technologies implementation of databases/assignments can be done in all, but for
university practical examination only MongoDB and Neo4j will be used/considered. Other can be for self
learning/demonstration.
M. Sc. [I] Computer Science
References:
Sr. Assignment
No
1. Working and Implementation of Infrastructure as a service.
2. Working and Implementation of Software as a service.
3. Working and Implementation of Platform as a services.
4. Practical Implementation of Storage as a Service.
5. Working of Google drive to make spreadsheet and notes.
6. Working and Implementation of identity management.
7. Write a program for web feed.
8. Execute the step to Demonstrate and implementation of cloud on single sign on.
9. Practical Implementation of cloud security.
10. Installing and Developing Application Using Google App Engine.
11. Implement VMWAreESXi Server
12. Using OpenNebula to manage heterogeneous distributed data center Infrastructure.
13. Implementation of Cloud Failure Cluster.
14. Managing and working of cloud xen server.
15. Working with Aneka and demonstrate how to Managing cloud computing Resources .
16. Installation and configuration of cloud Hadoop and demonstrate simple query.
17. Create a sample mobile application using Amazon Web Service (AWS) account as a cloud
service. Also provide database connectivity with implemented mobile application.
M. Sc. [I] Computer Science
Searching:
2
-Defining AI problems as a State Space Search:
example, Search and Control Strategies, Problem
Characteristics, Issues in Design of Search
Programs, Production System.
Blind Search Techniques : 8
-BFS, DFS, DLS, Iterative Deepening, Search,
Bidirectional Search, Uniform cost Search.
Heuristic search techniques:
-Generate and test ,Hill Climbing, Best First
search, Constraint Satisfaction, Mean-End
Analysis, A*,AO*.
M. Sc. [I] Computer Science
Knowledge Representation:
Machine Learning:
References:
References:
Pre-requisites
• Strong knowledge about Java programming / PHP / .Net Framework
• Good Understanding of Object Oriented Programming concepts.
• Must be familiar with XML.
Objectives
• To understand how to develop web services using Java/PHP/.Net
10. Create 'Dynamic Web Project', which will host your web service functionality
to give the suggestion for given key word and create 'Dynamic Web Project',
which will host the client application that tests the web service.
11. Create 'Dynamic Web Project', which will host your web service functionality
to find area and volume of the circle and create 'Dynamic Web Project', which
will host the client application that tests the web service.
12. Create 'Dynamic Web Project', which will host your web service functionality
to find number of vowels in the given string and create 'Dynamic Web Project',
which will host the client application that tests the web service.
13. Create 'Dynamic Web Project', which will host your web service functionality
to convert decimal number to Binary, Octal, Hexa Decimal and create
'Dynamic Web Project', which will host the client application that will send
decimal number & type of conversion and test the web service.
14. Create 'Dynamic Web Project', which will host your web service functionality
to validate user name and password (use database for storing username and
password) and create 'Dynamic Web Project', which will host the client
application that will send user name and password and test the web service.
15. Create 'Dynamic Web Project', which will host your web service functionality
for returning book price and create 'Dynamic Web Project', which will host the
client application that will send Book Name
M. Sc. [I] Computer Science
5. Create class Project (id, name, location). Define parameterized constructor. Keep a count of
each object created and display the details of each project.
6. Define a class Sports (id, name, description, amount). Derive two classes Indoor and Outdoor.
Define appropriate constructors and operations. Create an object and perform operations.
7. Design abstract class Employee with computeSal() as abstract function. Create two subclasses
Worker and Manager. Salary of worker should be calculated on hourly basis of work and
Salary of Manager should be calculated on monthly basis with additional incentives.
List
1. Create Lists using five different methods( Lisp style , Java style, fill, range and tabulate
methods)
2. Create two Lists and Merge it and store the sorted in ascending order.
3. Create a list of integers divisible by 3 from List containing numbers from 1 to 50.
4. Create a list of even numbers up to 10 and calculate its product.
5. Write a program to create list with 10 members using function 3n2+4n+6
6. Write a program to create a list of 1 to 100 numbers. Create second list from first list
selecting numbers multiple of 10.
7. Create a list of 50 members using function 2n+3. Create second list excluding all elements
multiple of 7.
Map
1. Write a user defined functions to convert lowercase letter to uppercase and call the function
using Map.
2. Write a program to create map with Rollno and FirstName. Print all student information with
same FirstName.
Set
1. Write a program to create two sets and find common elements between them.
2. Write a program to display largest and smallest element of the Set
3. Write a program to merge two sets and calculate product and average of all elements of the
Set
M. Sc. [I] Computer Science
Database Technologies: MongoDB Practical Assignment 1
1. Create a database with the name ‘Movie’.
2. A ‘Film’ is a collection of documents with the following fields:
a. Film Id
b. Title of the film
c. Year of release
d. Genre / Category (like adventure, action, sci-fi, romantic etc.) A film
can belong to more than one genre.
e. Actors (First name and Last name)
A film can have more than one actor.
f. Director (First name and Last name)
A film can have more than one director.
g. Release details (It consists of places of release, dates of release and rating of
the film.)
3. An ‘Actor’ is a collection of documents with the following fields:
a. Actor Id
b. First name
c. Last Name
d. Address (Street, City, State, Country, Pin-code)
e. Contact Details (Email Id and Phone No)
f. Age of an actor.
Queries:
This assignment is based on ‘Movie’ database having collections ‘Film’ and ‘Actor’.
Note: It is expected that student should fill in the data relevant to the queries given in the
assignment. The result set should not be empty.
1. Find the titles of all the films starting with the letter ‘R’ released during the year
2009 and 2011.
2. Find the list of films acted by an actor " ".
3. Find all the films released in 90s.
4. Find all films belonging to “Adventure” and “Thriller” genre.
5. Find all the films having ‘A’ rating.
6. Arrange the film names in ascending order and release year should be in descending
order.
7. Sort the actors in ascending order according to their age.
8. Find movies that are comedies or dramas and are released after 2013.
9. Show the latest 2 films acted by an actor “ ”.
10. List the titles of films acted by actors “ ” and “ ”.
11.Retrieve films with an actor living in Spain.
12.Retrieve films with actor details.
Note: Similarly, additional queries can be executed based on these collections for
practice.
M. Sc. [I] Computer Science
Note: It is expected that student should fill in the data relevant to the queries given in the
assignment. The result set should not be empty.
Create the following databases as graph models. Visualize the models after creation, Return
properties of nodes, Return the nodes labels, Return the relationships with its properties.
NB: You may assume and add more labels , relationships, properties to the graphs
There are individual books, readers, and authors that are present in the library data model.. A
minimal set of labels are as follows:
Book: This label includes all the books
Person: This label includes authors, translators, reviewers, Readers, Suppliers and so on
Publisher: This label includes the publishers of books in the database
Tags: This is an array of string tags useful for searching through the database based on topic, arguments,
geographic regions, languages, and so on
Status: the book status , specifying whether its issued or in library.
Condition: book condition, new or old
Cost : Cost of book
Type: book is a Novel, Journal, suspense thriller etc
4. Consider a movie database, with nodes as Actors, Movies, Roles, Producer, Financier, Director.
Assume appropriate relationships between the nodes, include properties for nodes and relationships.
5. Create a Social network database , with labels as Person, Affiliations, Groups, Story, Timeline
etc. Some of the relationships can be as follows:
Person →[friend of]→ Person→[affiliated to]→affiliations
Person →[belongs to]→ Groups, Person →[create]→Story→[refers to] →Person
Person→[creates]→Timeline→[reference for]→ Story ,
Timeline→[contains]→Messages
M. Sc. [I] Computer Science
1. Library Database :
a) List all people, who have issued a book “……”
b) Count the number of people who have read “ ….”
c) Add a property “Number of books issued “ for Mr. Joshi and set its value as the
count
d) List the names of publishers from pune city.
2. Song Database:
a) List the names of songs written by “:…..”
b) List the names of record companies who have financed for the song “….”
c) List the names of artist performing the song “…..”
d) Name the songs recorded by the studio “ …….”
3. Employee Database:
a) List the names of employees in department “……..”
b) List the projects along with their properties, controlled by department “……”
c) List the departments along with the count of employees in it
d) List the skillset for an employee “…….”
4. Movie Database:
a) Find all actors who have acted in a movie “…….”
b) Find all reviewer pairs, one following the other and both reviewing the same
movie, and return entire subgraphs.
c) Find all actors that acted in a movie together after 2010 and return the actor
names and movie node
d) Find all movies produced by “ …….”
1. Library database
a) List all readers who have recommended either book “…” or “……..” or “……..”
b) List the readers who haven’t recommended any book
c) List the authors who have written a book that has been read / issued by maximum number
of readers.
d) List the names of books recommended by “……….” And read by at least one reader
e) List the names of books recommended by “………” and read by maximum number of readers.
f) List the names of publishers who haven’t published any books written by authors from
Pune and Mumbai.
g) List the names of voracious readers in our library
2. Song Database:
a) List the names of artists who have sung only songs written by “………”
b) List the names of artists who have sung the maximum number of songs recorded by “……”
studio
c) List the names of songs financed by “…..”, and sung by “……..”
3. Employee Database:
a) List the names of employees having the same skills as employee “………..”
b) List the projects controlled by a department “……….” and have employees of the same
department working in it.
c) List the names of the projects belonging to departments managed by employee “…….”
4. Movie Database:
a) List the names of actors that paired in multiple movies together.
b) List all pairs of actor–movie subgraphs along with the roles played.
c) List all reviewers and the ones they are following directly or via another a third
Reviewer
d) List the names of movies that have the most number of reviews.
References:
Sr. Title of the Book Author/s Publication
No.
1 The Design of the UNIX Operating System Maurice J. Bach. PHI
2 Advanced Programming in the UNIX Richard Stevens Addison-Wesley
Environment
3 Linux System Programming Robert Love O’Reilly
M. Sc. [I] Computer Science
References:
Assignment 1
Assignment 2
Assignment 3
Assignment 4
M. Sc. [I] Computer Science
References:
2) Know your client: Select anyone category of user and develop application understanding the
user who will be using your system. Comment on the category of user selected and specific
features given for the users and identify what kinds of interfaces will they like and why?.
Compare with existing system analyze and rate them.Analyze user models and develop user
centric interfaces for :
b. Teenagers: Design a digital diary for young teens to help them overcome various social
pressures they deal with during their teen years. The diary should also be like a self help
tool which would help them deal with incidents like bullying, peer pressure, etc.. This is an
open project and you can think in any direction to make the children sail through their teen
years while trying to discover life around them.
Perform analysis of teenagers e.g. their problems, interests, needs, etc
c. Older generation: Folks from the older generation has been very wary of using their credit
card on the Internet. They have various concerns when it comes to paying their bills. Also
because of their old age, it will be beneficial for them to use the internet and pay their
phone, electricity, gas, etc. bills
Analysis of old people e.g. their nature, interests, needs, etc
e. Mentally disabled: Design the interface of a game for mentally disabled children.
Analysis of mentally disabled e.g. their behavior, problems, interests…
Any tool or technology can be used for implementation e.g., VB, DOTNET, JAVA, PHP, etc.
3) Identify 5 different websites catering to one specific goal (eg. Goal – on-line shopping and 5
different websites – ebay, amazon, flipkart, zovi, myntra) and perform a competitive analysis
on them to understand how each one caters to the goal, the interactions and flow of the
payment system and prepare a report on the same. Consider any 8 HCI principles and prepare
the following table evaluating the websites.
M. Sc. [I] Computer Science
2. ..
4) To achieve simplicity one needs to optimize the number of elements on a screen, within limits
of clarity. And minimize the alignment points, especially horizontal or columnar
1. Calculate Screen Complexity for existing Graphical User Interface (GUI).
2. Redesign the Screen by applying various guidelines to lower the complexity of selected
Graphical User Interface (GUI) to achieve simplicity
You recognize the letters as an I, a B, and an M, no problem there. But they aren’t letters at
all; the whole thing is a compilation of bright blue horizontal lines arranged to create the
perception of a set of letters. Gestalt Property used here is Closure. Closure means that we
"close" objects that are themselves not complete; not only completing the figure in our
M. Sc. [I] Computer Science
perception, but perceiving the figure as having an extra element of aesthetic design; we look
for a simple, recognizable pattern.
6) Design an application which consists of different types of menus such as Menu bar, Pull-
Down Menu, Cascading Menu, Pop-up Menus,Tear-off Menus. Apply and explain general
menu design guidelines applied for formatting, ordering, phrasing, selecting choices, and
navigating menus for application which is designed.
7) Implement different Kinds of Windows such as message boxes, palette Windows, Pop-up
Windows, primary window, secondary window, dialog boxes, message box etc. For every
window designed for the application explain:
- Purpose
- Description
- Components
- Kind window
8) Identify separate lines of business, e.g., medical, greeting cards, law etc. Design an
application using proper guidelines for icons. Comment on design of icons and their relevance
in the system.
Icon design is an important process. Meaningful and recognizable icons will speed learning and
recall and yield a much more effective system. Poor design will lead to errors, delays, and
confusion. Looks different from all other icons.
- Is obvious what it does or represents. - Is recognizable when no larger than 16 pixels square.
- Looks as good in black and white as in color. Icon Size
Supply in all standard sizes.
- 16 × 16 pixels.
- 16- and 256-color versions. - 32 × 32 pixels
- 16- and 256-color versions. - 48 × 48 pixels
- 16- and 256-color versions.
- Use colors from the system palette.
- Use an odd number of pixels along each side.
- Provides center pixel around which to focus design.
- Minimum sizes for easy selection:
-With stylus or pen: 15 pixels square.
- With mouse: 20 pixels square.
- With finger: 40 pixels square. - Provide as large a hot zone as possible. Choosing Images
- Use existing icons when available.
- Use images for nouns, not verbs.
- Use traditional images.
- Consider user cultural and social norms.
Start by designing on paper, not on the computer. Ask everyone to sketch his or her ideas.
- Draw in black and white: Many icons will be displayed in monochrome. Color is an
enhancing property; consider it as such.
- Test for expectation, recognition, and learning. Choosing the objects and actions, and the
icons to represent them, is not a precise process, and will not be easy. So, as in any screen
design activity, adequate testing and possible refinement of developed images must be built
into the design process. Icon recognition and learning should both be measured as part of
the normal testing process.
- Test for legibility.
Verify the legibility and clarity of the icons in general. Also, verify the legibility of the icons
on the screen backgrounds chosen. White or gray backgrounds may create difficulties. An
icon mapped in color, then displayed on a monochrome screen, may not present itself
satisfactorily. Be prepared to redraw it in black and white, if necessary.
- Register new icons in the system’s registry.
Create and maintain a registry of all system icons. Provide a detailed and distinctive description
of all new icons.
M. Sc. [I] Computer Science
4 Genetic Algorithms 4
What are Genetic Algorithms? Why Genetic
Algorithms? Traditional Optimization and Search
Techniques,Simple GA, Terminologies and
Operators in GA, Encoding, Selection, Crossover,
Mutation, Search Termination, Constraints in GA
References:
Sr. Assignment
No
1. Write a program to implement Fuzzy Operations
Union
Intersection
Complement
Algebraic sum
Algebraic product
Cartesian product
2. Write a program to implement De Morgans law.
3. Write a program to implement Max-Min Composition and Max-Product Composition.
4. Write a program to implement lambda cut
5. Write a program to implement Activation Function.
6. Write a program to implement Perceptron Learning Rule
7. Write a program to implement Hebb’s Rule
8. Write a program to implement Feed Forward Network
9. Write a program for building an Artificial Neural Network by implementing the Back
propagation Algorithm and test the same using appropriate data sets.
10. Write a program for solving linearly separable problem using Perceptron Model.
11. Write a program to develop supervised learning algorithm
12. Write a program to study and analyze genetic life cycle
M. Sc. [I] Computer Science
Advanced OS Assignments
13. Write a C program to display all the files from current directory whose size is greater that n Bytes
Where n is accept from user.
15. Write a C program which display the information of a given file similar to given by the unix / linux
command ls –l <file name>
16. Write a C program that behaves like a shell (command interpreter). It has its own prompt say
“NewShell$”. Any normal shell command is executed from your shell by starting a child process to
execute the system program corresponding to the command. It should additionally interpret the
following command.
i) count c <filename> - print number of characters in file
ii) count w <filename> - print number of words in file
iii) count l <filename> - print number of lines in file
17. Write a C program that behaves like a shell (command interpreter). It has its own prompt say “NewShell$”.
Any normal shell command is executed from your shell by starting a child process to execute the system
program corresponding to the command. It should additionally interpret the following command.
i) list f <dirname> - print name of all files in directory
ii) list n <dirname> - print number of all entries
iii) list i<dirname> - print name and inode of all files
M. Sc. [I] Computer Science
18. Write a C program that behaves like a shell (command interpreter). It has its own prompt say “NewShell$”.
Any normal shell command is executed from your shell by starting a child process to execute the system
program corresponding to the command. It should additionally interpret the following command.
i) typeline +10 <filename> - print first 10 lines of file
ii) typeline -20 <filename> - print last 20 lines of file
iii) typeline a <filename> - print all lines of file
19. Write a C program that behaves like a shell (command interpreter). It has its own prompt say
“NewShell$”.Any normal shell command is executed from your shell by starting a child process to
execute the system program corresponding to the command. It should
i) additionally interpret the following command.
ii) search f <pattern> <filename> - search first occurrence of pattern in filename
iii) search c <pattern> <filename> - count no. of occurrences of pattern in filename
iv) search a <pattern> <filename> - search all occurrences of pattern in filename
20. Write a C program which receives file names as command line arguments and display those
filenames in ascending order according to their sizes.
i) (e.g $ a.out a.txt b.txt c.txt, …)
21. Write a C program which create a child process which catch a signal sighup, sigint and sigquit. The Parent
process send a sighup or sigint signal after every 3 seconds, at the end of 30 second parent send sigquit signal
to child and child terminates my displaying message "My DADDY has Killed me!!!”.
22. Write a C program to implement the following unix/linux command (use fork, pipe and exec system
call). Your program should block the signal Ctrl-C and Ctrl-\ signal during the execution.
i. ls –l | wc –l
23. Write a C Program that demonstrates redirection of standard output to a file.
24. Write a program that illustrates how to execute two commands concurrently with a pipe.
25. Write a C program that illustrates suspending and resuming processes using signals.
26. Write a C program that illustrates inters process communication using shared memory.