Projects

For code and implementation details of projects, kindly contact me directly. I will be helping you as soon as I can.

Distributed Systems Implementation

(Under the guidance of Prof. Lorenzo Alvisi (Professor, Dept. of Computer Science, Cornell University)

  • Implemented Paxos protocol in a distributed system. The asynchronous system is capable of tolerating benign failures. The implementation was done in a layered form to keep the Paxos layer separate from the under lying communication protocol. The system also handles cascading failures and when processes crash during a Paxos decision round.
  • Developed a distributed system capable of 3PC (3 Phase Commit). The system works on the basis of timeouts and is capable of handling benign faults providing a great level of fault tolerance. The system can even handle cases of total failure and supports Election Protocol, Termination Protocol and figuring out the last alive set to recover from total failure. It can automatically handle cases where processes fail and recover during a transaction of the 3PC.

Natural Language Processing Systems

(Under the guidance of Prof. Claire Cardie (Professor, Dept. of Computer Science, Cornell University)

  • Automatic Question Answering from Reading Comprehensions: The systems was trained on the SQuAD Dataset and is capable of answering questions based on a passage. We used features like Dependency Tree Path information, expected answer types, span of possible answer, question-candidate answer overlap for the same. It was eventually trained with supervised machine learning methods.
  • Named Entity Recognizer using Hidden Markov Models: Implemented the HMM from scratch from the given data set consisting of NE and IOB tags, POS tags and words. The system used (word, POS) pair as the observable state and IOB tag as the hidden state in HMM with n-grams (n=2,3). We set the transition and lexical generation probabilities accordingly. We also tried to use MEMM and CRF for NER.
  • Sentence generation and word embeddings: Developed n-gram based sentence generators for positive and negative movie reviews without using external libraries. Developed a system to find relations between two words (gender change, synonym, antonym, Country-Capital) and predict the second value for a given input word using Glove word embeddings.

Software Defined Network Applications (August 2016 - December 2016)

(Under the guidance of Prof. Vishal Gupta(Assistant Professor, Dept. of Computer Science, BITS Pilani))

  • Apply concepts of SDN like decoupling of data plane and control plane.
  • Modifying open-source SDN controllers like POX, Floodlight and RYU to create appropriate flow tables.
  • Learn about the OpenFlow protocol version 1.0 to version 1.3.
  • Develop a SDN application to make DNS queries secure in a network by preventing fake DNS servers in the network.
  • Modify DNS queries and responses from each host in the network to achieve the objective.

Simultaneous Localization and Mapping (January 2016 - December 2016)

(Under the guidance of Prof. J. P. Misra(Professor, Dept. of Computer Science, BITS Pilani))

  • Studying the basic concepts of SLAM and filters like Kalman filter, Particle filter and Histogram filter.
  • Implementing basic SLAM algorithms on bots like TurtleBot or similar.
  • Simulating various algorithms and filters in high-level languages like Python.
  • Detailed Report.

Compiler Design and implementation (February 2016 - April 2016)

(As a part of Network Programming course under Vandana Agarwal(Dept. of Computer Science, BITS Pilani))

  • Developed compiler for a simple programming language with a context free grammar.
  • Implemented various modules like lexical analysis (using DFA), parser, semantic analysis, scope and type checking and code generation.
  • The compiler finally gives an ASM output which can be linked and run using any basic ASM tools like gcc.

Bandwidth Reduction in LAN using proxy servers (August 2015 - December 2015)

(Under the guidance of Dr. Virendra Shekhawat(Assistant Professor, Dept. of Computer Science, BITS Pilani))

  • Using self-written URL re-directors for existing open source squid proxy.
  • Implementation on lines of Least Recently Used Cache. Additional factor of file size included.
  • Using cURL in C, recently downloaded public files will be delivered locally on LAN instead of downloading it again.
  • Detailed Report.

Opinion Spam and its Analysis (August 2015 - December 2015)

(Under the guidance of Dr. Yashvardhan Sharma(Assistant Professor, Dept. of Computer Science, BITS Pilani))

  • Implemented sentence similarity algorithms like Jaccard coefficient, Levenshtein distance and cosine similarity.
  • Using sentiwordnet and Stanford CoreNLP in JAVA, extracted various textual features.
  • Feature reduction using standard algorithms like PCA or LDA.
  • Using ensemble methods comprising of Logistic regression, SVM and Decision trees to detect a spam opinion.
  • Detailed Report: Report

Prototype Vending Machine (March 2015 – April 2015)

(As a part of Microprocessors and Interfacing course under G Sai Sesha Chalapathi(Lecturer, Dept. of Electrical & Electronics Engineering, BITS Pilani)

  • Designed and developed a prototype vending machine using Intel 8086 microprocessor in Proteus.
  • Detailed Report: Report

Implementation of mini linux shell (August 2015 - September 2015)

(As a part of Network Programming course under Dr. Hari Babu(Assistant Professor, Dept. of Computer Science, BITS Pilani))

  • Developed a basic linux shell capable of handing keyboard interrupts, foreground and background process(start, pause, resume, listing of background process).
  • Developed the shell using system calls in C.

Attendance using facial recognition on android devices (January 2015 – July 2015)

(As Professional Assistant, Software Development for Educational Training Unit, BITS Pilani)

  • Implemented the android module of the project.
  • Authenticate student by capturing image and sending it to the server, which matches student name and image.
  • Using android studio, image is converted to base64 encoding prior to sending it to server.
  • Used android supported SQLite databases for storing login and attendance information on the android device.

SVM development in JAVA (March 2015 – April 2015)

(As a part of Machine Learning course under Prof. Mukesh Kumar Rohil(Associate Professor, Dept. of Computer Science, BITS Pilani))

  • Developed a self-coded SVM in JAVA to classify user marked coloured points on a 2D plane into various classes based on colour.

Android Application development for University festivals

(As Android Application Developer, BITS Pilani)

Developed android applications for Oasis 2014, annual cultural festival, BITS Pilani and APOGEE 2015, annual technical festival, BITS Pilani. Links for the same are given below:

Oasis 2014: https://play.google.com/store/apps/details?id=bits.dvm.oasis

Apogee 2015: https://play.google.com/store/apps/details?id=bits.dvm.apogee2015

Query answering system in Prolog (October 2014 - November 2014)

(As a part of Logic in Computer Science course under Prof. S. Balasubramaniam(Professor, Dept. of Computer Science, BITS Pilani))

  • Developed a self answering system in Prolog that can answer questions asked in a specific format from a p-articular section of the constitution of United States of America.