Introduction to Course
Data Structure - Lecture 0
Outline
● Introduction of Self, Course and Welcome
● About Course (Scheme, Syllabus)
● About Laboratory
● Case Studies
● Etiquette of Class & Laboratory
● Evaluation Scheme
● Design and Performance Measurement Approach
● Conclusion
2
Introduction of Self, Course and Welcome
3
Vision & Mission of CGU
● Vision of the C. V. Raman Global University:
○ To emerge as a global leader in the area of higher education through the pursuit of
excellence with future of skills and innovation to match the ever changing global scenario.
● Vision of the Department of CSE :
○ To become a leader in providing high quality education and research in the area of
Computer Science, Information Technology, and allied areas.
● Mission of C.V. Raman Global University :
○ Providing State-of-the art education both at undergraduate, postgraduate and research.
○ Working collaboratively with technical Institutes / Universities/ Industries of National and
International repute
○ Keeping abreast with latest technological advancements with a view to enhancing future
of skills, R&D and start-up activities at large;
○ Realising its’ goals and objectives in a time bound phased manner.
4
Mission of Dept. of Computer Science & Engineering
M1: To develop human resource with sound theoretical and practical
knowledge in the discipline of Computer Science & Engineering.
M2: To work in groups for Research, Projects, and Co-Curricular activities
involving modern methods, tools and technology.
M3: To collaborate and interact with professionals from industry,
academia, professional societies, community groups for enhancement
of quality of education.
5
Program Outcome (PO)
● Environment and sustainability: Understand the impact of the professional engineering
solutions in societal and environmental contexts, and demonstrate the knowledge of, and need for
sustainable development.
● Ethics: Apply ethical principles and commit to professional ethics and responsibilities and
norms of the engineering practice.
● Individual and team work: Function effectively as an individual, and as a member or leader in
diverse teams, and in multidisciplinary settings.
● Communication: Communicate effectively on complex engineering activities with the engineering
community and with the society at large, such as, being able to comprehend and write
effective reports and design documentation, make effective presentations, and give and receive
clear instructions.
● Project management and finance: Demonstrate knowledge and understanding of the engineering and
management principles and apply these to one’s own work, as a member and leader in a
team, to manage projects and in multidisciplinary environments.
● Life-long learning: Recognize the need for, and have the preparation and ability to engage in
independent and life-long learning in the broadest context of technological change.
6
PROGRAM EDUCATIONAL OBJECTIVE (PEO)
● PEO1- To provide the fundamental knowledge in mathematics, science and
engineering concepts for the development of engineering system
(Fundamental Knowledge).
● PEO2- To apply current industry accepted computing practices and emerging
technologies to analyze, design, implement, test and verify high quality
computing systems and computer based solutions to real world problems
(Design and development).
● PEO3- To enable the use of appropriate skill sets and its applications towards
social impacts of computing technologies in the career related activities (Skill
Set) and to produce Efficient team leaders, effective communicators and
capable of working in multi-disciplinary environment following ethical
values(Communication).
7
Introduction
● Dr. Dillip Rout
○ Algorithm Modeling, Network Optimization, Applied Machine
Learning
○ Teaching, Project Development, Research, Organizing
● Data Structure
○ A basic (core) and native to Computer Science
○ Literally means containers and how to operate on those
○ Useful for any programming language, independent
○ Industry, Education and Research
○ MAANG companies ask a lot about this course
8
About Course
9
Scheme
● 5 units
● 35-40 hours of classes; Each class 1 hour
● Theory and Laboratory contents
● Theory 100 marks
● Laboratory 100 marks
● 12-14 weeks of time
10
Syllabus
● UNIT 1: Introduction & Linear Data Structures Part-I : Stack & Queue
○ Definitions, Abstract Data Types (ADT) with examples (Types: Primitive, Non-primitive),
Categories of Data Structures: Linear vs Nonlinear, Static vs Dynamic Data Structures. Stack:
○ Fundamentals of stack, representation using array, Applications of stack: Recursion, Expression
conversions and evaluations, etc.
○ Queue: Fundamentals of queue, representation using array, Circular queues, Double ended
queues (Dequeue), Applications of queue to solve problems.
● UNIT 2: Linear Data Structures Part-II : Linked List
○ Single linked lists: operations and implementation.
○ Double linked list: operations and implementations.
○ Circular linked list: concepts and implementation.
○ Applications: Stack & Queue implementation using linked list, Polynomial manipulation using
linked list.
11
Syllabus…
● UNIT 3: Nonlinear Data Structures Part-I : Tree
○ Basic terminology, Representation using array and linked list, Complete Binary Tree.
○ Tree Traversals: Recursive and Non-recursive. Operations on binary tree: Finding Height,
Leaf nodes, Counting number of nodes, etc. Construction of binary tree from traversal
paths.
○ Binary Search Trees (BST): Insertion, Deletion of nodes to/from BST.
○ Height Balanced Tree (AVL): Insertion, Deletion, Rotations on AVL tree, Searching.
● UNIT 4: Nonlinear Data Structures Part-II : Graph
○ Graphs: Graph terminology, Representation of graphs (Adjacency Matrix, Adjacency List),
Path matrix.
○ Traversals: Breadth First Search (BFS), Depth First Search (DFS).
○ Spanning Trees, Minimum Spanning Trees.
○ Shortest Paths: Bellman’s Ford Algorithm (Single Source).
12
Syllabus…
● Unit 5: Sorting & Searching
○ Sorting techniques: Bubble Sort, Selection Sort, Insertion Sort, Counting Sort.
○ Heaps: Max Heap, Min Heap, Heap Sort.
○ Searching techniques: Linear and Binary search methods (recursive and non-recursive).
○ Hashing: Different hash functions, Collision resolution techniques.
100% Syllabus Coverage is Compulsory
Classes will speed up after two weeks, so be in
sync
13
Course Outcomes
● CO1: Understanding of linear data structure such as Queue and
Stack for solving problems.
● CO2: Analyse linear data structure such as Linked List for solving
problems.
● CO3: Apply non-linear data structure such as Tree for solving
problems.
● CO4: Apply non-linear data structure such as Graph for solving
problems.
● CO5: Create a program using different sorting and searching
mechanisms.
14
About Laboratory
15
Scheme
● Syllabus will follow Theory
● 10-12 weeks
● Only 1 week for revision
● About 40-50 experiments (programs)
● Case Study will be evaluated too.
● Coding and Theory must be synchronized
16
Case Studies
17
Scheme
● Case Studies will be shared
● 6-10 students per group
● Groups must be formed by the students
● Groups should learn the shared Case Studies, consult me
● Groups will be assigned Case Studies between 2nd and 3rd week
● The assignment will be ordered based on Laboratory Test
● All settings will be done during the laboratory classes
● One Case Study may be repeated but at most twice
● Research Paper will attract highest marks for sessional
18
Etiquette of Class & Laboratory
19
Classroom Discipline
Do’s Don’ts
● Arrive to class on time. ● Don’t talk while your professor
● Read the material before is lecturing or when other
class. students are called on to
● Take notes while your speak.
professor is lecturing. ● Don’t attend phone calls inside
● Ask questions when something the class, rather go out if it is
does not make sense. urgent.
● If you do miss a class, cover ● Don’t be afraid to ask your
up from your classmate/friend. teacher about any questions
you may have.
● Do not disturb/provoke others.
20
Laboratory Discipline
● Always be respectful of your laboratory mates and their workspace,
laboratory materials.
● Avoid distracting and obstructing lab mates when carrying out an
experiment for this can compromise their safety and the integrity of
their experiments.
● Communicate when others are not adhering to lab safety rules and
nonhazardous techniques.
● Always keep a mental note and written-record of your experiments.
If you are lost or confused, do not hesitate to ask.
● Be aware of yourself and your surroundings at all time.
21
Evaluation Scheme
22
Marks Distribution
● Theory
○ Assignment 10 marks (5 Assignments, 1 per Unit)
○ Mid-semester 20 marks (2 Units)
○ 1 Case Study (Experiential Learning) 20 marks (inclusive all units) in groups
○ Surprise Test (MCQ) – (1-2 tests per Unit) 20 marks*
○ End-semester Examination 30 marks
*May change as necessary: mostly Technical Talk in Groups (Flip Classroom)
● Laboratory
○ Daily evaluation 50 marks (5 marks per laboratory)
○ Laboratory Test 30 marks (Part-I Coding and Part-II Viva-voce)
○ Case Study 20 marks
23
Design and Performance Measure Approach
24
Computer Science Foundation
● Subjects:
○ Discrete Mathematics
○ Algorithms
○ Computer Architecture and Organization
● Designing:
○ Algorithms (Data Structure) | Software | Hardware
● Performance Evaluation:
○ Algorithms: Time and Space Complexity
○ Software: Lines of Code, Reliability, Scalability, Maintenance Cost, etc.
○ Hardware: Power Analysis, Reliability, Fault Analysis, Maintenance Cost, etc.
25
Designing Algorithms
● Definition:
○ Algorithm is a finite sequence of rigorous instructions, typically used to solve a class of specific
problems or to perform a computation.
○ Or, it is a process or set of rules to be followed in calculations or other problem-solving operations,
especially by a computer.
○ Algorithms are used as specifications for performing calculations and data processing.
● Importance of Algorithms:
○ Data processing: Algorithms are used to process and analyze large amounts of data, such as
sorting and searching algorithms.
○ Problem solving: Algorithms are used to solve computational problems, such as mathematical
problems, optimization problems, and decision-making problems.
● Expressing Algorithms:
○ Flow Chart
○ Structured English
○ Pseudo Code (Structured English + Mathematical Symbols)
26
Problem Statement Example
● Description:
○ Given a number test if it is a prime number or not.
● Input(s):
○ n = the number to be tested
● Output(s):
○ Yes or No
● Specification:
○ The number is a positive integer. The number can be either prime or composite.
27
Flowchart
28
Structured English
1. Take a number as input.
2. List its divisors.
3. If the number of divisors are more than two (inclusive 1 and itself)
then it is not a prime number.
4. Otherwise, it is a prime number
29
Pseudo Code
1. Read the number n
2. Let count = 0
3. For i= 1 to n do
4. If n % i == 0 then
5. count = count + 1
6. If count > 2 then
7. n is not a prime number
8. Else, n is a prime number
30
Performance Evaluation
● Time and Space complexity to be measured which estimates the
respective cost of an algorithm without being implemented.
● The complexity is measured in terms of input size n (no. of elements
taken as input). That is, n is taken as the unit of measurement.
● The output, the complexity is expressed as a function of n.
● For example:
○ For prime number: n=1 but its magnitude or value is considered
○ For sorting: n = 10, 100, and so on
○ For sorting: n = 10, 100, and so on
○ Complexity??? See the next slide
31
Time and Space Complexity
● Time Complexity
○ Measures the unit time in terms of number of operations carried out.
○ The number of operations is expressed in the input size n.
○ For example:
■ Prime number algorithm: time complexity is O(n), n is the value of the input.
■ For searching: O(n), n is the number of elements in the list
■ For sorting: O(n^2), n is the number of elements to be sorted
● Space Complexity
○ Measures the unit memory in terms of number of blocked to be used.
○ The number of blocks is expressed in the input size n.
○ For example:
■ Prime number algorithm: space complexity is O(1), only one number.
■ For searching: O(n+1), n is the number of elements in the list
■ For sorting: O(n), n is the number of elements to be sorted: assuming in-place sorting
algortihm
32
Conclusion
33
Summary
● Hard work pays back
● Hard work (75%) + Smart work (25%)
● Discipline and Dedication may do wonders
● Assignment and Case Studies are the keys to
success
● Similarity check is a must and heavy penalty for
copying
34
References
Text books:
1. “Data Structure- A Pseudo code approach with C” by Gilberg and Forouzan, Thomson
publication.
2. “Data structure in C” by Tanenbaum, PHI publication / Pearson publication.
3. ”Data Structures & Algorithms; Concepts, Techniques & Algorithms ” by Pai,Tata McGraw Hill.
4. “Data Structures Using C”, Reema Thareja, Oxford University Press
Reference Books:
5. “Fundamental of Data Structure”– (Schaums Series) Tata-McGraw-Hill.
6. “Fundamentals of data structure in C”– Horowitz, Sahani & Freed, Computer Science Press.
7. “Data Structure Through C: A Practical Approach” by G. S. Baluja, DhanpatRai Publications.
Open Sources
https://www.wctmgurgaon.com/wctm/dsa%20lab-it-labmanual.pdf
35
Supplementary Materials
Books for C Programming
1. The C Programming Language, Brian W. Kernighan and Dennis M. Ritchie, Prentice Hall
of India.
2. Schaum’s Outline of Programming with C, Byron Gottfried, Tata McGraw-Hill
Books on Data Structures
3. Data Structures, Schaum’s Outline Series, Seymour Lipschutz, Tata McGraw-Hill
4. Fundamentals of Data Strcutures in C , Ellis Horowitz, Satraj Sahni and Susan Anderson-
Freed, W. H. Freemn and Company
5. Classic Data Structures, D. Samanta,Take
Prentice
theHall
helpof of
India.
the Internet, if you need…
36
Supplementary Materials…
Web references:
http://cse.iitkgp.ac.in/~pds/
Some useful software:
http://cse.iitkgp.ac.in/~pds/software/
Notes:
http://cse.iitkgp.ac.in/~pds/notes/
Course related information and announcements:
http://cse.iitkgp.ac.in/~pds/semester/2017a/
http://www.nid.iitkgp.ernet.in/DSamanta/
These resources are very carefully developed and really good…
37
Happy Learning!
38