Skip to content

This repository contains all the projects/assignments I did while obtaining my B.Sc. at BUET.

Notifications You must be signed in to change notification settings

iamsanjaymalakar/Undergrad_BUET

Repository files navigation

Undergrad

This repository contains projects and assginments from my undergraduate career at BUET.

Level 1 Term 1

Structured Programming Language Sessional CSE102

Assignment 1: Basic Problem Solving

iGraphics Assignment

Digital clock using iGraphics.

Project: Tic-tac-toe

Popular Tick-Tac-Toe game created in C++ using iGraphics library(A Wrapper For OpenGL in 2D).

Level 1 Term 2

Object Oriented Programming Language Sessional CSE108

Assignment on Inheritance

Assignment on Threading

Assignment on Networking

Project: Hospital Management System

A JavaFX application where patients can take and manage appointments from the hospital.

Level 2 Term 1

Data Structures Sessional CSE204

Assignment 1: ArrayList Implementation

Assignment 2: LinkedList Implementation

Assignment 3: Binary Search Tree Implementation

Assignment 4: Heap Implementation

Assignment 5: Graph Implementation

Implement an adjacency matrix and an adjacency list implementation of Graph.

Assignment 6: Divide and Conquer

Skyline problem.

Assignment 7: Greedy Algorithms

Huffman coding and minimizing waiting times.

Numerical Methods CSE218

Assignment 1: Bisection method, Secant method, False position method

Assignment 2: Gauss-Seidel, LU Decomposition

Assignment 3: Golden Selection Search, Simplex method

Assignment 4: Newton's Divided Difference, Quadratic Splines

Assignment 5: Romberg integration, Euler's method, Heun's method, The Midpoint method, Ralston’s method

Level 2 Term 2

Data Structures and Algorithms II Sessional CSE208

Assignment 1: Minimum Spanning Trees

Assignment 2: Single-Source Shortest Path

Assignment 3: Dynamic Programming

Assignment 4: All Pair Shortest Path

Assignment 5: Maximum flow

Assignment 6: Hashing

Assignment 7: Red-Black Tree

Assignment 8: Branch and Bound

Database Sessional CSE216

Project: Football Club Management

Football club management software created with JavaFX using Oracle DBMS.

Level 3 Term 1

Technical Writing and Presentation CSE300

Assignment 1: Introduction to Latex

Assignment 2: Tikz

Presentation using Latex

Software Engineering and Information System Design Sessional CSE308

Assignment 1: Factory Design Pattern

Assignment 2: Design Pattern

Compiler Sessional CSE310

Assignment 1: Implementation of Symbol Table

Assignment 2: Lexical Analysis

Assignment 3: Syntax and Semantic Analysis

Assignment 4: Intermediate Code Genaration

Microprocessors and Microcontrollers Sessional CSE316

Assignment: Assembly Language

Project: DX-Ball using micro-controller

DX-Ball with Dot Matrix and Atmega32. Watch the demo DX-Ball video on YouTube.

Level 3 Term 2

Operating Systems Sessional

Assignment 1: Shell Script

Assignment 2: IPC

Assignment on interprocess communication.

Assignment 3: xv6 Socket API

Implement Socket API (local loopback only) in xv6.

Assignment 4: xv6 Syscall

  1. 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
  2. Create a user program in xv6 that will call your newly added system call
  3. From the xv6 shell, run the user program

Assignment 5: xv6 Paging

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.

Artificial Intelligence Sessional CSE318

Assignment 1: Missionaries and Cannibals

Assignment 2: nPuzzle

Assignment 3: Travelling Salesman Problem

Assignment 4: Adversarial Search

Computer Networks Sessional CSE322

Assignment 1: Socket Programming

Assignment 2: DVR

Assignment 3: Working with NS2 Simulator

Obbserving the effects of modifying original NS2 parameters/algorithms.

Assignment 4: Reliable Transport Protocol

Assignment 5: Error Detection and Correction

Level 4 Term 1

Computer Security Sessional CSE406

Offline 1 : Transposition Cipher & DES

Implementing transposition cipher and DES.

Project: DNS Cache Poisoning

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.

  1. A DNS server
  2. Victim user
  3. Attacker which also hosts fake DNS server

Report

More details about the attack here.

Implementation

C implementation.

Video

Watch the full DNS cache poisoning video on YouTube.

Computer Graphics Sessional CSE410

Assignment 1

There are three tasks, each carrying the same weight.

  1. Fully Controllable Camera (1.exe)
  2. Sphere to/from Cube (1.exe)
  3. Wheel (2.exe)

Assignment 2

  1. Stage 1: Modeling Transformation
  2. Stage 2: View Transformation
  3. Stage 3: Projection Transformation

Assignment 3

Rendering a scene using ray casting.

Level 4 Term 2

Algorithm Engineering CSE462

Clique Cover Problem

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.

Machine Learning CSE471

Assignment 1: Decision Tree and AdaBoost for Classification

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.

Assignment 2: Text Classification

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.

Project: Recommendation System

The purpose of a recommendation system is to suggest relevant items to users. This project aims to build a movie recommendation mechanism within Netflix.

About

This repository contains all the projects/assignments I did while obtaining my B.Sc. at BUET.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published