Graduate Projects Link to heading

Artificial Intelligence Link to heading
  • Search - Experiment with various graph search techniques to discover the most efficient way to find the shortest path between three places in a city.
  • Isolation Player - Use the MINIMAX and alpha-beta pruning techniques and experiment with evaluation functions to create a program that can play a variant of the game Isolation better than a human.
  • Bayes Nets - Implement Bayesian networks and sampling algorithms to gain a better understanding of probabilistic systems concerning discrete random variables.
  • Decision Trees - Build, train, and test several decision tree models to perform basic classification tasks.
  • Gaussian Mixture Models - Implement k-means clustering and Gaussian mixture models to perform basic image segmentation. Research, implement, and test the Bayesian Information Criterion to guarantee a more robust image segmentation.
  • Hidden Markov Models - Implement the Viterbi and Forward-Backward algorithm to recognize signals using HMMs.
Machine Learning Link to heading
  • Supervised Learning
    • Implementation of Decision Trees, Neural Networks, Boosting, Support Vector Machines, and K-nearest neighbours.
    • Training the aforementioned algorithms on two large datasets in order to analyse how they perform in testing and validation phases.
    • Performed hyperparameter tuning to achieve optimal accuracy.
    • Learning curves generated in order to compare their performance.
  • Randomized Optimization
    • Implementation of localized random search algorithms, namely, Randomized Hill Climbing (RHC), Simulated Annealing (SA), Genetic Algorithms (GA) and Mutual Information Maximizing Input Clustering (MIMIC).
    • Experiments conducted on three discrete optimization problems namely Flip Flop, N-Queens, Knapsack to find the maximum fitness function.
  • Unsupervised Learning and Dimensionality Reduction
    • Implementation of unsupervised learning and dimensionality reduction techniques on two different classification large datasets.
    • Implemented K-Means Clustering and Expectation Maximization as clustering algorithms for unsupervised learning.
    • Implemented PCA (Principal Component Analysis), ICA (Independent Component Analysis), Randomized Projects, and SelectKModel as dimensionality reduction algorithms.
    • Analysed the performance of combinations of the aforementioned clustering and dimensionality techniques on the chosen datasets and performed hyperparameter tuning in order to yield accurate modeling results.
  • Markov Decision Processes
    • Explored various reinforcement learning techniques an agent can use to make decisions.
    • Implementation of Markov Decision Processes (MDPs) namely, value iteration and policy iteration, and one reinforcement learning algorithm, namely, Q-Learning.
    • Experiments conducted on two different Markov Decision Process problems namely Frozen Lake and Forest Management.
    • Experiments conducted using Gymnasium (a maintained fork of OpenAI’s Gym library).
Deep Learning Link to heading
  • Implement and train a network on MNIST.
  • Implement and train a network on CIFAR-10. Implemented CNN model using PyTorch.
  • Network Visual Inspections and Style Transfer.
  • Implementation of RNN, LSTM, Seq2Seq, and Transformer models.
  • Image Colorization project - Implemented a CNN-based solution for converting grayscale images to color images.
Advanced Operating Systems Link to heading
  • Virtual Machine Scheduling in KVM
    • Implemented a vCPU scheduler and a memory coordinator to dynamically manage resources assigned to each guest virtual machine.
    • Memory ballooning driver implementation.
  • Barrier Synchronization
    • Implementation of barrier synchronization algorithms from the paper titled “Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors, by John M. Mellor-Crummey (Rice University) and Michael L. Scott (University of Rochester), ACM Transactions on Computer Systems Vol. 9, No. 1, February, 1991”.
    • Barriers implemented using OpenMP: Sense-Reversing Centralized Barrier and the MCS Tree Barrier.
    • Barriers implemented using Open MPI: MCS Tree Barrier and Dissemination Barrier.
    • Barriers benchmarked on a Supercomputing cluster.
    • Simulations carried out on 1-12 CPUs with each CPU capable of executing upto 12 simultaneous threads.
  • A multi-threaded e-Commerce Store in a distributed service
    • Distributed service implementation using gRPC (Google RPC) for RPC services and Protocol Buffers as the IDL (Interface Definition Language).
    • Asynchronous RPC communication model: Clients <—> Store and Service <—> Vendors.
  • Implementation of the MapReduce programming model in a distributed service
    • Distributed service implementation using gRPC (Google RPC) for RPC services and Protocol Buffers as the IDL (Interface Definition Language).
    • In line with the specifications as per the paper titled “MapReduce: Simplified Data Processing on Large Clusters, J. Dean, S. Ghemawat, Google Inc. OSDI 2004”.
    • Creation of file shards/partitions for mapping.
    • Implementation of a Mapper and a Reducer service.
Machine Learning for Trading Link to heading
  • Martingale
  • Optimize Something
  • Assess Learners
  • Defeat Learners
  • Marketsim
  • Indicator Evaluation
  • Qlearning Robot
  • Strategy Evaluation
Robotics AI Link to heading
  • Meteorites: Implementation of Kalman Filter
  • Solar system project: Implementation of Particle Filter
  • Drone control project: Implementation of PID controller
  • Warehouse project: Implementation of Search Algorithm
  • Indiana drones project: Implementation of SLAM
Data and Visual Analytics Link to heading
  • End-to-end analysis of TMDb data, SQLite, D3 Warmup, OpenRefine, Flask
  • Tableau, D3 Graphs, and Visualization
  • Analysing large dataset using Spark on DataBricks, AWS and GCP
  • Implementation of PageRank Algorithm, Random Forest Classifier and using Scikit-learn
  • Healthcare Budgeting: Projecting personal healthcare expenditures using forecasted CPI data
Network Science Link to heading
  • Working with NetworkX and Linear Algebra
  • Degree Distributions and Exploring Network Topology
  • Centrality, Modularity and Community Detection
  • Modeling Network Epidemics
  • Network Models and Statistical Analysis
Graduate Operating Systems Link to heading
  • File server
    • Implementation of a multi-threaded (boss-worker pattern) file server servicing a pool of clients in C based on the GetFile protocol (HTTP-like protocol) and multi-threaded client that acts as a load generator for the server.
  • Proxy server using Inter-Process Communication
    • Implementation of a proxy server to act as an intermediary between a file server and its clients using libcurl’s Easy Interface.
    • Implementation of a cache server to act as an alternate file source in a client-proxy-server setup.
    • Support for multiple proxy servers by incorporating multi-threading constructs in addition to shared memory and message queues (POSIX and SystemV).
  • Distributed File System using RPC (Remote Procedure Call) protocol service
    • Built a series of remote procedure calls (RPCs) and message types that fetch, store, list, and delete files in addition to getting file attributes/statistics in a distributed file system (one file server and multiple clients).
    • Used gRPC (Google RPC) for RPC services and Protocol Buffers as the IDL (Interface Definition Language).
    • Watcher thread implemented to be on a lookout for changes in the mounted directories.
    • File content synced between clients and servers using asynchronous calls between server and clients to update the client/clients in case a file/files/directory changes on the server and vice versa.
    • Mutexes and condition variables set in place in order to avoid race conditions and to avoid multiple writers from accessing the same file/directory.
    • Implementation of a consistent synchronization system to manage cache consistency between multiple clients and server.
Computer Networks Link to heading
  • Simulating Networks and representing network topologies (simplex, complex, datacenter) in Mininet.
  • Development of a distributed version of the Spanning Tree Protocol.
  • Development of a distributed Bellman-Ford algorithm (Distance Vector Protocol) for calculating routing paths in a network.
  • Using SDN principles to create configurable firewall using POX OpenFlow Controller.
  • BGP Hijacking in a sandbox environment.
  • BGP Measurements.
  • Identified Internet-wide events that have large scale impact on Internet connectivity for individual networks or entire countries.
Undergraduate Projects: Link to heading
  • Implemented a Cassandra Browser Tool for keyspace and column family CRUD operations.
  • Build a Virtualisation Orchestration Layer that can coordinate the provisioning of compute and storage resources by negotiating with a Hypervisor.
  • Implemented Consistent Hashing and Merkle Trees in Python.
  • Implemented a Database Engine in C++ that can read the metadata from a schema file and operate on user queries.
  • Developed an Adventure Game using OpenGL that simulates a 3D world with scenary, bots, lighting, shadow effects and textures.
  • Developed an Application level Typical File Sharing Protocol with support for upload / download and indexed search.
  • Implemented a Two-phase Multiway Mergesort for sorting “x” GB of records.
  • Implemented a Linux shell which included Linux commands with redirection and pipes.
  • Build a Hostel Management System portal using web2py for the operation of various functions of the students residing in our university hostels.
  • Made a Photo Uploader Application using web2py where the users can like, comment and see the photos of other users.