B.Sc. (Data Science) I-Year I-Semester
Course Code: BSDS -101-Paper-I:Problem Solving and Python Programming (Theory)
UNIT-I
Introduction to Computing and Problem Solving: Fundamentals of Computing – Computing Devices – Identification of Computational Problems – Pseudo Code and Flowcharts – Instructions – Algorithms – Building Blocks of Algorithms.
Introduction to Python Programming: Python Interpreter and Interactive Mode– Variables and Identifiers – Arithmetic Operators – Values and Types – Statements, Reading Input, Print Output, Type Conversions, The type () Function and Is Operator, Dynamic and Strongly Typed Language.
Control Flow Statements: The if, The if…else, The if…elif…else Decision Control Statements, Nested if Statement, The while Loop, The for Loop, The continue and break Statements.
UNIT-II
Functions: Built-In Functions, Commonly Used Modules, Function Definition and Calling the Function, The return Statement and void Function, Scope and Lifetime of Variables, Default Parameters, Command Line Arguments. Strings: Creating and Storing Strings, Basic String Operations, Accessing Characters in String by Index Number, String Slicing and Joining, String Methods, Formatting Strings.
UNIT-III
Lists: list operations, list slices, list methods, list loop, mutability, aliasing, cloning lists, list parameters; Tuples: tuple assignment, tuple as return value; Dictionaries: operations and methods; advanced list processing - list comprehension;
Files and exception: text files, reading and writing files, format operator; command line arguments, errors and exceptions, handling exceptions, modules, packages; Illustrative programs: word count, copy file.
UNIT-IV
Object-Oriented Programming: Classes and Objects, Creating Classes in Python, Creating Objects in Python, The Constructor Method, Classes with Multiple Objects, Class Attributes versus Data Attributes, Encapsulation, Inheritance, Polymorphism.
Introduction to Python Programming. Gowri Shankar S., Veena A. CRC Press, Taylor & Francis Group, 2019
Allen B. Downey, ``Think Python: How to Think Like a Computer Scientist’’, 2nd edition, Updated for Python 3, Shroff/O’Reilly Publishers, 2016 (http://greenteapress.com/wp/think- python/)
Learning To Program With Python. Richard L. Halterman. Copyright © 2011
Python for Everybody, Exploring Data Using Python 3. Dr. Charles R. Severance. 2016.
Python For Data Science – Dr. Mohd. Abdul Hameed – Wiley Publications
B.Sc. (Data Science) I-Year II-Semester
Course Code: BSDS -202-Paper-II:Data Structures and Algorithms (Theory)
UNIT – I
Fundamental Concepts: Introduction to Data Structures, Types of Data Structures, Introduction to Algorithm, Pseudo-code, Flow Chart, Analysis of Algorithms. Linear Data Structure Using Arrays: 1-D Arrays, 2-D Arrays, N-D Arrays, Memory Representation and Address Calculation of 1-D, 2-D, N-D Arrays, Concept of Ordered List, String Manipulation, Pros and Cons of Arrays. Stacks: Concept, Primitive Operations, Abstract Data Type, Representation Stacks Using Arrays, Prefix, Infix, Postfix Notations for Arithmetic Expression, Applications of Stacks– Converting Infix Expression to Postfix Expression, Evaluating the Postfix Expression, .
UNIT – II
Recursion: Introduction, Recurrence, Use of Stack in Recursion, Variants of Recursion, Execution of Recursive Calls, Recursive Functions, Iteration versus Recursion. Queues: Concept, Primitive Operations, Abstract Data Type, Representation Queues Using Arrays, Circular Queue, Double-Ended Queue, Applications of Queues. Linked Lists: Introduction, Concept, Terminology, Primitive Operations-creating, inserting, deleting, traversing, Representation of Linked Lists, Linked List Abstract Data Type, Linked List Variants - Singly Linked List, Doubly Linked List, Linear and Circular Linked List, Representation Stacks and Queues Using Linked Singly Lists,
Searching and Sorting Algorithms: Sequential (Linear) Search, Binary Search, Bubble Sort, Insertion Sort, Selection Sort, Quick Sort, Merge Sort, and Comparison of Sorting Techniques. Heaps: Concept, Implementation, Abstract Data Type, Heap Sort.
UNIT – IV
Trees: Introduction, Representation of a General Tree, Binary Tree Introduction, Binary Tree Abstract Data Type, Implementation of Binary Trees, Binary Tree Traversals – Preorder, Inorder, Postorder Traversals, Applications of Binary Trees Briefly. Graphs: Introduction, Graph Abstract Data Type, Representation of Graphs, Graph Traversal – Depth-First Search, Breadth- First Search, Spanning Tree – Prim’s Algorithm, Kruskal’s Algorithm.
Text Books
“Computer Algorithms” - Ellis Horowitz, Sartaj Sahni and S. Rajasekaran
“Data Structure and Algorithmic Thinking with Python” - Narasimha Karumanchi
References
“Data Structures and Algorithms in Python”- Roberto Tamassia, M. H. Goldwasser, M.T. Goodrich.
“Problem Solving in Data Structures & Algorithms Using Python”- Hemant Jain
B.Sc. (Data Science) I-Year I-Semester
Course Code: BSDS-101:Practical-I :Problem Solving and Python Programming (Lab)
List of Practical’s:
I. Programs to demonstrate the usage of operators and conditional statements
Write a program that takes two integers as command-line arguments and prints the sum of two integers.
Program to display the information: Your name, Full Address, Mobile Number, College Name, Course Subjects
Program to find the largest number among ‘n’ given numbers.
Program that reads the URL of a website as input and displays contents of a webpage.
Program to find the sum of all prime numbers between 1 and 1000.
Program that reads a set of integers and displays first and second largest numbers.
Program to print the sum of first ‘n’ natural numbers.
Program to find the product of two matrices.
Program to find the roots of a quadratic equation.
Write both recursive and non-recursive functions for the following:
To find GCD of two integers.
To find the factorial of positive integer
To print Fibonacci Sequence up to given number ‘n’
To convert decimal number to Binary equivalent
Program with a function that accepts two arguments: a list and a number ‘n’. It should display all the numbers in the list that are greater than the given number ‘n’.
Program with a function to find how many numbers are divisible by 2, 3,4,5,6 and 7 between 1 to 1000.
Program that accepts a string as an argument and returns the number of vowels and consonants the string contains.
A program that accepts two strings S1, S2, and finds whether they are equal are not.
Program to count the number of occurrences of characters in a given string.
Program to find whether a given string is palindrome or not.
Program with a function that takes two lists L1 and L2 containing integer numbers as parameters. The return value is a single list containing the pairwise sums of the numbers in L1 and L2.
Program to read the lists of numbers as L1, print the lists in reverse order without using reverse function.
Write a program that combine lists L1 and L2 into a dictionary.
Program to find mean, median, mode for the given set of numbers in a list.
Program to find all duplicates in the list.
Program to find all the unique elements of a list.
Program to find max and min of a given tuple of integers.
Program to find union, intersection, difference, symmetric difference of given two sets.
Program to display a list of all unique words in a text file
Program to read the content of a text file and display it on the screen line wise with a line number followed by a colon
Program to analyze the two text files using set operations
Write a program to print each line of a file in reverse order.
Program to implement the inheritance
Program to implement polymorphism.
Programs to implement Linear search and Binary search
Programs to implement Selection sort, Insertion sort
B.Sc. (Data Science) I-Year II-Semester:
Course Code: BSDS -202-P: Practical- II: Data Structures and Algorithms (Lab):
List of Practical’s:
Write programs to implement the following using an array: a) Stack ADT b) Queue ADT.
Write a program to convert the given infix expression to postfix expression using stack.
Write a program to evaluate a postfix expression using stack.
Write a program to ensure the parentheses are nested correctly in an arithmetic expression.
Write a program to create a single linked list and write functions to implement the following operations. a) Insert an element at a specified position b) Delete a specified element in the list c) Search for an element and find its position in the list d) Sort the elements in the list ascending order
Write a program to create a double linked list and write functions to implement the following operations. a) Insert an element at a specified position b) Delete a specified element in the list c) Search for an element and find its position in the list d) Sort the elements in the list ascending order
Write a program to create singular circular linked lists and function to implement the following operations. a) Insert an element at a specified position b) Delete a specified element in the list c) Search for an element and find its position in the list
Write programs to implement the following using a single linked list: a) Stack ADT b) Queue ADT.
9. Write a program to implement Binary search technique using Iterative method and Recursive methods.
10.Write a program for sorting the given list numbers in ascending order using the following technique: Bubble sort and Selection sort
11.Write a program for sorting the given list numbers in ascending order using the following technique: Insertion sort and Quicksort
12.Write a program for sorting the given list numbers in ascending order using the following technique: Merge sort and Heapsort
13.Write a program to traverse a binary tree in the following way. a) Pre-order b) In-order c) Post- order
14.Write a program to implement graph traversals – BFS and DFS.
15.Write a program to find the minimum spanning tree for a weighted graph using a) Prim’s Algorithm b) Kruskal’s Algorithm.