0% found this document useful (0 votes)
92 views6 pages

Data Structures & Algorithms Course Overview

This document outlines a course on data structures and algorithms. It provides details on course objectives, topics to be covered in each unit, and instructional techniques. Key topics include data structures like arrays, linked lists, stacks, queues, trees, and graphs as well as algorithms, complexity analysis, searching, and sorting.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views6 pages

Data Structures & Algorithms Course Overview

This document outlines a course on data structures and algorithms. It provides details on course objectives, topics to be covered in each unit, and instructional techniques. Key topics include data structures like arrays, linked lists, stacks, queues, trees, and graphs as well as algorithms, complexity analysis, searching, and sorting.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

Course Title: Data Structures and Algorithms Program: BICTE

Course No. : ICT. Ed. 435 Nature of course: Theoretical + Practical


Level: Bachelor Credit Hour: 3 hours (2T+1P)
Semester: Third Teaching Hour: 64 hours (32+32)

1. Course Description
The purpose of this course is to provide the students with solid foundations in the
basic concepts of data structures and algorithms. The main objective of the course is
to teach the students how to select and design data structures and algorithms that are
appropriate for problems that they might occur. This course is also about showing the
correctness of algorithms and studying their computational complexities. This course
offers the students a mixture of theoretical knowledge and practical
experience. Programming language C will be used for practical work.
2. General Objectives
The general objectives of this course are as follows:
 To introduce data abstraction and data representation in memory
 To describe, design and use elementary data structures such as stack, queue, linked
list, tree and graph
 To decompose complex programming problems into manageable sub-problems
 To introduce algorithms and their complexity
3. Specific Objectives and Contents

Specific Objectives Contents LH


 Define Data structure and Unit 1: Introduction to Data Structures & Algorithms 5
ADT 1.1 Data type and Abstract data types
 Define algorithms and its 1.2 Data structures : linear and non-linear, static and
types and asymptotic dynamic
notations 1.3 Algorithms
1.3.1 Greedy algorithm
1.3.2 Divide and Conquer
1.3.3 Backtracking
1.3.4 Randomized algorithms
1.4 Analysis of Algorithms
1.4.1 Big O notation and its rule
 Demonstrate relationship Unit 2: Arrays, Pointers and Structures 6
between array and pointer 2.1 Array and Pointer
 Implement structure 2.2 Structure and Pointer
pointers and self-referential 2.2.1 Structure pointer
pointer 2.2.2 Self-referential pointer
 Allocate memory 2.3 Dynamic Memory Allocation: malloc, calloc, realloc, free
dynamically using malloc,
calloc, realloc and free Practical Works
functions 2.1 Write program to illustrate memory allocation
dynamically.

1
 Define linked list its type Unit 3: Linked Lists 8
and applications 2.2 Single Linked list: traversing, searching, inserting and
 Implement different types of deleting in single linked list
linked list with its 2.3 Doubly Linked List: traversing, inserting, creating and
operations deleting in doubly linked list
 Make comparison between 2.4 Circular Linked List: traversing, inserting, creating and
array list and linked list deleting in circular linked list
2.5 Comparison of Array list and Linked list

Practical Works
3.1 Write a program to implement singly, doubly and circular
linked list operations

 Define and implement stack Unit 4: Stack 6


and stack operations 2.6 Introduction
 Convert expressions in to 2.7 Array Implementation of Stack
2.8 Linked List Implementation of Stack
different forms: infix, prefix
and postfix 2.9 Applications of Stack
 Describe the applications of 2.9.1 Conversion from infix to postfix expression
the stack 2.9.2 Evaluation of postfix expressions
Practical Works
4.1 Write program to create stack with array and linked list
implementation
4.2 Write program to illustrate expression conversion and
expression evaluation
 Define queue and its Unit 5: Queue 6
operations 2.10 Introduction
 Implement different types of 2.11 Array Implementation of Queue
queue 2.12 Linked List Implementation of Queue
2.13 Circular Queue
2.14 Priority Queue.
Practical Works
5.1 Write a program to implement linear, circular and priority
queue with array and linked list
 Define recursion. Unit 6: Recursion 4
 Differentiate between 2.15 Introduction
recursion and iteration 2.16 Examples of Recursion: factorial, fibonacci sequence,
 Implement recursion to Tower of Hanoi(TOH)
solve TOH and Fibonacci 2.17 Applications and Efficiency of recursion
series Practical Works
6.1 Write a program to solve the problem of TOH
6.2 Write a program to print Fibonacci series
6.3 Write a program to calculate factorial
 Define tree and tree Unit 7: Trees 8
operations 2.18 Introduction
 Create and manipulate 2.19 Binary Tree : Construction, Traversal (pre-order, in-

2
Binary tree, BST, AVL tree order, post-order)
2.20 Binary Search Tree: Construction, Traversal
2.21 AVL tree: Construction, Traversal
2.22 Heap: Building a heap
Practical Works
7.1 Write program to implement binary tree.
7.2 Write program to implement binary search tree
7.3 Write program to implement AVL tree

 Define sorting and its type Unit 8: Searching, Sorting and Hashing 15
 Demonstrate hashing 2.23 Introduction
 Illustrate and implement 2.24 Sequential and Binary Search
bubble, selection, insertion, 2.25 Hashing: Hash function (truncation, division method,
merge, quick and heap sort. folding, midsquare)
 Implement searching 2.26 Hash collision and resolution techniques
algorithms 2.27 Sorting Algorithms: Bubble, Selection, Insertion,
 Identify and compare the Merge, Quick and Heap Sort
efficiency of mentioned 2.28 Efficiency of Sorting Algorithms
sorting algorithms Practical Works
8.1 Write program to implement:
a) Bubble sort b) Selection sort c) Insertion sort
d) Quick sort e) Merge sort f) Heap sort
8.2 Write program to implement searching algorithms: binary
search and linear search
8.3 Write program to implement hash function.
 Define graph and graph Unit 9: Graphs 6
terminologies 2.29 Graph Terminology
 Explain and implement 2.30 Directed and undirected graph
graph traversal algorithms 2.31 Graph Traversal: BFS and DFS
 Find the shortest path using 2.32 Minimum Spanning Trees: Kruskal Algorithm
Dijkstra's Algorithm 2.33 Shortest Path Algorithms: Dijkstra’s Algorithm
 Define MST and implement Practical Works
kruskal's 9.1 Write a program to implement graph traversal
algorithms : BFS and DFS
9.2 Write program to implement Kruskal algorithm and
Dijkstra’s algorithm

4. Instructional Techniques
The instructional techniques for this course are divided into two groups. First group
consists of general instructional techniques applicable to most of the units. The second
group consists of specific instructional techniques applicable to particular units.
4.1 General Techniques
Reading materials will be provided to students in each unit. Lecture, Discussion, use of
multi-media projector, brain storming, and problem solving methods are used in all
units.

3
4.2 Specific Instructional Techniques
Demonstration is an essential instructional technique for all units in this course during
teaching learning process. Specifically, demonstration with practical works will be
specific instructional technique in this course. The details of suggested instructional
techniques are presented below:
Units Activities
Unit 1: Introduction  Define and Describe the different types of data structures
to Data Structures &  State different operations occurring in data structures
Algorithms  Write a program to implement dynamic memory
management functions
 Explain asymptotic notations and complexity on time and
space of algorithm
 Monitor of students' work by reaching each student and
providing feedback for improvement
 Presentation by students followed by peers' comments and
teacher's feedback
Unit 3: List  Demonstrate operations of linked list with algorithms
 Lab work in pairs to implement linked list operations
 Monitor students' work by reaching each student and
providing feedback for improvement
 Presentation by students followed by peers' comments and
teacher's feedback
Unit 2, 4: Array,  Illustrate array, pointer and structure of C language
Pointer and Structure,  Illustrate the algorithms of stack operations
Stacks  Lab works in pair to implement stack operations
 Convert expression in other from one form to another
making group and individually
 Monitoring of students' work by reaching each pair and
providing feedback for improvement
 Presentation by students followed by peers' comments and
teacher's feedback
Unit 5: Queues  Demonstrate queue and queue operations with algorithms
 Lab work in pairs to implement queue operations
 Group discussion in advantages and limitations of queues
 Monitoring of students' work by reaching each student and
providing feedback for improvement
 Presentation by students followed by peers' comments and
teacher's feedback
Unit 6, 7: Recursion,  Apply recursive function to calculate factorial, solve TOH
Trees problem and generate Fibonacci series
 Demonstrate operations and types of tree
 Lab work in pairs to implement BST
 Trace a working principle of AVL
 Assign students to create AVL

4
 Monitor students' work by reaching each student and
providing feedback for improvement
 Presentation by students followed by peers' comments and
teacher's feedback
Unit 8: Searching,  Demonstrate the working principle of different searching
Sorting and Hashing algorithms
 Lab work in pair to implement searching algorithms
 Implement Hashing
 Trace the working principle of different sorting algorithms
 Lab work in pair to implement sorting algorithms
 Analyze efficiency of sorting algorithms
 Monitor students' work by reaching each student and
providing feedback for improvement
 Presentation by students followed by peers' comments and
teacher's feedback
Unit 9: Graphs  Explain the graph and graph terminology
 Solve the practical problems of shortest path and spanning
tree using different algorithms
 Assign student to solve graph problems
 Lab work in pair to implement graph traversing algorithms
 Monitor students' work by reaching each student and
providing feedback for improvement
 Presentation by students followed by peers' comments and
teacher's feedback

5. Evaluation
Evaluation of students' performance is divided into parts: Internal assessment
(theory and practical and internal external examinations (theory and practical).
The distribution of points is given below:

Internal Internal Semester External Total Points


Assessment Assessment Examination Practical
Theory Practical (Theoretical Exam/Viva
exam)
25 Points 15 Points 40 Points 20 Points 100 Points
Note: Students must pass separately in internal assessment, external practical
exam and semester examination.

5.1 Internal Assessment (25 Points) of Theoretical Part


Internal assessment will be conducted by subject teacher based on following
criteria:
Attendance and learning Activities 5 points
First assignment (Written assignment) 5 points
Second assignment (Project work with presentation ) 10 points
Third assignment/written examination 5 point

5
Total 25 points
5.2 Internal Assessment (15 Points) of practical part
Internal practical assessment will be conducted by subject teacher based on
following criteria:
Attendance and learning Activities 5 points
Practical work/project work/lab work 10 points
Total 15 points

5.3 Semester Final Examination (40 Points) theoretical part

Examination Division, Dean office will conduct final examination at the end of
semester.
Objective question (Multiple choice questions 10 x 1 point) 10 Points
Subjective questions (6 questions x 5 marks with
‘OR” two questions) 30 Points

Total 40 points

5.4 Practical Exam/Viva (20 Points)


Examination Division, Office of the Dean will appoint an external examiner
(ICT teachers working another campus) for conducting practical examination
Items Points
Evaluation of Record Book 4
Project work/practical work presentation/skill test 10
Viva 6
Total 20

Recommended Books and References


Recommended Books
1 Srivastava, S.K. & Srivastava, D. (2011). Data structure Through C in Depth, (2nd
Ed.), BPB Publication
2 Langsam, Y., Augenstein, M.J. & Tenenbaum, A.M., Data Structures using C,
Prentice Hall India.

You might also like