Moemen Gaafar's Projects
Budgeted Tree Search implementation using C++. Applied to the domain of the 4x4 Sliding Tile Puzzle.
We design a PID controller to steer an CARLA-simulated autonomous car on a pre-determined racetrack. We use MATLAB, Simulink, and MATLAB’s System Identification Toolbox to model the car into a suitable transfer function then design a PID controller using Simulink’s Control System Toolbox that meets acceptable specifications on both the transfer function and the CARLA simulator.
A C++ simulator for digital circuits. The GUI allows the user to add and connect logic gates, run/stop the simulation, show truth tables, and save/load their circuit.
In this project, we train decoding models to predict the sentiment label of a sentence given the fMRI voxel activity corresponding to it.
This is a C# application, attached to an SQL database, to be used in the context of a housing project in which companies create housing units for which citizens apply and are selected based on their need. The application queries the database as needed, and accommodates all the steps and all the agents participating in the process.
I implement a JPEG encoder and decoder using MATLAB. The encoder/decoder can work on three compression modes that correspond to three different quantization tables and thus three different compression rates.
A dynamic generic webpage designed using HTML, CSS and Javascript.
A graphical mapper for a minesweeping robot. The mapper receives its input (whether a mine exists or not) from the Arduino serial monitor and maps it to the interface.
Python implementations of various adversarial search techniques applied to the Pacman game. The implementations include a simple reflex agent, a vanilla minimax agent, alpha-beta pruned minimax agent and an expectimax agent with a tailored evaluation function.
In this project, we analyze 55 million comments imported from the Reddit API using Hadoop MapReduce jobs.
This is a C++ simulation of a restaurant using our own implementation of various data structures, including linked lists, queues, and heaps. The simulation is equipped with an interface to show the current state of the restaurant.
Structural implementation of a single cycle processor using Verilog. The processor handles the following set of instructions: lw, sw, Rtype instructions (add, sub, and, or, slt), addi, sll, lh.
We train Linear Regression, Neural Networks, and other machine learning models on data from the World Happiness Report to quantitatively define the main factors affecting humans’ subjective sense of happiness and thus develop a method to predict happiness.