CS21003 Algorithms – I
 CS29003 Algorithms Laboratory
Spring 2018

Schedule | Notices | Syllabus | References | Tests | Assignments | Previous Semesters: Theory, Lab


Instuctor     Abhijit Das
        Aritra Hazra (co-instructor in lab)
Timing     Theory: Slot D4 [MON(12:00–12:55), TUE(10:00–11.55), THU(08:00–08:55)]
Lab: TUE (02:00–05:00)
Venue     Theory: Room No NC233
Lab: PC LAB II and V, CIC
Teaching Assistants     Ashish Sharma
Atrayee Majumder
Papia Mahato
Pritam Bhattacharya
Sandeep Kumar Pani
Snigdha Das
Sohan Shantanu De Sarkar
Souvik Sur

Notices and Announcements

January 05, 2018, 2:15pm

All pending cases are now approved. Because of deadly slow and faulty responses from the ERP server, this took me more than an hour. I consider these decisions final. I will no longer update the approval page for the theory or the lab.

January 04, 2018, 9:00pm

I have taken decisions for most of the applicants. Applicants only from a narrow band of CGPA's are still kept in the "Pending" status. The class and lab are now full to the capacity. I will take decisions on these pending cases by tomorrow (05-Jan-2018) 12:00 noon. There is no need to send me e-mails, because irrespective of my willingness to accommodate as many students as possible, I have capacity constraints. I cannot exceed the limits without diluting the courses. I will no longer reply to your individual e-mails, but take my own decisions by the time mentioned above.

For the moment, let me make an appeal to the approved applicants. If for some reasons, you cancel subject registration after approval, please do it by tomorrow 12 noon. This will help me approve some other applicants.

January 03, 2018

Since the student population is not yet finalized, there will be no class on 04-Jan-2018. Classes will start from 08-Jan-2018.

December 28, 2017

Interested students are requested to apply via the ERP portal. Please keep in mind the following requirements.

  • The timings for both theory and laboratory as mentioned above are to be treated as frozen and final. These timings are chosen so as to reduce clashes with other courses. However, it is impossible to find any slot that is free for everybody. So any further change may solve a few cases but will introduce new cases of clash.

  • An applicant must not have any clash with these timings. If so, the students are supposed to make attempts to shift the other courses/labs clashing with these. Many of the lab assignments are to be submitted during the lab hours only. The submission server does not support extended deadlines on a case-by-case basis.

  • The maximum capacity of the theory is 100 and of the lab is 125. If the applicant counts are much more than these, shortlisting will be made based only on CGPA (and on no other criteria). In order that the applicants who are not shortlisted can register for other courses, and keeping in view that the last date for course registration is 05-Jan-2018, I consider only those ERP requests that are recorded by 04-Jan-2018 08:00pm. I will do the shortlisting (if needed) immediately after that. All approvals by me in ERP will wait until that time.

  • Neither the course nor the lab has any prerequisites (under the assumption that all applicants have cleared PDS theory and lab). Since the theory course and the lab are complementary to one another, it does not make enough sense to register for only one (unless somebody has done the other earlier or plans to do it later).

Tentative Coverage

Complexity of Algorithms Asymptotic notations and their significance, complexity analysis of algorithms, worst case and average case. 2 hours
Algorithm Design Paradigms Recursion, divide-and-conquer, greedy, dynamic programming, lower bounds and optimal algorithms. 8 hours
Basic Data Structures Stacks and queues, graphs and trees, binary trees. 2 hours
Heaps Heaps, priority queues, min-max heaps, heap sort. 4 hours
Dynamic Search Structures Binary search trees, height balancing, B-trees, skip lists, hashing. 8 hours
Algorithms on Arrays Linear-time median finding, sorting in linear time (counting sort, radix sort, bucket sort), string matching (Rabin-Karp and Knuth-Morris-Pratt algorithms). 8 hours
Graph Algorithms Traversal (BFS, DFS, topological sort), minimum spanning trees (Prim and Kruskal algorithms), shortest paths (Dijkstra and Floyd-Warshal algorithms) 8 hours

Books and References

[1]     Thomas H Cormen, Charles E Lieserson, Ronald L Rivest and Clifford Stein, Introduction to Algorithms, Second Edition, MIT Press/McGraw-Hill, 2001.
[2]     Sanjoy Dasgupta, Christos H. Papadimitriou and Umesh V. Vazirani, Algorithms, Tata McGraw-Hill, 2008.
[3]     Jon Kleinberg and √Čva Tardos, Algorithm Design, Pearson, 2005.
[4]     Michael T Goodrich and Roberto Tamassia, Algorithm Design: Foundations, Analysis, and Internet Examples, Second Edition, Wiley, 2006.
[5]     Udi Manber, Algorithms – A Creative Approach, Addison-Wesley, Reading, MA, 1989.
[6]     Harry R. Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins, 1997.
[7]     Robert Sedgewick and Kevin Wayne, Algorithms, fourth edition, Addison Wesley, 2011.
[8]     Muhammad H. Alsuwaiyel, Algorithms: Design Techniques and Analysis, World Scientific, 1999.
[9]     Gilles Brassard and Paul Bratley, Algorithmics: Theory and Practice, Prentice-Hall, 1995.
[10]     Sara Baase and Allen Van Gelder, Computer Algorithms: Introduction to Design and Analysis, third edition, Addison-Wesley, 2000.
[11]     Alan Gibbons, Algorithmic Graph Theory, Cambridge University Press, 1985.


Programming Assignments

No Topic Start date Due date More info
Assignment 0 Brush up your PDS skills 09-Jan-2018 09-Jan-2018 Solution
Assignment 1 Polynomial vs logarithmic running times 16-Jan-2018 16-Jan-2018 Blackbox: gcc, g++ | Solution
Assignment 2 Divide-and-conquer algorithms 23-Jan-2018 23-Jan-2018 Blackbox: gcc, g++ | Solution
Assignment 3 Greedy and dynamic-programming algorithms 30-Jan-2018 30-Jan-2018 Solution
Assignment 4 Binary trees 06-Feb-2018 06-Feb-2018 Solution
Assignment 5 Heaps and priority queues 13-Feb-2018 13-Feb-2018 Solution
Assignment 6 Binary search trees 06-Mar-2018 06-Mar-2018 Solution
Assignment 7 Hash tables 13-Mar-2018 13-Mar-2018 Solution
Assignment 8 Graph traversal 20-Mar-2018 20-Mar-2018 A bigger example | Solution
Assignment 9 Shortest paths in graphs 03-Apr-2018 03-Apr-2018 A bigger example | Solution
Assignment 10 Wind it up 10-Apr-2018 10-Apr-2018 Blackbox: gcc, g++ | Solution
Lab Test Algorithm design techniques and data structures 27-Mar-2018 27-Mar-2018 Samples:Even0 | Even2 | Odd1 | Odd3
Solution: Even | Odd

Submission site | TA Allocation | Miscellaneous information

Schedule | Notices | Syllabus | References | Tests | Assignments | Previous Semesters: Theory, Lab