# Mohamed Thabet > Machine learning and simulation engineer. I'm 19 and I learn by rebuilding things from first principles: neural networks, decision trees and clustering in raw NumPy, and gravity you can throw planets into. If I can't write it from scratch, I don't consider it understood yet. I started with physics simulations: a ball thrown with drag and bounce, a solar system in VPython, and a Pygame window where you slingshot planets around a sun. That turned into machine learning, where I write every algorithm by hand before touching a library. My MNIST network is NumPy matrix maths with hand-derived gradients, and switching ReLU to LeakyReLU took it from 10% to about 80% accuracy. I also do exploratory data analysis on real datasets, such as 187,000 house listings, using Pandas and Seaborn. At Samsung Innovation Campus I studied AI and machine learning, and in a team of six built Bayan, an Android app that simplifies Arabic text for readers with dyslexia. ## Links - Website: https://mohamedthabet.com - All projects: https://mohamedthabet.com/projects - Machine-readable profile (JSON): https://mohamedthabet.com/api/profile - Github: https://github.com/mohamedthabet7 - Linkedin: https://www.linkedin.com/in/mohamed-thabet-269a44441/ - Email: abdwadood2000@gmail.com ## Focus areas - Machine learning from scratch - Neural networks - Backpropagation - Decision trees - Clustering - Regression and statistics - Exploratory data analysis - Physics simulation - NumPy - Python ## Projects ### Bayan (بيان) Samsung Innovation Campus capstone with a team of six: an Android app that simplifies hard Arabic text, adds diacritics and reads it aloud, all on the phone. I worked on the app. - Built the PROCESS_TEXT action, so «تبسيط» appears in the text-selection menu of any app, and its result sheet - Rebuilt the app in Jetpack Compose and Material 3 Expressive, with model download, settings and result states - Simplify → diacritize → read aloud with the spoken word highlighted, fully offline with ONNX Runtime - Data annotation and quality review; the best model keeps the meaning on 82% of the test set Tech: Kotlin, Jetpack Compose, ONNX Runtime, Python Live: https://bayan-android.vercel.app GitHub: https://github.com/Cogni-Libya/Bayan ### Planets Through Space A Pygame gravity sandbox: drag to aim, release, and Newton's law decides whether the planet orbits, escapes or falls in. - Drag-and-release slingshot launch, with the speed set by the drag length - Newtonian gravity F = G·m₁·m₂ / r² from a sun of 1.989 × 10³⁰ kg - Euler integration of velocity and position at 400 steps per second - Planets are removed when they leave the screen or hit the sun Tech: Python, Pygame Live: https://mohamedthabet.com/#gravity GitHub: https://github.com/mohamedthabet7/Practice-Projects/blob/main/PlanetThroughSpace-Project ### MNIST Net A two-layer network that reads handwritten digits, written in raw NumPy with hand-derived backpropagation. - 784 → 10 → 10 architecture with a numerically stable softmax - Analytical gradients for every weight and bias, no autodiff - Diagnosed the dying-ReLU problem stuck at 10% accuracy - LeakyReLU (α = 0.1) lifted test accuracy to about 80% Tech: Python, NumPy, Jupyter GitHub: https://github.com/mohamedthabet7/Machine-Learning-Algorithims ### ID3 Decision Tree Shannon entropy and information gain worked by hand, then automated into a recursive ID3 builder that prints the tree. - Manual entropy and information-gain trace for every branch - Recursive ID3 that picks the split with the most information gain - Detects pure leaves where H(S) = 0 - Renders the learned Play Tennis tree as clean ASCII Tech: Python, Pandas GitHub: https://github.com/mohamedthabet7/Machine-Learning-Algorithims ### K-Means vs K-Medoids Both clustering algorithms from first principles, compared on how they handle noise and outliers. - Euclidean distance and centroid updates written out in NumPy - PAM medoid search: the centre must be a real data point - Tested on an 8-point set and a 40-point synthetic set - Shows why medoids resist outliers better than means Tech: Python, NumPy GitHub: https://github.com/mohamedthabet7/Machine-Learning-Algorithims ### California Housing OLS, SGD, Lasso and Ridge compared on California house values, with a VIF diagnosis of correlated features. - Correlation heatmaps and distributions with Seaborn - Four regressors compared: OLS, SGD, Lasso and Ridge - Found AveRooms and AveBedrms correlated at about 0.85 - VIF = 1 / (1 − R²) used to drop redundant predictors Tech: Python, scikit-learn, Pandas, Jupyter GitHub: https://github.com/mohamedthabet7/Machine-Learning-Algorithims ### House Prices EDA Exploratory analysis of a 20-column housing dataset: cleaning, missing data and a price column with a skew of 177. - Duplicate and missing-value audit across all 20 columns - Renamed and retyped mislabelled object columns - Measured extreme right skew and planned a log transform - Binned prices into intervals to size the outliers Tech: Python, Pandas, Seaborn, Jupyter GitHub: https://github.com/mohamedthabet7/Data-Analysis-and-EDA ### Solar Simulation Planets that pull on each other in a VPython 3D scene, with collisions and labelled bodies. - Mutual gravity between every pair of bodies - Launch angle and speed set per planet in 3D - Collision detection when bodies touch - Live 3D canvas with a reference grid at 60 FPS Tech: Python, VPython GitHub: https://github.com/mohamedthabet7/Practice-Projects/blob/main/SolarSimulation.py ### Ball Throw A 3D ball thrown at any angle, slowed by drag and friction, bouncing with set elasticity. - Launch from vertical and horizontal angles in 3D - Gravity of 9.8 m/s² applied each frame - Drag, friction and elasticity coefficients - Comes to rest on the floor instead of jittering Tech: Python, VPython GitHub: https://github.com/mohamedthabet7/Practice-Projects/blob/main/BallThrow.py ### Perceptron A single neuron that learns logic gates, starting from random weights and stopping at zero error. - Forward perceptron with a bipolar step function - Self-learning loop with Rosenblatt's update rule - Random initial weights between −5 and 5 - Trains until total error on the truth table is zero Tech: Python GitHub: https://github.com/mohamedthabet7/Machine-Learning-Algorithims ## Certifications - Artificial Intelligence course, capstone: Bayan, Samsung Innovation Campus