The laboratory component will emphasize two areas: Implementation of algorithms covered in class: This will involve running the algorithms under varying input sets and measuring running times, use of different data structures for the same algorithm (wherever applicable) to see its effect on time and space, comparison of different algorithms for the same problem etc. Design of Algorithms: This will involve design and implementation of algorithms for problems not covered in class but related to topics covered in class. The exact set of algorithms to design and implement is to be decided by the instructor. In addition, there will be at least one significantly large design project involving some real world application. An efficient design of the project should require the use of multiple data structures and a combination of different algorithms/techniques.

- This laboratory class will be in fully ONLINE mode. The first class will be on January 11, 2022.

January 11 | SCR | A0 | PDS Brush up (not graded) | -- |

January 18 | SCR | A1 | Time Complexity of Algorithms | Sample code Evaluation Guidlines |

January 25 | PD | A2 | Recursive Formulation for Algorithm Design | Sample code Evaluation Guidlines |

- Thomas H Cormen, Charles E Lieserson, Ronald L Rivest and Clifford Stein, Introduction to Algorithms.
- Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005.
- Sanjoy Dasgupta, Christos H. Papadimitriou and Umesh V. Vazirani, Algorithms, Tata McGraw-Hill, 2008.

Academic integrity is expected of all the students. Ideally, you should work on the assignment/exam consulting only the material we share with you. You are required to properly mention/cite anything else you look at. Any student submitting plagiarised code will be penalised heavily. Repeated violators of our policy will be deregistered from the course. Read this to know what is plagiarism.