Selected Projects

Graduate

Coming soon... 🙃

Undergraduate

FPGA Implementation of an Artificial Neural Network

A VHDL module for running a trained Artificial Neural Network (ANN)

Neural Networks HDL FPGA-based Accelerators
Finite Impulse Response (FIR) Module

This VHDL module implements an FIR filter that can perform almost any kinds of digital filtering

DSP HDL FPGA
AES Encryption Unit

Verilog HDL implementation for the well-known AES-128 symmetric-key cryptography algorithm

Cryptography HDL FPGA
Implementation of the Altera Nios II Processor on an FPGA

In this project, a Nios II soft-processor is developed using Intel Qsys. The target FPGA for this project was an Altera MAX 10.

Soft-processors FPGA Computer Architecture
DES Encryption Unit

The influential Feistel-based DES cryptography algorithm, implemented using Verilog HDL

Cryptography HDL FPGA
Discrete Cosine Transform (DCT) Module

A Verilog code for implementing one of the most widely used image compression algorithms

DSP HDL FPGA
FPGA-based Logic Analyzer Using an External ADC Chip

FPGA implementation of a Logic analyzer, which communicates with PC through UART protocol, using ADC128S102

ADC UART FPGA HDL
Measuring Unit Impulse and Unit Step Responses of an LTI Amplifier

Practical measurement of a guitar amplifier responses to simulate its behavior in MATLAB using convolution

LTI Systems Impluse Response Step Response
Triple-DES Encryption Unit

A replacement unit for the basic insecure DES, implemented using Verilog HDL

Cryptography HDL FPGA
Genetic-based Solution for Traveling Salesman Problem

This project implements the genetic algorithm using C# to solve the traveling salesman problem (TSP)

Genetic Algorithm Artificial Intelligence
Solving Modified n-Queen Problem using A*

C# implementation of the A* search algorithm with an efficient heuristic function

Artificial Intelligence A* Search Algorithm Heuristic Functions
CPU Scheduling Algorithms

A C# program for running different scheduling algorithms on a series of tasks, capable of comparing results and reporting the best one for that specific series of tasks

Operating Systems Process Scheduling
Dynamic Programming for a Variant of LIS Problem

A C# program that uses dynamic programming to solve the problem of building multiple bridges over a river without crossing each other

Algorithm Design Dynamic Programming
Student Management System

A C++ structural program to manage students’ data such as grades, GPAs, Pass/Fails, and overall class performance

Structural Programming C++
Time-efficient Dictionary using Data Structures

A bilingual (DE/EN) C# application which utilizes Binary Search Tree (BST) and linked lists to index words and find them with optimized time complexity

Data Structures Binary Search Tree Linked Lists
Matching Game

This is one of my first programming projects. Being a computer engineer can be fun!

Windows Form Games