0% found this document useful (0 votes)
461 views

Fds - Syllabus-2 Engineering Sppu

This all material of computer engineering

Uploaded by

nerkardigambar8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
461 views

Fds - Syllabus-2 Engineering Sppu

This all material of computer engineering

Uploaded by

nerkardigambar8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Curriculum for Second Year of Artificial Intelligence and Data Science (2020 Course), Savitribai Phule Pune University

Savitribai Phule Pune University


Second Year of Artificial Intelligence and Data Science (2020 Course)

Home
210242: Fundamentals of Data Structures
Teaching Scheme Credit Scheme Examination Scheme and Marks
Lecture: 03 Hours/Week 03 Mid_Semester(TH): 30 Marks
End_Semester(TH): 70 Marks
Prerequisite Courses: 110005: Programming and Problem Solving
Companion Course: 217526: Data Structures Laboratory
Course Objectives:
The course is intended to provide the foundations of the practical implementation and usage of Data
Structures and Algorithms to ensure that the learner evolves into a competent programmer capable of
designing and analyzing implementations of data structures and algorithms for different kinds of
problems.
To understand the standard and abstract data representation methods.
To acquaint with the structural constraints and advantages in usage of the data.
To understand various data structures, operations on it and the memory requirements
To understand various data searching and sorting methods.
To understand various algorithmic strategies to approach the problem solution.
Course Outcomes:
On completion of the course, learner will be able to
CO1:Design the algorithms to solve the programming problems, identify appropriate algorithmic
strategy for specific application, and analyze the time and space complexity.
CO2:Discriminate the usage of various structures, Design/Program/Implement the appropriate
data structures; use them in implementations of abstract data types and Identity the
appropriate data structure in approaching the problem solution.
CO3:Demonstrate use of sequential data structures- Array and Linked lists to store and process
data.
CO4:Understand the computational efficiency of the principal algorithms for searching and
sorting and choose the most efficient one for the application.
CO5:Compare and contrast different implementations of data structures (dynamic and static).
CO6:Understand, Implement and apply principles of data structures-stack and queue to solve
computational problems.
Course Contents
Unit I Introduction to Algorithm and Data Structures (07 Hours)
Introduction: From Problem to Program (Problem, Solution, Algorithm, Data Structure and Program).
Data Structures: Data, Information, Knowledge, and Data structure, Abstract Data Types (ADT), Data
Structure Classification (Linear and Non-linear, Static and Dynamic, Persistent and Ephemeral data
structures).
Algorithms: Problem Solving, Introduction to algorithm, Characteristics of algorithm, Algorithm
design tools: Pseudo-code and flowchart. Complexity of algorithm: Space complexity, Time
complexity, Asymptotic notation- Big-O, Theta and Omega, finding complexity using step count
method, Analysis of programming constructs-Linear, Quadratic, Cubic, Logarithmic. Algorithmic
Strategies: Introduction to algorithm design strategies- Divide and Conquer, and Greedy strategy.
#Exemplar/Case Multiplication technique by the mathematician Carl Friedrich Gauss and
Studies Karatsuba algorithm for fast multiplication.
*Mapping of Course CO1, CO2
Outcomes for Unit I
Unit II Linear Data Structure Using Sequential (07 Hours)
Home

Organization

http://collegecirculars.unipune.ac.in/sites/documents/Syllabus2021/Forms/AllItems.aspx #12/88
Curriculum for Second Year of Artificial Intelligence and Data Science (2020 Course), Savitribai Phule Pune University
Concept of Sequential Organization, Overview of Array, Array as an Abstract Data Type, Operations
on Array, Merging of two arrays, Storage Representation and their Address Calculation: Row major
and Column Major, Multidimensional Arrays: Two-dimensional arrays, n-dimensional arrays. Concept
of Ordered List, Single Variable Polynomial: Representation using arrays, Polynomial as array of
structure, Polynomial addition, Polynomial multiplication. Sparse Matrix: Sparse matrix
representation using array, Sparse matrix addition, Transpose of sparse matrix- Simple and Fast
Transpose, Time and Space tradeoff.
#Exemplar/Case Study use of sparse matrix in Social Networks and Maps.
Studies Study how Economists use polynomials to model economic growth patterns,
how medical researchers use them to describe the behaviour of Covid-19
virus.
*Mapping of Course CO1, CO2, CO3
Outcomes for Unit II
Unit III Searching and Sorting (07 Hours)
Searching: Search Techniques-Sequential Search/Linear Search, Variant of Sequential Search-
Sentinel Search, Binary Search, Fibonacci Search, and Indexed Sequential Search.
Sorting: Types of Sorting-Internal and External Sorting, General Sort Concepts-Sort Order, Stability,
Efficiency, and Number of Passes, Comparison Based Sorting Methods-Bubble Sort, Insertion Sort,
Selection Sort, Quick Sort, Shell Sort,
Non-comparison Based Sorting Methods-Radix Sort, Counting Sort, and Bucket Sort, Comparison of
All Sorting Methods and their complexities
#Exemplar/Case Use of Fibonacci search in non-uniform access memory storage and in
Studies Optimization of Unimodal Functions. Timsort as a hybrid stable sorting
algorithm
*Mapping of Course CO1, CO2, CO4
Outcomes for Unit III
Unit IV Linked List (07 Hours)
Introduction to Static and Dynamic Memory Allocation,
Linked List: Introduction, of Linked Lists, Realization of linked list using dynamic memory
management,operations, Linked List as ADT, Types of Linked List: singly linked, linear and
Circular Linked Lists, Doubly Linked List, Doubly Circular Linked List, Primitive Operations on
Linked List-Create, Traverse, Search, Insert, Delete, Sort, Concatenate. Polynomial Manipulations-
Polynomial addition. Generalized Linked List (GLL) concept, Representation of Polynomial using
GLL.
#Exemplar/Case Garbage Collection
Studies
*Mapping of Course CO1, CO2, CO3, CO5
Outcomes for Unit IV
Unit V Stack (07 Hours)
Basic concept, stack Abstract Data Type, Representation of Stacks Using Sequential Organization,
stack operations, Multiple Stacks,
Applications of Stack- Expression Evaluation and Conversion, Polish notation and expression
conversion, Need for prefix and postfix expressions, Postfix expression evaluation, Linked Stack and
Operations.
Recursion- concept, variants of recursion- direct, indirect, tail and tree, backtracking algorithmic
strategy, use of stack in backtracking.
#Exemplar/Case Android- multiple tasks/multiple activities and back-stack, Tower of Hanoi, 4
Studies Queens problem.
*Mapping of Course CO1, CO2, CO3, CO5, CO6
Outcomes for Unit V
Unit VI Queue (07 Hours)

http://collegecirculars.unipune.ac.in/sites/documents/Syllabus2021/Forms/AllItems.aspx #13/88
Curriculum for Second Year of Artificial Intelligence and Data Science (2020 Course), Savitribai Phule Pune University
Basic concept, Queue as Abstract Data Type, Representation of Queue using Sequential
organization,Queue Operations, Circular Queue and its advantages, Multi-queues,Linked Queue and
Operations. Deque-Basic concept, types (Input restricted and Output restricted), Priority Queue- Basic
concept, types (Ascending and Descending).
#Exemplar/Case Priority queue in bandwidth management
Studies
*Mapping of Course CO1, CO2, CO3, CO5, CO6
Outcomes for Unit VI
Learning Resources
Text Books:
1.
Publisher, ISBN: 8175152788, 9788175152786.
2.
SBN: 978-1-118-29027-9
Reference Books:
1. Steven S S. Skiena Springer, 2nd ed. 2008 Edition, ISBN-

Home
13: 978-1849967204, ISBN-10: 1849967202.
2.

3.
2002, ISBN-81-7808-670-0.
4.
ISBN 13-9788120311312.
5. B Publisher, ISBN: 9789389845006
e-Books:
https://www.ebooks.com/en-us/book/95777110/Python-data-structures-and-algorithms/benjamin-baka/
https://www.ebookphp.com/advanced-data-structures-epub-pdf/
https://www.ebookphp.com/data-structures-and-algorithms-professional-edition-beginners-guide-epub-pdf/
MOOC/ Video Lectures available at:
https://nptel.ac.in/courses/106/102/106102064/
https://nptel.ac.in/courses/106/105/106105085
https:// nptel.ac.in/courses/106/106/106106127
Other:
Know Thy Complexities! (https://www.bigocheatsheet.com/) (https://github.com/RehanSaeed/.NET-Big-O-
Algorithm-Complexity-Cheat-Sheet)
@The CO-PO Mapping Matrix
CO\PO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12
CO1 2 2 1 2 - - - - - - - -
CO2 1 2 2 1 - - - - - - - -
CO3 1 1 1 - - - - - - - - -
CO4 1 - 1 - - - - - - - - -
CO5 1 1 - 1 - - - - - - - -
CO6 1 1 1 1 1 - - - - - - -

http://collegecirculars.unipune.ac.in/sites/documents/Syllabus2021/Forms/AllItems.aspx #14/88
Curriculum for Second Year of Artificial Intelligence and Data Science (2020 Course), Savitribai Phule Pune University

Savitribai Phule Pune University


Second Year of Artificial Intelligence and Data Science (2020 Course)

Home
217522: Data Structures Laboratory
Teaching Scheme Credit Scheme Examination Scheme and Marks
Practical: 04 Hours/Week 02 Term Work: 25 Marks
Practical: 50 Marks
Companion Course: 210242: Fundamental of Data Structures
Course Objectives:
To understand basic techniques and strategies of algorithm analysis, the memory requirement for various data
structures like array, linked list, stack, queue etc using concepts of python and C++ programming language.
Course Outcomes:
On completion of the course, learner will be able to
CO1: Use algorithms on various linear data structure using sequential organization to solve real life
problems.
CO2: Analyze problems to apply suitable searching and sorting algorithm to various applications.
CO3: Analyze problems to use variants of linked list and solve various real life problems.
CO4: Designing and implement data structures and algorithms for solving different kinds of
problems.
Guidelines for Instructor's Manual
-on resource and reference. The instructor's
manual need to include prologue (about University/program/ institute/ department/foreword/ preface),
curriculum of course, conduction and Assessment guidelines, topics under consideration-concept,
objectives, outcomes, set of typical applications/assignments/ guidelines, and references.
Guidelines for Student's Laboratory Journal
The laboratory assignments are to be submitted by student in the form of journal. Journal consists of
prologue, Certificate, table of contents, and handwritten write-up of each assignment (Title,
Objectives, Problem Statement, Outcomes, software and Hardware requirements, Date of
Completion, Assessment grade/marks and assessor's sign, Theory- Concept in brief, algorithm,
flowchart, test cases, Test Data Set(if applicable), mathematical model (if applicable),
conclusion/analysis. Program codes with sample output of all performed assignments are to be
submitted as softcopy.
As a conscious effort and little contribution towards Green IT and environment awareness, attaching
printed papers as part of write-ups and program listing to journal may be avoided. Use of DVD
containing students programs maintained by Laboratory In-charge is highly encouraged. For reference
one or two journals may be maintained with program prints at Laboratory.
Guidelines for Laboratory / Term Work Assessment
Continuous assessment of laboratory work should be done based on overall performance and
Laboratory assignments performance of student. Each Laboratory assignment assessment should be
assigned grade/marks based on parameters with appropriate weightage. Suggested parameters for
overall assessment as well as each Laboratory assignment assessment include- timely completion,
performance, innovation, efficient codes, punctuality and neatness.
Home

Guidelines for Laboratory Conduction


The instructor is expected to frame the assignments by understanding the prerequisites, technological
aspects, utility and recent trends related to the topic. The assignment framing policy need to address
the average students and inclusive of an element to attract and promote the intelligent students. The
instructor may set multiple sets of assignments and distribute among batches of students. It is
appreciated if the assignments are based on real world problems/applications. Encourage students for
appropriate use of Hungarian notation, proper indentation and comments. Use of open source software
is to be encouraged. In addition to these, instructor may assign one real life application in the form of a
mini-project based on the concepts learned. Instructor may also set one assignment or mini-project that
is suitable to respective branch beyond the scope of syllabus.
Home

Set of suggested assignment list is provided in groups- A, B, C, D, and E. Each student must perform
at least 13 assignments ( at least 3 from group A, 3 from group B, 2 from group C, 2 from group D and
3 from group E. )

http://collegecirculars.unipune.ac.in/sites/documents/Syllabus2021/Forms/AllItems.aspx #23/88
Curriculum for Second Year of Artificial Intelligence and Data Science (2020 Course), Savitribai Phule Pune University
Group A and B assignments should be implemented in Python without using built-in methods
for major functionality of assignment. Use List data structure of Python as array. Group C, D
and E assignments should be implemented in C++ language.
Operating System recommended:- 64-bit Open source Linux or its derivative
Programming tools recommended: - Open Source Python, Programming tool like
Jupyter Notebook, Pycharm, Spyder, G++/GCC.
Guidelines for Practical Examination
Both internal and external examiners should jointly set problem statements. During practical
assessment, the expert evaluator should give the maximum weightage to the satisfactory
implementation of the problem statement. The supplementary and relevant questions may be asked at

effective and efficient implementation. So encouraging efforts, transparent evaluation and fair
approach of the evaluator will not create any uncertainty or doubt in the minds of the students. So
adhering to these principles will consummate our team efforts to the promising start of the student's
academics.
Virtual Laboratory:
http://cse01-iiith.vlabs.ac.in/Courses%20Aligned.html?domain=Computer%20Science
Suggested List of Laboratory Experiments/Assignments
Sr. No Group A
1 In second year comp
play badminton and group C students play football.
Write a Python program using functions to compute following: -
a) List of students who play both cricket and badminton
b) List of students who play either cricket or badminton but not both
c) Number of students who play neither cricket nor badminton
d) Number of students who play cricket and football but not badminton.
(Note- While realizing the group, duplicate entries should be avoided, Do not use SET built-
in functions)
2
N students in the class. Write functions to compute following:
a) The average score of class
b) Highest score and lowest score of class
c) Count of students who were absent for the test
d) Display mark with highest frequency
3 Write a Python program for department library which has N books, write functions for
following:
a) Delete the duplicate entries
b) Display books in ascending order based on cost of books
c) Count number of books with cost more than 500.
d) Copy books in a new list which has cost less than 500.
4 Write a Python program that computes the net amount of a bank account based a transaction
log from console input. The transaction log format is shown as following: D 100 W 200
(Withdrawal is not allowed if balance is going negative. Write functions for withdraw and
deposit) D means deposit while W means withdrawal.
Suppose the following input is supplied to the program:
D 300, D 300 , W 200, D 100 Then, the output should be: 500
5 Write a Python program to compute following operations on String:
a) To display word with the longest length
Home

b) To determines the frequency of occurrence of particular character in the string


c) To check whether given string is palindrome or not
d) To display index of first appearance of the substring
e) To count the occurrences of each word in a given string

http://collegecirculars.unipune.ac.in/sites/documents/Syllabus2021/Forms/AllItems.aspx #24/88
Curriculum for Second Year of Artificial Intelligence and Data Science (2020 Course), Savitribai Phule Pune University
6 It is decided that weekly greetings are to be furnished to wish the students having their
birthdays in that week. The consolidated sorted list with desired categorical information is to
be provided to the authority. Write a Python program to store students PRNs with date and
month of birth. Let List_A and List_B be the two list for two SE Computer divisions. Lists

resulting in sorted information about Date of Birth of SE Computer students


7 Write a Python Program for magic square. A magic square is an n * n matrix of the integers
1 to n2 such that the sum of each row, column, and diagonal is the same. The figure given
below is an example of magic square for case n=5. In this example, the common sum is 65.

8 Write a Python program that determines the location of a saddle point of matrix if one exists.
An m x n matrix is said to have a saddle point if some entry a[i][j] is the smallest value in
row i and the largest value in j.
9 Write a Python program to compute following computation on matrix:
a) Addition of two matrices B) Subtraction of two matrices
c) Multiplication of two matrices d) Transpose of a matrix
10 Write a Python program for sparse matrix realization and operations on it- Transpose, Fast
Transpose and addition of two matrices
Group B
11 a) Write a Python program to store roll numbers of student in array who attended training
program in random order. Write function for searching whether particular student
attended training program or not, using Linear search and Sentinel search.
b) Write a Python program to store roll numbers of student array who attended training
program in sorted order. Write function for searching whether particular student attended
training program or not, using Binary search and Fibonacci search
12 a) Write a Python program to store names and mobile numbers of your friends in sorted
order on names. Search your friend from list using binary search (recursive and non-
recursive). Insert friend if not present in phonebook
b) Write a Python program to store names and mobile numbers of your friends in sorted
order on names. Search your friend from list using Fibonacci search. Insert friend if not
present in phonebook.
13 Write a Python program to maintain club members, sort on roll numbers in ascending order.
Write function
not. Ternary search is modified binary search that divides array into 3 halves instead of two.
14 Write a Python program to store first year percentage of students in array. Write function for
sorting array of floating point numbers in ascending order using
a) Selection Sort
b) Bubble sort and display top five scores.
15 Write a Python program to store second year percentage of students in array. Write function
for sorting array of floating point numbers in ascending order using
Home

a) Insertion sort
b) Shell Sort and display top five scores
16 Write a Python program to store first year percentage of students in array. Write function for
sorting array of floating point numbers in ascending order using quick sort and display top
five scores.
17 Write a Python program to store 12th class percentage of students in array. Write function for
sorting array of floating point numbers in ascending order using bucket sort and display top
five scores.

http://collegecirculars.unipune.ac.in/sites/documents/Syllabus2021/Forms/AllItems.aspx #25/88
Curriculum for Second Year of Artificial Intelligence and Data Science (2020 Course), Savitribai Phule Pune University
18 Write Python program to store 10th class percentage of students in array. Write function for
sorting array of floating point numbers in ascending order using radix sort and display top
five scores
Group C
19 Department of Computer Engineering has student's club named 'Pinnacle Club'. Students of
second, third and final year of department can be granted membership on request. Similarly
one may cancel the membership of club. First node is reserved for president of club and last
node is reser
information using singly linked list. Store student PRN and Name. Write functions to:
a) Add and delete the members as well as president or even secretary.
b) Compute total number of members of club
c) Display members
d) Two linked lists exists for two divisions. Concatenate two lists.
20 The ticket booking system of Cinemax theater has to be implemented using C++ program.
There are 10 rows and 7 seats in each row. Doubly circular linked list has to be maintained to
keep track of free seats at rows. Assume some random booking to start with. Use array to
store pointers (Head pointer) to each row. On demand
a) The list of available seats is to be displayed
b) The seats are to be booked
c) The booking can be cancelled.
21 Write C++ program for storing appointment schedule for day. Appointments are booked
randomly using linked list. Set start and end time and min and max duration for visit slot.
Write functions for-
A) Display free slots B) Book appointment C) Sort list based on time
D) Cancel appointment ( check validity, time bounds, availability)
E) Sort list based on time using pointer manipulation
22 Second year Computer Engineering class, set A of students like Vanilla Ice-cream and set B
of students like butterscotch ice-cream. Write C++ program to store two sets using linked
list. compute and display-
a) Set of students who like both vanilla and butterscotch
b) Set of students who like either vanilla or butterscotch or not both
c) Number of students who like neither vanilla nor butterscotch
23 Write C++ program for storing binary number using doubly linked lists. Write functions-
a)
b) Add two binary numbers
24 Write C++ program to realize Set using Generalized Liked List (GLL)

e.g. A ={ a, b, {c, d,e, {}, {f,g}, h, I, {j,k}, l, m}. Store and print as set notation.

Group D
25
punctuation, capitalization, an
Home

observing that they are the same forward and backward. One way to check for a palindrome
is to reverse the characters in the string and then compare with them the original-in a
palindrome, the sequence will be identical. Write C++ program with functions-
a) To print original string followed by reversed string using stack
b) To check whether given string is palindrome or not
26 In any language program mostly syntax error occurs due to unbalancing delimiter such as
(),{},[]. Write C++ program using stack to check whether given expression is well
parenthesized or not.

http://collegecirculars.unipune.ac.in/sites/documents/Syllabus2021/Forms/AllItems.aspx #26/88
Curriculum for Second Year of Artificial Intelligence and Data Science (2020 Course), Savitribai Phule Pune University
27 Implement C++ program for expression conversion as infix to postfix and its evaluation
using stack based on given conditions:
1. Operands and operator, both must be single character.
2. Input Postfix expression must be in a desired format.
3. Only '+', '-', '*' and '/ ' operators are expected.
28 A classic problem that can be solved by backtracking is called the Eight Queens problem,
which comes from the game of chess. The chess board consists of 64 square arranged in an 8
by 8 grid. The board normally alternates between black and white square, but this is not
relevant for the present problem. The queen can move as far as she wants in any direction, as
long as she follows a straight line, Vertically, horizontally, or diagonally. Write C++
program with recursive function for generating all possible configurations for 4-queen's
problem.
Group E
29 Queues are frequently used in computer programming, and a typical example is the creation
of a job queue by an operating system. If the operating system does not use priorities, then
the jobs are processed in the order they enter the system. Write C++ program for simulating
job queue. Write functions to add job and delete job from queue.
30 Write program to implement a priority queue in C++ using an inorder list to store the items
in the queue. Create a class that includes the data items (which should be template) and the
priority (which should be int). The inorder list should contain these objects, with operator <=
overloaded so that the items with highest priority appear at the start of the list (which will
make it relatively easy to retrieve the highest item.)
31 A double-ended queue (deque) is a linear list in which additions and deletions may be made
at either end. Obtain a data representation mapping a deque into a one-dimensional array.
Write C++ program to simulate deque with functions to add and delete elements from either
end of the deque.
32 Pizza parlor accepting maximum M orders. Orders are served in first come first served basis.
Order once placed cannot be cancelled. Write C++ program to simulate the system using
circular queue using array.
@The CO-PO Mapping Matrix
PO1 PO1
PO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO12
0 1

1 1 2 1
CO1 - - - - - - - -
2 2 2 1
CO2 - - - - - - - -
CO3
- 2 1 1 - - - - - - - -

CO4 1 2 2 1 - - - - - - - -

http://collegecirculars.unipune.ac.in/sites/documents/Syllabus2021/Forms/AllItems.aspx #27/88

You might also like