This document contains a lesson plan for an Advanced Data Structures and Algorithms course. The course is divided into 5 units covering iterative and recursive algorithms, optimization algorithms, dynamic programming algorithms, shared objects and concurrent objects, and concurrent data structures. Each unit lists topics, reference materials, and the number of periods required. There are a total of 45 periods for instruction and 5 tutorial hours. Staff, HOD, and principal signatures confirm approval of the lesson plan.
1. A.V.C College of Engineering
Department of Computer Science & Engineering
2014 Odd Semester
Lesson Plan
SYLLABUS
CP7102 ADVANCED DATA STRUCTURES AND ALGORITHMS
L T P C
3 0 0 3
UNIT I ITERATIVE AND RECURSIVE ALGORITHMS 9
Iterative Algorithms: Measures of Progress and Loop Invariants-Paradigm
Shift: Sequence of Actions versus Sequence of Assertions- Steps to Develop
an Iterative Algorithm-Different Types of Iterative Algorithms--Typical
Errors-Recursion-Forward versus Backward- Towers of Hanoi-Checklist for
Recursive Algorithms-The Stack Frame-Proving Correctness with Strong
Induction- Examples of Recursive Algorithms-Sorting and Selecting
Algorithms-Operations on Integers- Ackermann’s Function- Recursion on
Trees-Tree Traversals-Examples- Generalizing the Problem - Heap Sort and
Priority Queues-Representing Expressions.
UNIT II OPTIMIZATION ALGORITHMS 9
Optimization Problems-Graph Search Algorithms-Generic Search-Breadth-
First Search-Dijkstra’s Shortest-Weighted-Path -Depth-First Search-Recursive
Depth-First Search-Linear Ordering of a Partial Order- Network Flows and
Linear Programming-Hill Climbing-Primal Dual Hill Climbing- Steepest
Ascent Hill Climbing-Linear Programming-Recursive Backtracking-
Developing Recursive Backtracking Algorithm- Pruning Branches-
Satisfiability
UNIT III DYNAMIC PROGRAMMING ALGORITHMS 9
Developing a Dynamic Programming Algorithm-Subtle Points- Question for
the Little Bird-Subinstances and Subsolutions-Set of Substances-Decreasing
Time and Space-Number of Solutions-Code. Reductions and NP-
2. Completeness-Satisfiability-Proving NP-Completeness-3-Coloring- Bipartite
Matching. Randomized Algorithms-Randomness to Hide Worst Cases-
Optimization Problems with a Random Structure.
UNIT IV SHARED OBJECTS AND CONCURRENT OBJECTS 9
Shared Objects and Synchronization -Properties of Mutual Exclusion-The
Mora l- The Producer–Consumer Problem -The Readers–Writers Problem-
Realities of Parallelization-Parallel Programming- Principles- Mutual
Exclusion-Time- Critical Sections—Thread Solutions-The Filter Lock-
Fairness-Lamport’s Bakery Algorithm-Bounded Timestamps-Lower Bounds
on the Number of Locations-Concurrent Objects- Concurrency and
Correctness-Sequential Objects-Quiescent Consistency- Sequential
Consistency-Linearizability- Formal Definitions- Progress Conditions- The
Java Memory Model
UNIT V CONCURRENT DATA STRUCTURES 9
Practice-Linked Lists-The Role of Locking-List-Based Sets-Concurrent
Reasoning- Coarse-Grained Synchronization-Fine-Grained Synchronization-
Optimistic Synchronization- Lazy Synchronization-Non-Blocking
Synchronization-Concurrent Queues and the ABA Problem- Queues-A
Bounded Partial Queue-An Unbounded Total Queue-An Unbounded Lock-
Free Queue-Memory Reclamation and the ABA Problem- Dual Data
Structures- Concurrent Stacks and Elimination- An Unbounded Lock-Free
Stack- Elimination-The Elimination Backoff Stack
TOTAL: 45 PERIODS
REFERENCES:
1. Jeff Edmonds, “How to Think about Algorithms”, Cambridge University
Press, 2008.
2. M. Herlihy and N. Shavit, “The Art of Multiprocessor Programming”,
Morgan Kaufmann, 2008.
3. 3. Steven S. Skiena, “The Algorithm Design Manual”, Springer, 2008.
4. Peter Brass, “Advanced Data Structures”, Cambridge University Press,
2008.
5. S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, “Algorithms”,
McGrawHill, 2008.
6. J. Kleinberg and E. Tardos, "Algorithm Design“, Pearson Education, 2006.
7. T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, “Introduction to
Algorithms“,PHI Learning Private Limited, 2012.
8. Rajeev Motwani and Prabhakar Raghavan, “Randomized Algorithms”,
Cambridge University Press, 1995.
9. A. V. Aho, J. E. Hopcroft, and J. D. Ullman, “The Design and Analysis of
Computer Algorithms”, Addison-Wesley, 1975.
10. A. V. Aho, J. E. Hopcroft, and J. D. Ullman,”Data Structures and
Algorithms”, Pearson, 2006.
A.V.C College of Engineering
Department of Computer Science & Engineering
2014 Odd Semester
Lesson Plan
Name of the Staff: M. Parvathi Class: I M.E(CSE)
SUB: CP7102 ADVANCED DATA STRUCTURES AND ALGORITHMS SEM: I
UNIT I ITERATIVE AND RECURSIVE ALGORITHMS
S.
No
Topics and Sub Topics
Ref
Book No
Page
No
Periods
Required
1
Iterative Algorithms:
Measures of Progress and
Loop Invariants
T1 5-27 2
Paradigm Shift: Sequence of
Actions versus Sequence of
Assertions
Steps to Develop an Iterative
Algorithm
Different Types of Iterative
Algorithms
Typical Errors
4. 6
Recursion
T1 97-112 2
Forward versus Backward
Towers of Hanoi
Checklist for Recursive
Algorithms
The Stack Frame
Proving Correctness with
Strong Induction
12
Examples of Recursive
Algorithms
T1
114-
130
2
Sorting and Selecting
Algorithms
Operations on Integers
Ackermann’s Function
16
Recursion on Trees
T1 130-
153
3
Tree Traversals
Examples
Generalizing the Problem
Heap Sort and Priority Queues
Representing Expressions
Total Periods 9
UNIT II OPTIMIZATION ALGORITHMS
S.
No
Topics and Sub Topics
Ref Book
No
Page
No
Periods
Required
1. Optimization Problems T1
171-
173
1
2.
Graph Search Algorithms
T1
173-
196
3
Generic Search
Breadth-First Search
Dijkstra’s Shortest-Weighted-
Path
Depth-First Search
Recursive Depth-First Search
Linear Ordering of a Partial
Order
9. Network Flows and Linear
Programming
T1 198-
223
3
5. Hill Climbing
Primal Dual Hill Climbing
Steepest Ascent Hill Climbing
Linear Programming
14.
Recursive Backtracking
T1
251-
265
2
Developing Recursive
Backtracking Algorithm
Pruning Branches
Satisfiability
Total Periods 9
UNIT III DYNAMIC PROGRAMMING ALGORITHMS
S.
No
Topics and Sub Topics
Ref
Book No
Page
No
Periods
Required
1.
Developing a Dynamic
Programming Algorithm
T1
267-
277
1
2.
Subtle Points
T1
277-
295
4
Question for the Little Bird
Subinstances and Subsolutions
Set of Substances
Decreasing Time and Space
Number of Solutions
The New Code
9.
Reductions and NP-
Completeness
T1
324-
342
2
Satisfiability
Proving NP-Completeness
3-Coloring
Bipartite Matching
14.
Randomized Algorithms
T1
346-
356
2
Randomness to Hide Worst
Cases
Optimization Problems with a
Random Structure
Total Periods 9
UNIT IV SHARED OBJECTS AND CONCURRENT OBJECTS
S. Topics and Sub Topics Ref Book Page Periods
6. No No No Required
1.
Introduction
T2 1-19 3
Shared Objects and
Synchronization
Properties of Mutual Exclusion
The Moral
The Producer–Consumer
Problem
The Readers–Writers Problem
Realities of Parallelization
Parallel Programming
2.
Principles
T2 19-45 3
Mutual Exclusion
Time
Critical Sections
Thread Solutions
The Filter Lock
Fairness
Lamport’s Bakery Algorithm
Bounded Timestamps
Lower Bounds on the Number
of Locations
3.
Concurrent Objects
T2 45-65 3
Concurrency and Correctness
Sequential Objects
Quiescent Consistency
Sequential Consistency
Linearizability
Formal Definitions
Progress Conditions
The Java Memory Model
Total Periods 9
UNIT V CONCURRENT DATA STRUCTURES
7. S.
No
Topics and Sub Topics
Ref
Book No
Page
No
Periods
Required
1.
Linked Lists : The Role of
Locking
T2
195-
219
4
List-Based Sets
Concurrent Reasoning
Coarse-Grained
Synchronization
Fine-Grained Synchronization
Optimistic Synchronization
Lazy Synchronization
Non-Blocking Synchronization
9.
Concurrent Queues and the
ABA Problem
T2
223-
245
3
Queues
A Bounded Partial Queue
An Unbounded Total Queue
An Unbounded Lock-Free
Queue
Memory Reclamation and the
ABA Problem
Dual Data Structures
16.
Concurrent Stacks and
Elimination
T2
245-
255
2An Unbounded Lock-Free
Stack- Elimination
The Elimination Backoff Stack
Total Periods 9
Schedule of Tutorial Hours
8. S. No. Tutorial Hour
1
Unit -1Test Tutorial Hour
Topics Covered:
1. Iterative Algorithms
2. Towers of Hanoi-Checklist for Recursive
Algorithms, Ackermann’s Function
3. Heap Sort and Priority Queues, Representing
Expressions.
2
Unit-II Test Tutorial Hour
Topics Covered:
1. Generic Search ,Breadth-First Search ,Dijkstra’s
Shortest-Weighted-Path ,Depth-First Search
2. Primal Dual Hill Climbing
3. Developing Recursive Backtracking Algorithm
3
Unit-III Test Tutorial Hour
Topics Covered:
1. Subtle Points, Question for the Little
Bird,Subinstances and Subsolutions,Set of
Substances
2. Reductions and NP-Completeness
3. 3-Coloring,Bipartite Matching, Randomized
Algorithms
4
Unit-IV Test Tutorial Hour
Topics Covered:
1. The Producer–Consumer Problem ,The Readers–
Writers Problem,Realities of Parallelization-
Parallel Programming
2. Thread Solutions
3. Concurrent Objects
5
Unit-V Test Tutorial Hour
Topics Covered:
1. Linked Lists-The Role of Locking
2. Concurrent Queues and the ABA Problem
3. Concurrent Stacks and Elimination
9. A.V.C College of Engineering
Department of Computer Science & Engineering
2014 Odd Semester
Lesson Plan
Name of the Staff: M. Parvathi Class: I M.E(CSE)
SUB: CP7102 ADVANCED DATA STRUCTURES AND ALGORITHMS SEM: I
Consolidated Lesson Plan
S. No Units Total Periods
1. I 9
2. II 9
3. III 9
4. IV 9
5. V 9
6.
Tutorial
Hours
5
Grand Total 50
Signature of the Staff Signature of the HOD
Signature of the Principal
10. A.V.C College of Engineering
Department of Computer Science & Engineering
2014 Odd Semester
Lesson Plan
Name of the Staff: M. Parvathi Class: I M.E(CSE)
SUB: CP7102 ADVANCED DATA STRUCTURES AND ALGORITHMS SEM: I
Consolidated Lesson Plan
S. No Units Total Periods
1. I 9
2. II 9
3. III 9
4. IV 9
5. V 9
6.
Tutorial
Hours
5
Grand Total 50
Signature of the Staff Signature of the HOD
Signature of the Principal