A Survey on Matching in the Graph-Stream Model
Advisor: Anirban Dasgupta | Introduction to Data Science Course Project
Abstract: In recent years, tremendous amount of network data has been generated and graph is a natural way to represent many of these datasets. Due to the massive size of these graphs, it is not possible to store the entire graph into main memory, creating the need for use of methods like data streaming and distributed processing to generate insights for such graphs. In this survey we mainly focus on work done on the matching problem for graph streams under both single pass and multi pass streaming settings.
- Graph Streams
- Semi-Streaming
- Approximation Algorithms
- Maximum Matching
MiniNim | A high-level Programming Language inspired from Nim
Advisor: Bireswar Das | Compilers Course Project
This project seeks to implement a compiler for a tiny subset of the Nim Programming Language which we call MiniNim. The compiler outputs a MIPS Assembly code which can be run in simulators like MARS.
See full details (Github Repo): Link
- C
- Flex
- Bison
- Nim
- Python
- MIPS
- Backpatching
An Intro to RSA Cryptosystem
Advisor: Akshaa Vatwani | Number Theory Course Project
In this project, I performed an introductory survey of the RSA Cryptosystem, one of the earliest and widely used Public key Cryptosystem. I demonstrated the working of RSA and described some Optimizations and Attacks.
Presentation: Link
- RSA
- Number Theory
- Cryptography
A Parameterized Perspective of Attacking and Defending Elections
Advisor: Neeldhara Misra
Abstract: We consider the problem of protecting and manipulating elections by recounting and changing ballots, respectively. Our setting involves a plurality-based election held across multiple districts, and the problem formulations are based on the model proposed recently by~[Elkind et al, IJCAI 2019]. It turns out that both of the manipulation and protection problems are NP-complete even in fairly simple settings. We study these problems from a parameterized perspective with the goal of establishing a more detailed complexity landscape. The parameters we consider include the number of voters, and the budgets of the attacker and the defender. While we observe fixed-parameter tractability when parameterizing by number of voters, our main contribution is a demonstration of parameterized hardness when working with the budgets of the attacker and the defender.
Extended Abstract accepted at the 31st International Workshop on Combinatorial Algorithms (IWOCA), 2020
Conference Version: Link Full Version: Link Presentation: Link
- Elections
- W Hardness
- Parameterized Complexity
A Study of Vector Borne Disease Spread
Advisor: Anand Sengupta | Computational Physics Course Project
Abstract: In this project, we analyze the paper "Computational Model of a Vector Mediated Epidemic" by Adriana Dickman and Ronald Dickman. We study the two methods proposed, the Continuous-time Method and a Discrete-time method. We optimize these two algorithms and provide the running time analysis for both the methods. We found that the parameters used by the authors are too large for us to reproduce and hence we do analysis of some alternative cases.
Report: Link Presentation: Link
- Python
- Markov Process
- Computational Modelling
- Computational Complexity
A Minimalistic MapReduce Library in C
Advisor: Nipun Batra | Operating Systems Course Project
- C
- MapReduce
- Multi-Threading
- Parallel Processing
- External Algorithms
AutoCoder - From Natural Language to Real Code
Advisor: Mayank Singh | Natural Language Processing Course Project
- Python
- Flask
- Transformer Model
- Code Generation
- Natural Language Processing
2D Strip Packing
Advisor: Arindam Khan | Narendra Summer Research Internship, Indian Institute of Science, Bangalore
- Approximation Algorithms
- Computational Geometry
- Strip Packing
- Python
Survey on De Bruijn Sequences
Advisor: Neeldhara Misra | Discrete Mathematics Course Project
An Introductory Survey on the Properties, Constructions and Applications of De Bruijn Sequences.
Survey: Link Presentation: Link
- De Bruijn Sequences
- Discrete Maths
- Burrows-Wheeler Transform
- Lyndon Words
- Airtable API
Synchronous FSM Verilog Code Generator
Advisor: Joycee Mekie | Digital Systems Course Project
In this project, we developed a Synchronous FSM Verilog Code Generator using Python. We developed a web application wherein you can input the State Table of an FSM. The application returns the verilog code as well as testbenches if required.
For ease of use, we provided two formats: An interactive web interface and file upload. The file upload format is very intuitive and simple. We designed a parser (using lark-parser) to fetch the details of the FSM State table. Also, we provided an option to implement the generated code directly into an FPGA (if connected) without launching Xilinx Vivado or any other simulator.
We also programmed an n-bit sequence detector which doesn't need the state-table from the user.
- Verilog
- Python
- Django
- FSM
- Vivado
- FPGA
- TCL Script
Simulating Brownian Motion Based on Unpredictability in the Quantum Realm
Advisor: Krishna Kanti Dey | Physics Lab Project
Report: Link
- Python
- Quantum Tunneling
- Weiner Process
- Brownian Motion
- Raspberry Pi
- Von Neumann Decorrelation
Dynamic Display Service
HackRush '19, IIT Gandhinagar
As part of HackRush '19, the Annual 36 Hr Hackathon at IIT Gandhinagar, we developed a website which displays details about events happening in the campus. The events displayed depends on the location of the display device. We devised a scheduling algorithm to decide the order, frequency and time each event will be displayed according to the location. We developed a website on Django fetch the event details with the help of Airtable API.
- Python
- Django
- WebslidesJs
- Airtable API
Technical Council Website | IIT Gandhinagar
In this project, we developed a website for the Technical Council of IIT Gandhinagar.
We designed a simplistic UI inspired from many websites. My goal was to make the website maintenance work easier for the Technical Council Members. With the help of TabletopJs, the data (Events, Clubs, Members, etc.) is rendered directly to the website from Google Sheets.
Website: Link
- JavaScript
- Bootstrap
- TabletopJs
Probot
Ignite '18, IIT Gandhinagar
- Chatbot
- Python
- Django
- Web Scraping