Coursework

Courses:

Fall 2019: Artificial Intelligence, Fundamentals of Computer Networks, Operating Systems, Analysis of Algorithms

Spring 2020: Machine Learning, Independent Study in Machine Learning and Natural Language Processing, Theory of Database Systems, Visualisation

Programming Languages(In order of proficiency):

Python, C, C++, SQL, Visual Basic, Java

Artificial Intelligence:

The Searchin’ Pac-Man: Implemented Breadth-First Search, Depth-First Search, Uniform-Cost Search and A* heuristic search algorithms for a Pacman agent. This agent used the algorithms to navigate obtain the shorted path to eat the food in the maze.

GitHub: https://github.com/aakashsbhatia2/Pacman—Search.git

The Multi-Agent Pac-Man: Implemented Minimax, Alpha-Beta pruning and Expecti-max algorithms for a Pacman agent to win the game against ghost agents. The ghost agents moved randomly and the Pacman agent used the algorithms to win the game.

GitHub: https://github.com/aakashsbhatia2/PACMAN—–Multiagent.git

Ghostbusters: Implemented Bayesian network for a Pacman agent to win the game against ghost agents.

Computer Networks:

A COMPARATIVE STUDY BETWEEN MULTI-PATH TCP AND TCP: Performed a comparative study to assess the performance of MPTCP vs TCP. This study included the following:

  1. Comparison of average throughput achieved using MPTCP (default scheduler), MPTCP (redundant scheduler), TCP (wired connection) and TCP (wireless connection).
  2. Retransmissions due to packet loss using MPTCP (default scheduler), MPTCP (redundant scheduler), TCP (wired connection) and TCP (wireless connection).
  3. Average RTT achieved using MPTCP (default scheduler), MPTCP (redundant scheduler), TCP (wired connection) and TCP (wireless connection).
  4. Comparison of throughput achieved using MPTCP (default scheduler), MPTCP (redundant scheduler), TCP (wired connection) and TCP (wireless connection) for 6 webpages that support MPTCP.

All About DNS: Developed a DNS resolver. In response to an input query, the resolver contacted the root server, top-level domains, all the way down to the corresponding name server to resolve the DNS query. The resolver also checked whether the DNSSEC protocol was being used.

GitHub: https://github.com/aakashsbhatia2/DNSResolver.git

HTTP, TCP, and Wireshark: Developed a tool to analyse TCP and HTTP packets from a .pcap file and output the number of flows, attributes (sequence number, acknowledgement number, Window size), throughput, average RTT, congestion window size and number of retransmissions.

GitHub: https://github.com/aakashsbhatia2/TCP-Packet-Analyser.git

Networking: Implemented static routing, Routing Information Protocol (RIP) and Bellman-Ford algorithm using mininet.

Operating Systems:

System Call: Add a new system call in the Linux 4.18 kernel which encrypts a given string and prints out encrypted string to kernel message.

GitHub: https://github.com/aakashsbhatia2/SystemCall.git

Job Scheduler: Earliest start time first with priority scheduler: Implemented a custom job scheduler in the Linux 4.18 kernel to schedule jobs based on the earliest start time. In case the start time for two jobs was the same, the scheduler will scheduler these jobs based on priority assigned to them.

GitHub: https://github.com/aakashsbhatia2/scheduler.git

Custom File System: Developed a custom file system in the Linux 4.18 kernel. This file system created directories and files based for each task running on the VM. The files printed the task characteristics (Task Name, Task State, Process Id, CPU ID ,Thread Group ID (TGID), Parent’s PID (PPID), Start Time, Dynamic Priority, Static Priority, Normal Priority, Real-time Priority, Memory Map Base, Virtual Memory Space, Virtual Memory Usage, No. of Virtual Memory Address and Total Pages Mapped) for each active task.

GitHub: https://github.com/aakashsbhatia2/FileSystem.git