All of these projects describe work that I did as an undergrad at IIT Kanpur.
This is a project thought up by some brilliant people. I’m one of the contributors to it. It allows anyone to setup a batch website free of cost, by using static site hosting provided by github. We did this in particular for our batch, which is available here.
Kudos to all the people who made this happen.
CS641: Modern Cryptology, Winter ‘15
The ‘assignment’ in this course was a text adventure game which involved breaking various ciphers to clear a particular level. Over the course of the semester, we broke:
- Substitution cipher
- Block substitution cipher
- Substitution-Permutation cipher
- DES (with differential cryptanalysis)
- SASAS (AES like attack) cipher
- RSA (with low public exponent, using coppersmiths LLL based attack)
- A hash function
The code and reports cannot be made public since the assignment is likely to be repeated in later versions of the course. Can be provided on legitimate requests.
CS628: Network and Systems Security, Winter ‘15
Although this is not really a ‘project’ in the true sense, I feel like it deserves to be here. A set of challenging and interesting tasks set as a part of a capture the flag contest which was one of the assignments in this course. The code and brief descriptions for the attacks can be found in the link given in the header.
The other assignments in this course were based off MIT6.858 assignments.
CS772: Probabilistic Machine Learning, Winter ‘15
A brief survey of the state of the art probabilistic lossless data compression algorithms and experiments with these algorithms. Covered nonparametric bayesian models, markov models and neural networks
The poster for the project can be found here
SAT solving on GPUs
CS498: Undergraduate Project, Fall ‘15
CS 678: Learning with Kernels, Fall ‘15
A (theoretical) study and comparison of DC-Pred++ and LDKL. The report includes the history and origin of the algorithms as well as how they compare in performance.
The presentation for the project can be found here
CS 350: Principles of Programming Languages, Fall ‘15
Some problems whose solutions are implemented in Oz. Also includes an interpreter for the declarative semantic model of Oz (including threads) written in Oz.
Oz has a well-specified declarative semantic model.
CS 653: Functional Programming, Fall ‘15
A library for reinforcement learning in Haskell. Implementation of SARSA, QLearn and an example game (cat and mouse).
The goal was to add the algorithms into HLearn, but a lot of work remains before that can be done.
This poster accompanied the final presentation for this project.
Note: The content is based on the notes and programs given here.
CS 679: Machine Learning for Computer Vision, Winter ‘14
Implementation of the paper - Bayesian Hierarchical Models for Natural Scene Classification (Fei-Fei Li, Pietro Perona).
The paper uses a bag-of-words model to classify natural scenes into various categories.
Done in Matlab.
The poster for this project can be found here
CS 335: Compilers, Winter ‘14
Compiler for a subset of Java to MIPS written in C++
Supports looping expressions, type checking, primitive datatypes, 1D arrays and recursion
CS 360: Introduction to Computer Graphics, Fall ‘14
A game using the core OpenGL API
Implementes basic physics, texture loading, a navigable (3d) camera and blinn-phong shading.
CS252: Computing Laboratory, Fall ‘14
Ruby on Rails project. Create homepages, resumes and templates with MathJax support.
A report is also available in the repository.
CS330: Operating Systems, Fall ‘14
Linked here is the second assignment of three assignments that included implementations of:
- System calls pertaining to Fork, Exec, Join, Yield, Sleep and Exit
- UNIX, First in First Out, Round Robin, Shortest Job First and Non-Preemptive job scheduling algorithms
- Random, First in First Out, Least Recently Used (LRU) and LRU Clock page replacement algorithms
A solver for the 2x2x2 Rubik’s Cube. A Breadth First Search based approach.
Programming Club, IIT Kanpur, Summer ‘13
Gesture recognition using OpenCV. A (slightly over-the-top) demo video is available on youtube
Colour filtering followed by a classifier trained with SVM.
ESc 101: Fundamentals of Computing, Fall ‘12
Java, MySQL based implementation of basic version control features. Features implemented include separate local/remote stores with diffs, pull from remote, merge etc. Branching not supported.
A (somewhat) popular prezi about Rubik’s Cube’s Fewest Moves solving.
The original purpose was for a lecture I took at the Rubik’s Cube Hobby Group, IIT Kanpur.
Page under construction