Here is a non-exhaustive list of my non-research projects. My research work can be found here. You can also check out my Github profile here for a complete list of my projects.

  • Superscalar Processor Simulator (SPSIM)
    report
    code

    C++ simulator for a superscalar processor with support for (integer) arithmetic, memory and branch operations (load/store). It employs dynamic (out-of-order) scheduling, 2-bit branch prediction, register renaming and remapping and correctly handles RAW, WAR, and WAW hazards. We also designed a minimalistic language that is interpretable by the processor for the same. On end of simulation, instruction space-time diagram and contents of memory/registors are displayed.

  • Efficient Digital Grading Environment (EDGE)
    report
    code

    A system for simplifying the grading and feedback process for examinations, with Flutter-based Android app for students and TAs, web app for instructors, PostegreSQL database, and Java servlets. Features include splitting of answersheets according to questions, question-specific distribution of splits to assigned TAs, displaying aggregated grades and corrected answers back to student, and many more.

  • Automatic Image Colorization
    report
    code

    Assigning colors to grayscale images from a colored reference image using graph-cut segmentation and k-nearest neighbor search on locally extracted features.

  • Wirespace
    code

    Wirespace is a decentralized file server application which, if permitted, allows clients to share prespecified disk space on their machines with other users in the same network. To put it simply, the software creates a local file server which clients can connect to and read/write directly. The project runs on the browser, so only the server needs to have a copy of the software. Features include one-time authentication, access hierarchy and local editing using the editor.