Projects

Course projects are intended as an opportunity to learn about topics that could not be covered in class, including both their theoretical and applied aspects. The goal is not only to learn about the topic you are studying yourself, but also from the other projects.

For this reason, your project will be graded not only by me, but also by other students. In addition, the quality of your grades for other projects will contribute a small fraction to your own final score.

Projects will be graded on the basis of a written report and a presentation. You will need to submit the written report before the midterm exams begin. This deadline is the same for all students. Presentations will be scheduled after the midterms (in the order given below), with the exact dates to be announced later. Whenever possible, you are encouraged to convert your implementation into an R package, which can be submitted at the end of the semester.

Project topics and assignments

The following are brief descriptions of the projects. Please contact me for more details.

The number in brackets indicate the number of students allocated to a project (which depends on how much work is involved).

Name(s) Topic
Ayan Paul, Pritam Dey Shellsort: description and empirical evaluation of performance for various gap sequences. [2]
Surabhi Grover, Rajesh Karmakar Implement the various sorting algorithms discussed in class (using Rcpp) and modify them to optionally count and return number of comparisons and number of swaps. Empirically study and compare their mean and variance for randomized input. [2]
Pratyusa Datta, Sourojyoti Barick, Maruf Alam Tarafdar, Susmit Saha Uniform pseudo-random number generation: theory and implementation. Describe and implement various uniform random number generators, including at least four non-trivial methods. [4]
Bhargob Kakoty Briefly describe various subset selection methods in regression, and perform a simulation study comparing the various methods in terms of false positive and false negative selection. [1]
Sweata Sen, Swarnali Raha Breadth-first and depth-first search to find connected components of graphs with application to image segmentation. [2]
Ravi Sah, Anirban Mandal, Shirshendu Mukherji Implement a simulation model for shuffling cards. Describe and implement suitable tests for randomness and study how many times a deck of cards should be shuffled to make it almost random. [3]
Soumya Mukherjee, Prabhat Kumar Jha, Adhiraj Mandal Stability of least-squares solution. Describe and implement various methods to solve the least squares normal equations, including the QR decomposition, and evaluate their stability. [3]
Ayoushman Bhattacharya, Dipshi Roychowdhury, Mohammad Saif Anwer Describe and implement elementary optimisation algorithms. [3]
Himadri Sekhar Manna, Subham Thakur Snakes and ladders: Implement a simulation study to obtain the distribution of the number of throws needed to complete a game. If the position wraps around instead of stopping, what is distribution of the position after a large number of throws? [2]
Sohom Sen Linear time sorting algorithms: counting sort and radix sort. Describe and discuss theoretical and empirical performance. [1]
Sujoy Kumar Bhadra, Roni Debnath Discuss and implement hash tables. Apply to counting the frequency of words in large text files. [2]

Deadlines

January 20, 2019
Submission of written project proposal
February 21, 2019
Submission of written project report

Presentations will start after the midterms. The schedule will be announced later.