0% found this document useful (0 votes)
14 views3 pages

CS F211 - Data Structures and Algorithms - Chittaranjan Hota

The document outlines the course CS F211 (Data Structures and Algorithms) at the Birla Institute of Technology and Science, Pilani, Hyderabad Campus, for the second semester of 2024-2025. It details the course objectives, which include understanding and applying various data structures and algorithms, as well as the evaluation components and academic integrity policies. The course will cover a range of topics including basic and advanced data structures, algorithm analysis, and practical applications in programming.

Uploaded by

Thilak
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)
14 views3 pages

CS F211 - Data Structures and Algorithms - Chittaranjan Hota

The document outlines the course CS F211 (Data Structures and Algorithms) at the Birla Institute of Technology and Science, Pilani, Hyderabad Campus, for the second semester of 2024-2025. It details the course objectives, which include understanding and applying various data structures and algorithms, as well as the evaluation components and academic integrity policies. The course will cover a range of topics including basic and advanced data structures, algorithm analysis, and practical applications in programming.

Uploaded by

Thilak
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/ 3

Birla Institute of Technology and Science, Pilani, Hyderabad Campus

Department of Computer Science and Information Systems


Second Semester 2024-2025
CS F211 (Data Structures and Algorithms)

Date: 07.01.2025
nd
Course Number :CS F211 (L:3, P:1, U:4) M, W, F: 2 hour (F-102)
Course Title :Data Structures and Algorithms
Instructor-In-Charge :Chittaranjan Hota (hota[AT]hyderabad.bits-pilani.ac.in)
Instructors :Bhanumurthy NL, Aneesh Chivukula, Sameera Md. Salam, Apurba Das

Scope and Objectives of the Course:


A data structure is a collection of large amounts of data values, the relationships among them, and the
functions or operations that can be applied on them. In order to be effective, data has to be organized
in a manner that adds to the effectiveness of an algorithm, and data structures such as stacks, queues,
linked lists, heaps, trees, and graphs provide different capabilities to organize and manage large
amounts of data. While developing a program or an application, many developers find themselves more
interested in the type of algorithm used rather than the type of data structure implemented. However,
the choice of data structure used for a particular algorithm is always of paramount importance. For
example, B-trees have unique abilities to organize indexes and hence are well suited for implementation
of databases; Linked lists are well suited for backtracking algorithms like, accessing previous and next
pages in a web browser; Tries are well suited for implementing approximate matching algorithms like,
spell checking software or predicting text in dictionary lookups on Mobile phones; Graphs are well
suited for path optimization algorithms (like in Google maps) or searching in a Social graph (like
Facebook). As computers have become faster and faster, the problems they must solve have become
larger and more complex, requiring development of more complex programs. This course will also
teach students good programming and algorithm analysis skills so that they can develop such programs
with a greater degree of efficiency.
The primary objectives of the course are as under:

 Apply various basic data structures such as stacks, queues, linked lists, trees etc. to solve complex
programming problems. Understand basic techniques of algorithm analysis.
 Design and implement advanced data structures like graphs, balanced search trees, hash tables,
priority queues etc. Apply graph and string algorithms to solve real world problems like finding
shortest paths on huge maps or detecting plagiarism percentage.
 Apply basic algorithmic techniques such as brute-force, greedy algorithms, divide and conquer,
dynamic programming etc. to solve complex programming problems and examine their efficiency.

At the end of the course, you should understand common data structures and algorithms, be able to
develop new data abstractions (interfaces) and use existing library components in C++.

Text Book:
T1: Introduction to Algorithms, TH Cormen, CE Leiserson, RL Rivest, C Stein, 3rd Ed., MIT Press,
PHI, 2010.
Reference Books:
R1: Data Structures and Algorithms in C++, Michael T. Goodrich, Roberto Tamassia, David M.
Mount, 2nd Edition, 2011, Wiley (e-book in India).
R2: Data Structures & Algorithm Analysis in C++, Mark Allen Weiss, 4th Edition, Pearson, 2014.
R3: Data Structures and Algorithms, Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, 4th Indian
reprint, Pearson, 2001.
Lecture Plan:
Lectu Learning Chapter in
re# Objectives Topics to be covered the Text
Book
1 The role of DS and What kinds of problems are solved by algorithms? Journey T1 (1), R3(1)
Algorithms in from problems to programs.
Computing.
2 Introduction to Classes: Class Structure, Constructors, Friend classes and R1 (1.5, 1.6)
C++. Class members, Standard Template Library (STL), An
example C++ program.
3-4 To understand the Object Oriented Design: Goals, Principles and Design R1 (2.1, 2.2,
features of Object Patterns; Inheritance and Polymorphism; Interfaces and 2.3)
Oriented abstract classes; Templates.
Paradigm.
5-7 Implementing Using arrays, Insertion and removal from a Linked list, T1 (10),
elementary data generic single linked list, doubly linked lists, circular linked R1 (3.1, 3.2,
structures and lists, linear and binary recursion. 3.3, 3.5)
8-9 algorithms. Functions: Linear, N-Log-N, Quadratic functions etc., T1 (2), T1(3)
Understanding Asymptotic notation and asymptotic analysis, Using Big-Oh
techniques for notation, Examples of analysis. R1 (4.1, 4.2)
Algorithm analysis.
10-12 Stack ADT, Array-based stack implementation, stack T1(10),
Implementing implementation using generic linked list, Applications of
more common stacks: matching tags in an HTML document; Queue ADT, R1 (5.1, 5.2)
data structures and Array-based and circular linked list based implementation.
13 algorithms like Double-Ended queue: Deque ADT, Implementing using T1(10),
Stacks, Queues, doubly linked lists, Adapters: Implementing stack using R1 (5.3)
Deques, Vectors, Deque.
14 List ADTs, Vector ADT, Simple Array-based implementation; R1 (6.1)
Sequences, and Extendable array based implementation (Amortization) and
Trees. Using STL Vectors.
15-16 Amortization to List ADT: Node based operations and Iterators, doubly T1(10),
perform a set of linked list implementation, Sequence ADT, Applications: R1 (6.2, 6.3,
push operations on Bubble sort on sequences, and its analysis. 6.4)
17-18 a vector. General Trees: Properties and functions, Traversal algorithms: T1(10),
Pre order, post order traversals, Binary tree: ADTs, Linked
and Vector structures for Binary trees, Binary tree traversal, R1 (7.1, 7.2,
Template function pattern. 7.3)
19-21 Priority Queue ADT, Implementing using Lists, Algorithms T1(6),
suitable for Priority queues, Heap: Complete binary trees and R1 (8.1, 8.2,
their representation, Implementing Heaps using Priority 8.3)
Implementing queue, Heap sort as an example.
22-24 Advanced data Map ADT, Implementation using Lists, Hash tables: Bucket T1(11),
structures like arrays, hash functions, compression functions, collision- R1 (9.1, 9.2,
Priority queues, handling schemes, Rehashing into a new table, 9.4)
Heaps, Hash Implementation of hash tables, Skip lists: Search and update
tables, Maps, Skip operation implementations.
25 lists, Dictionaries, Dictionary ADT: Implementation with location-aware entries. R1 (9.5)
26-28 Search Trees. Binary Search Trees: Operations and Analysis, AVL Trees: T1(12),T1(13)
Insertion and deletion, Analysis, Multi-way search trees, Red- R1 (10.1,
Black Trees: Operations and analysis. 10.2, 10.4,
10.5)

29-30 Merge sort: Divide and conquer, merging arrays and lists, T1(4), T1(5)
Understanding running time of merge sort; Quick sort: Randomized quick R1 (11.1,
various basic sort. 11.2)
Algorithmic Sorting through algorithmic lens: Lower bound, Linear time:T1(6), T1(7),
31-33 techniques and Bucket and Radix sort, Comparing sorting algorithms. T1(8),
usage of R1 (11.2,
appropriate data 11.3)
34-36 structures along Strings and Dynamic programming: String operations, Matrix T1 ( 15),
with their Chain-Product as an example, Applying Dynamic R1 (12.1,
applications and programming to LCS problems. 12.2)
37-38 analysis. Pattern matching algorithms: Brute force, Boyer-Moore R1 (12.3)
algorithm, KMP algorithm.
39 Graph Algorithms: Graph ADT, Data structures for graphs: T1(22),
Edge list, Adjacency list, Adjacency matrix. R1 (13.1,
13.2)
40 Graph Traversals: DFS, and BFS, Traversing a Diagraph, T1 (22),
Transitive closure. R1 (13.4)
41-42 Shortest path and MST: Dijkstra, Kruskal, and Prim-Jarnik T1(23),T1(24)
algorithms. R1 (13.5,
13.6)

Evaluations:
Component Duration Weight Date & Nature of the
age(%) Time component
Mid sem Test 1.5 hrs. 25% 03/03/2025 Closed Book
(2:00-3:30pm)
Lab Test (One) 1 hr. 10% 4th week of Open Book (Labsheets)
March, 2025
(in lab hours)
Lab quizzes (in every lab) 10 mins (best 10% - Open Book (Labsheets)
10)
Class quizzes (in theory class, 10 mins (best 15% - Open Book (Class
weekly once) 10) notes)
Tutorial quizzes (in every 10 mins (best 10% - Open Book (Tutorial
tutorial class) 10) notes)
Comprehensive examination 3 hrs. 30% 02/05/2025 Part Open(20% CB
(FN) +10%OB)

Note: minimum 40% of the evaluation to be completed by midsem grading.

Make-up-Policy:
Make-up exams will strictly be granted on prior permission and on genuine grounds only. A request
email should reach the I/C on or before the test.
Course Notices and Material:
Course material pertaining to this course will be made available on a regular basis on the google class
course webpage and will be used for notices, announcements, grades, quizzes.

Consultation Hour: will be announced in the class.


Academic Honesty and Integrity Policy:
Academic honesty and integrity are to be maintained by all the students throughout the semester and
no type of academic dishonesty is acceptable.

Instructor-In-Charge, CS F211

You might also like