This repository contains projects and assginments from my undergraduate career at BUET.
Digital clock using iGraphics.
Popular Tick-Tac-Toe game created in C++ using iGraphics library(A Wrapper For OpenGL in 2D).
A JavaFX application where patients can take and manage appointments from the hospital.
Implement an adjacency matrix and an adjacency list implementation of Graph.
Skyline problem.
Huffman coding and minimizing waiting times.
Assignment 5: Romberg integration, Euler's method, Heun's method, The Midpoint method, Ralston’s method
Football club management software created with JavaFX using Oracle DBMS.
DX-Ball with Dot Matrix and Atmega32. Watch the demo DX-Ball video on YouTube.
Assignment on interprocess communication.
Implement Socket API (local loopback only) in xv6.
- Create a new system call in xv6 with the following specifications: a. Name of the system call will be your firstname_lastname b. The system call will print your name and date of birth c. The system call will return your student id
- Create a user program in xv6 that will call your newly added system call
- From the xv6 shell, run the user program
An important feature lacking in xv6 is the ability to swap out pages to a backing store. That is, at each moment in time, all processes are held within the physical memory. You have to implement a paging framework for xv6, which can take out pages and storing them on a disk. Also, the framework will retrieve pages back to the memory on demand. In your framework, each process is responsible for paging in and out its own pages. To keep things simple, we will use the file system interface supplied and create for each process a file in which swapped-out memory pages are stored.
Obbserving the effects of modifying original NS2 parameters/algorithms.
Implementing transposition cipher and DES.
DNS (Domain Name System) is the Internet's phonebook; it translates hostnames to IP addresses and vice-versa. This is done via DNS resolution. DNS attacks manipulate this resolution process in various ways. One of them is DNS Cache Poisoning Attack. There are two main ways to perform this attack, local (where the attacker and victim DNS server are on the same network, packet sniffing is possible) and remote (where packet sniffing is not possible). I've implemented the remote DNS cache poisoning attack.
Lab Environment
To demonstrate this attack, I have used three virtual machines, which runs on one single physical machine.
- A DNS server
- Victim user
- Attacker which also hosts fake DNS server
Report
More details about the attack here.
Implementation
Video
Watch the full DNS cache poisoning video on YouTube.
There are three tasks, each carrying the same weight.
- Fully Controllable Camera (1.exe)
- Sphere to/from Cube (1.exe)
- Wheel (2.exe)
- Stage 1: Modeling Transformation
- Stage 2: View Transformation
- Stage 3: Projection Transformation
Rendering a scene using ray casting.
Input: An undirected graph G(V,E) and an integer K.
Output: True if the vertices of G can be partitioned into K sets Si ,whenever two vertices in the same sets Si are adjacent. Si do not need to be disjoint, they can be non disjoint. But we can make them disjoint by putting common vertices in only one set without any problem. Thus we can think Si are disjoint.
Note: There is also edge clique cover problem but we are only interested in vertex clique cover. So if we say clique cover, we are indicating vertex clique cover.
The decision tree is one of the models extensively used in classification problems. In ensemble learning, we combine decisions from multiple weak learners to solve a classification problem. This assignment implements a decision tree classifier and uses it within the AdaBoost algorithm.
Stack Exchange is a very popular Q&A (Question-and-Answer) based website. We want to analyze some archived data of Stack Exchange using text classification. The link to the stack exchange archive is https://archive.org/details/stackexchange. The goal of text classification is to identify the topic for a piece of text (news article, web-blog, etc.). Text classification has obvious utility in the age of information overload, and it has become very popular for applied machine learning algorithms. In this project, you will implement k-nearest neighbor and NaiveBayes, use these to text classification on Stack Exchange sample data, and compare the performances of these techniques.
Assignment 3: Dimensionality Reduction using Principal Component Analysis and Clustering using Expectation-maximization Algorithm
Principal component analysis (PCA) and the expectation-maximization (EM) algorithm are two of the most widely used unsupervised methods in machine learning. In this assignment, you will use PCA for dimensionality reduction and apply the EM algorithm for the Gaussian mixture model to cluster the data with dimensionality reduction.
The purpose of a recommendation system is to suggest relevant items to users. This project aims to build a movie recommendation mechanism within Netflix.