You are on page 1of 4

Birla Institute of Technology & Science, Pilani

K. K. Birla Goa Campus


SECOND SEMESTER 2015-2016
Course Handout (Part II)
In addition to Part-I (General Handout for all courses appended to the time table)
this portion gives further specific details regarding the course

Course Nos. : CS/IS F211


Course Title : Data Structures and Algorithms
Instructor-In-charge : RAMPRASAD S. JOSHI (rsj@goa.bits-pilani.ac.in)
Instructor : Ashu Sharma (p2012011@goa.bits-pilani.ac.in)

1 Objective
The primary goals of the course are:
To introduce structures for storing data and algorithms for accessing/manipulating
data or for solving other problems.
To introduce techniques for designing such structures and strategies for design-
ing algorithms.
To introduce techniques for analyzing the complexity of algorithms and tech-
niques for using such analysis in design.

2 Scope
The course covers design, implementation and applications of data structures includ-
ing trees and graphs, algorithm design techniques using examples from sorting, search-
ing, graph theory,networking and number theory. Discussion of designs will include
complexity issues and implementation issues. Implementation mechanisms including
Object Oriented techniques will be practiced by the students while implementing the
design. The scope of the implementations will include coding as well as testing and
performance evaluation.

3 Text and Reference Books


3.1 Text Book
T1. Cormen T. H., Leiserson, C.E., Rivest, R. L., and C. Stein. Introduction to Algo-
rithms, MIT Press, Third Edition (PHI:2009).

1
3.2 Reference Books
R1. R. G. Dromey. How to Solve it by Computer, PHI.
R2. Brian Kernighan and Robert Pike. The Practice of Programming, Addison-
Wesley, 1999.
R* Use any programmnig manuals and programmnig language references for the labs.
Refer to GNU/FSF documentation of gcc, gcj, python/ipython, gdb, make,
bash, gnuplot, octave, etc.

4 Course Plan
4.1 Modules
Module Scope Learning Objectives
I Introduction Data modeling, Data abstraction, Data representation
II Performance Complexity Analysis, Complexity model for algorithms, Performance
Analysis measurements, I/O complexity
III Implementation Recursive data definitions, Recursive and Iterative Implementation of
Issues repetitions, Dynamic Allocation
IV Linear Structures Lists(Static and dynamic), Random v/s sequential access, Restricted
access lists
V Sorting To learn different algorithms for sorting their design, efficiency and
limitations.
VI Searching and To learn the design and implementation of searching techniques and
Hashing storage structures suitable for efficient searching, Hashing and Hash
tables
VII Non-Linear To learn the use of trees for: searching, capturing non-linear acyclic
Structures Trees relations, representing recursive data, Tries
and Text
Processing
VIII Non-Linear To learn the use of graphs for capturing non-linear relations and to
Structures Graphs learn the design of algorithms for computing properties of those
relations.

2
4.2 Lecture Schedule
Lect. Module Topics References
1 I Course Introduction; Course Motivation, Data: Modeling,
Abstraction and Representation
2-4 III & V Divide-and-Conquer Review; Sorting (by Insertion or Merge) T1 4.1
Review
5 II Analysis of Algorithms Time and Space Complexity, Complexity Notes
Notation.
5-7 II & V Quick Sort Design Elementary Analysis; Comparison of Sorting T1 4.3
techniques: Online/Offline; Random Access / Sequential Access,
Stability.
8 II & V Quick Sort Analysis; Randomization; Performance; T1 4.3.1 &
Improvements Notes
9,10 V Lower bounds on Comparison Sorting; Sorting by Distribution T1 4.4 & 4.5
(Bucket & Radix); Searching
11,12 III Recursion Recursive Data Types, Design of Recursive Functions / Notes
Procedures, Tail Recursion, Conversion of Recursive Functions to
Iterative Form.
13,14 III Solving Recurrence Relations. R1 4.14.3
Notes
15,16 IV Linear data structures Lists, Array implementation of Lists, Access T1 2.1 & Notes
Restricted Lists (Stacks and Queues); Searching and Order Queries.
1719 II & VI Hash Tables: Approaches; Implementation Issues; Complexity & T1 2.5
Efficiency
20,21 II & VII Generalized Trees Traversals and applications. Binary Trees, T13.1
Search Trees (BST);
21,22 II & VII Balancing of Search Trees Red Black Tree T1 3.2
23,24 II & V Heaps: Binary Heap Priority Queues; Heap Sort T1 2.4
25,26 II Limitations of Divide-and-Conquer (or top-down approach) and R1 16.1; R1
Introducing Dynamic and Greedy approach 16.2
2729 VII Text Processing Basic Algorithms and Data Structures (e.g. Tries, T19.1,9.2,9.3
Huffman Coding, String search / pattern matching).
3032 VIII Applications of BFS & DFS T1 6.3
3335 VIII Path Computations Single Source Shortest Paths: Dijkstras T1 7.1; T1 7.2
algorithm; Allpairs shortest Paths: Floyd-Warshalls
36-38 VIII Minimal Spanning Trees Greedy Algorithms (Kruskals & Prims) T1 7.3 & Notes
39-40 Course Summary and Review.

3
5 Evaluation Scheme

S.No Evaluation Weightage Date Nature of


Component Component
1 Test-1 50/290 See Timetable Closed Book
2 Test-2 50/290 See Timetable Open Book
3 Lab 90/290 27/1, 10/2, 2/3, 60/90, Best 3/5,
16/3, 13/4 Open All
Lab Compre 24/4, 9am-1pm 30/90, Open All
4 Comprehensive 100/290 See Timetable Partly Open
Book

6 Chamber Consultation
Tuesday (11am 1pm) & Thursday (11am 1pm). Seek an appointment.

7 Notices
All notices concerning this course will be on the News forum of Photon
server. But announcements in the class and the labs will be paramount.

8 Make-up Policy
Prior Permission is must and Make-up shall be granted only in gen-
uine cases based on individuals need and circumstances. No marks will
be awarded without make-up for that component. For lab components,
make-up may be granted with the discretion of the instructors and TAs.
If we do not relent, be content with the best 3/5 formula.

Instructor-In-charge
CS/IS F211

You might also like