Projects
Self Supervised Learning
Deep Learning, Prof. Yann Lecun, Prof. Alfredo Canziani
Final Repo, Github Repo, Report
- Implemented SOTA self-supervised methods and trained it on the provided dataset of 512k unlabeled images, 25k training images, 25k validation set. Methods used and compared: SimCLR, SimCLR-v2, MoCo, MixMatch, Relation Net.
- Used active learning for labeling additional 13k samples. Achieved accuracy of 36% on the test dataset and a rank of 7 in 21-team competition.
JCP Compiler
Compiler Design, Prof. Amey Karkare
Github Repo
- Implemented a Java to x86 compiler from scratch in python using ply
- Incorporated advanced features like object heap allocation, classes, foreign function interface.
Cache Replacement Policies on Graph applications
Modern Memory Systems, Prof. Biswabandan Panda
Github Repo, Report
- Studied the graph applications and the performance of cache replacement policies like LRU, Hawk Eye, SHiP on these applications.
- Graph application benchmarks include Twitter, Web, Road, Kron, Urand with algorithms being BFS, Single-Source shortest path, Page Rank, Connected Components, Betweenness Centrality, Triangle Counting.
Question Answering based on Passage
Natural Language Processing, Prof. Harish Karnick
Github Repo, Report
- Implemented two models: Memory network framework, FastQA in tensorflow with keras.
- Trained on two datasets: SQuAD, bAbI.
- Studied deep neural networks, memory networks, pointer nets, recurrent span representation (RaSoR).
Dots and Boxes
Functional Programming, Prof. Amey Karkare
Github Repo
- Implemented a dots and boxes game in Haskell
- Implemented human vs human mode and human vs easy AI mode.
Comparison of testing tools on GNU Core Utils
Undergraduate Project, Prof. Subhajit Roy
Report
- Compared two testing techniques: Symbolic Execution and Fuzzing on 89 GNU Core Util tools.
- Tools used: KLEE, American Fuzzy Lop
HTTP Proxy
Computer Networks, Prof. Dheeraj Sanghi
Github Repo
- Implemented a HTTP Proxy in python.
- Implemented cache feature, domain filtering, logging also.
Comparison of Cache Replacement Policies
Computer Architecture, Prof. Mainak Chaudhuri
Github Repo
- Implemented LRU, SHiP, SRRiP cache replacement policies using Intel’s PIN simulation API.
- Compared their respective cache hits, misses on eight benchmarks and analyzed their miss rates.
NachOS
Operating Systems, Prof. Mainak Chadhuri
- Designed various functionalities in NachOS - instructional software in C++ to run as secondary OS on linux by implementing various system calls (exec, fork, join, exit, etc.).
- Implemented various scheduling algorithms (FIFO, RR, Unix Scheduler, non preemptive).
- Implemented various techniques for synchronization (semaphores, condition variables), demand paging, shared memory and page replacement algorithms such as random page allocation, FIFO, LRU and LRU clock.
Stable Marriage Problem
Mathematics for Computer Science - I, Prof. Rajat Mittal
Report
- Studied the Stable Marriage Problem and Analysed the proof of the algorithm to solve it.
- Studied various standard techniques used in solving the problem and its variants.
- Analysed theorems regarding existence of a stable marriage in case of incomplete lists.