Table of Contents

Implementation Multivariable Regression LDA dimensionality reduction and classification
Implementation Perceptron Algorithm PCA dimensinality reduction on images of faces
Naive Bayes and MLP for classification K-means algorithm
Decision Tree / Random Forest / XGBoost / SVM for classification MLP / ELM / AutoEncoder for classification
N Queens Puzzle Maze Solver AI
Connect Four Game AI Assembler and Disassembler
Image Processing using Assembly Neural Networks From Scratch
Snake Game Semantic Tableaux
MLP From Scratch Scheduling Algorithms
Graph Traversal Methods Moris Mano Basic Compute
House Price Prediction Simple Twitter
Titanic Survival Prediction
Project Image

Grapevine Leaves Classification

Project Date: July 2022

Data Mining Course's Project

This project is the final assignment for a data mining course. The primary objective is to classify grapevine leaves into five distinct classes using various deep learning models, including MobileNetV2, ResNet50, EfficientNetB3, and InceptionNetV3. The project also explores the impact of autoencoders on classification accuracy and employs 10-fold cross-validation as a performance metric.

Libraries Used: tensorflow, keras, PIL, pandas, numpy, sklearn

Project Image

Histopathology Image Classification

Project Date: May 2023

Image Processing Course's project

In this project, I explored various deep learning models for image classification, specifically in the context of histopathology image analysis. I trained and evaluated these models on a custom dataset and compared the performance of different model architectures. The models include the homework model, an updated model with modified convolutional layers, and a pre-trained ResNet-50 model fine-tuned for our classification task.

Libraries Used: Python, TensorFlow, Keras, OpenCV, Pandas, NumPy, Matplotlib, Scikit-Learn, PIL, Seaborn

Project Image

Finding Vowels

Project Date: December 2021

Information Retrieval Course's Mini-Project

In this project, I embark on a journey to enhance Persian language understanding through state-of-the-art machine learning. My core objective revolves around accurately labeling each word in Persian text with its corresponding part of speech, a fundamental task in natural language processing. By leveraging a meticulously curated dataset of Persian texts, I employ a range of machine learning models, including Gaussian Naive Bayes, Multinomial Naive Bayes, Decision Trees, Perceptron, and Logistic Regression, to decode the grammatical structure of Persian sentences. My project's success hinges on comprehensive feature engineering, innovative feature selection techniques, and meticulous model evaluation, ensuring that our POS tagging model meets the highest standards of accuracy and precision.

Libraries Used: Pandas, Numpy, Scikit-learn, PersianStemmer

Project Image

Parkinson's Disease Classification

Project Date: June 2022

Data Mining Course's Mini-Project

Parkinson's disease is a debilitating neurodegenerative disorder that profoundly affects a person's ability to move and leads to symptoms like tremors, slowness of movement, and muscle rigidity. Timely diagnosis is crucial for effective treatment and management, and this project seeks to contribute to that goal by employing cutting-edge data analysis techniques. I embark on an exciting exploration of various machine learning algorithms, each with its unique strengths and characteristics. These include Decision Trees, K-Nearest Neighbors, Support Vector Machines, and Random Forests. Through rigorous experimentation and cross-validation, I fine-tune these algorithms to achieve optimal performance, ensuring they are finely attuned to the nuances of Parkinson's disease classification. Recognizing the complexity of my dataset, I implement Principal Component Analysis (PCA) to reduce its dimensionality while preserving vital information. The outcomes of this endeavor hold the promise of significantly improving the lives of individuals affected by Parkinson's disease by enabling swifter and more accurate diagnosis and management.

Libraries Used: Python, Scikit-Learn, Seaborn, NumPy, Pandas, SciPy

Project Image

Sentiment Analysis

Project Date: November 2021

Information Retrieval Course's Mini-Project

In the realm of natural language processing, understanding sentiment expressed in text is a pivotal challenge. This project presents a Python solution to this problem by implementing sentiment analysis using a Naive Bayes classifier. Sentiment analysis, often called opinion mining, revolves around the task of discerning the sentiment or emotional tone embedded within text, such as tweets. This project encompasses two primary datasets: the SandersPosNeg dataset and OMD. The SandersPosNeg dataset features tweets categorized as either positive or negative sentiment, with a Naive Bayes classifier achieving an accuracy of approximately 82.9%. Meanwhile, the OMD dataset, processed through the same steps, yields an accuracy of around 76.3%.

Libraries Used: Python, Scikit-Learn, NLTK, NumPy, Pandas

Project Image

Travelling Salesman Problem

Project Date: October 2021

Bio Computing Course's Project

The Traveling Salesperson Problem (TSP) is a classic optimization puzzle involving finding the shortest route that visits a set of cities and returns to the starting point. In my project, I've successfully tackled this challenge using two distinct algorithms: the Genetic Algorithm and the Self-Organizing Map (SOM). The Genetic Algorithm harnesses principles of natural selection to evolve and refine potential routes over successive generations. By employing a population of routes, combining them through crossover and mutation operations, and favoring shorter paths, this algorithm efficiently converges towards an optimal or near-optimal solution to the TSP. In contrast, the Self-Organizing Map, an artificial neural network technique, organizes cities on a grid based on similarity, aiding route optimization. Your project showcases how these innovative algorithms can effectively solve the TSP, demonstrating your prowess in the fields of bioinformatics and computational biology.

Libraries Used: Python, NumPy, Matplotlib

Project Image

Job Assigning to N Agents

Project Date: November 2021

Bio Computing Course's Project

Job Assignment is the vital process of matching tasks with the most suitable individuals or resources, impacting fields like employee task distribution and logistics route planning, essential for optimizing operations and productivity. In this context, Ant Colony Optimization , inspired by ant foraging behavior, offers a potent algorithmic approach. Artificial ants explore solutions, leaving pheromone-like trails that guide further exploration, making ACO a powerful tool for optimizing job assignments, particularly in complex, large-scale scenarios across various domains. In this Project I solved Job Assignment using ACO.

Libraries Used: Python, NumPy, Matplotlib, Pandas

Project Image

Cutting Stock Problem

Project Date: December 2021

Bio Computing Course's Project

The Cutting Stock Problem is a classic optimization challenge encountered in industries like manufacturing and paper production. It involves determining the most efficient way to cut large rolls or sheets of material, such as metal, paper, or fabric, into smaller pieces to meet customer demand while minimizing waste. The objective is to find the optimal cutting pattern that minimizes the total number of rolls or sheets used. Simulated Annealing is a versatile optimization technique inspired by the annealing process in metallurgy. Just as heated metal cools and forms a crystal structure with minimal defects, Simulated Annealing iteratively explores potential solutions while gradually decreasing the "temperature" parameter, allowing the algorithm to escape local optima and converge towards a global optimum. In this project I solved this problem using Simulated Annealing.

Libraries Used: Python, NumPy, Matplotlib, Pandas

Project Image

N Queens Puzzle

Project Date: December 2021

Bio Computing Course's Project

The N-Queens puzzle has long been a litmus test for the problem-solving capabilities of both humans and machines. It challenges us to place N chess queens on an N.N chessboard in such a way that no two queens threaten each other. As N grows, the puzzle's complexity explodes, making it a formidable problem for traditional methods. In this exploration, I delve into the world of Memetic Algorithms, a hybrid optimization technique merging genetic algorithms and local search heuristics. My journey uncovers their effectiveness in taming the N-Queens puzzle, efficiently navigating the labyrinthine solution space to find elegant solutions for boards of varying sizes.

Libraries Used: Python, NumPy, Matplotlib, Pandas

Project Image

Maze solver AI

Project Date: November 2022

Artificial Intelligence Course's Project

This project houses a Python implementation that breathes life into Q-learning, illuminating its prowess in maze navigation. Here, an intrepid agent undertakes the challenge of collecting flags amidst a maze of unknowns, deftly circumventing obstacles through a series of learned actions. Through each epoch, it evolves from an exploration-driven novice to a strategic explorer, adapting its decisions based on an evolving Q-table.

Libraries Used: Python, NumPy, NetworkX, Matplotlib

Project Image

Connect Four Game AI

Project Date: January 2023

Artificial Intelligence Course's Project

Connect Four comes to life in this project, offering a dynamic gaming experience that blends tradition with innovation. The goal is simple: connect four of your chips in a row, but the journey is anything but. Beyond the classic two-player showdown, you'll find yourself facing off against two formidable AI opponents: the traditional Minimax with Alpha-Beta Pruning and the modern Neural Network AI.

Libraries Used: Python, NumPy, Pygame, TensorFlow

Project Image

Assembler and Disassembler

Project Date: July 2022

Assembly Course's Projects

In these projects I coded assembler and Disassembler with Python and Assembly (NASM-x86) language. The implementations using Python were mini-projects of Assembly course and the ones with Assembly were the course's final projects.

Libraries Used: Python, NumPy, Pygame, TensorFlow

Project Image

Image processing using Assembly

Project Date: July 2022

Assembly Course's Mini-Project

In this mini-project I designed an application using Assembly language that could make some changes to input photos.

Libraries Used: Python, NumPy, Pygame, TensorFlow

Project Image

Neural Networks From Scratch

Project Date: December 2021

Bio Computing Course's Project

This project is a comprehensive exploration of neural networks from scratch, offering a hands-on learning experience for both beginners and enthusiasts in the field of deep learning. With a focus on fundamental concepts, the project covers topics like dataset generation, neural network architecture design, activation functions, optimization techniques, and experimentation. By running code implementations and experiments, users can gain insights into the critical factors affecting neural network performance. This project provides a practical and educational platform to delve deeper into the world of artificial neural networks.

Libraries Used: Python, NumPy, Matplotlib, scikit-learn

Project Image

Snake Game

Project Date: August 2021

Experience the nostalgia of the classic Snake game brought to life in Python with my customizable Snake Game. Navigate through the vibrant world of day and night modes, where you can choose between a sleek white screen with a pink snake and yellow fruit or a thrilling black screen with a green snake and red fruit. With the option to toggle wall collision on or off, challenge your reflexes as you control the snake's direction, collect fruits to increase your score, and strive to avoid running into walls or your snake's own body. It's a timeless game with a modern twist, offering endless hours of fun and excitement for players of all ages.

Libraries Used: Python, Pygame

Project Image

Semantic Tableaux

Project Date: April 2020

Logic Course's Project

Introducing my Semantic Tableaux Solver—a computational tool meticulously crafted for exploring the intricacies of propositional and predicate logic. This Python-based software is meticulously engineered to streamline the construction and examination of semantic tableaux, a fundamental technique in formal logic analysis. Tailored to meet the needs of students, researchers, and professionals in the field, our solver efficiently manages complex logical formulas, adeptly handles negations, disjunctions, and implications, and offers guided insights into the assessment of logical statement validity.

Project Image

MLP From Scratch

Project Date: December 2021

Bio Computing Course's Project

In this project, I've embarked on an exciting journey by implementing a Multi-Layer Perceptron (MLP) entirely from scratch. This MLP, designed for classification tasks, is handcrafted in Python, with each component meticulously constructed. From the MLP class itself to the intricacies of forward and backward propagation, and even the training process, every aspect has been crafted from the ground up. In this weblog post, I'll take you through the fascinating process of building an MLP from scratch and showcase its power in action on a specific dataset.

Project Image

Scheduling Algorithms

Project Date: December 2021

Operating systems' Course's Project

Explore the intricate world of operating system scheduling algorithms in this enlightening project for the Principles of Computer Systems course. Delve into the core concepts of process management, CPU allocation, and scheduling strategies, while comparing and implementing two pivotal algorithms: Shortest Job First (SRTF) and Round Robin (RR). Gain a deep understanding of the goals, key terms, and the intricate dance between preemptive and non-preemptive scheduling. Discover how these algorithms optimize CPU utilization, ensure fairness, and minimize execution times. Join us on this journey through the heart of operating systems, guided by Narges Babaahmadi's insightful exploration.

Project Image

Graph Traversal Methods

Project Date: April 2020

Combinatorics Course's Project

Delve into the realm of advanced graph algorithms with our meticulously crafted C++ implementation of Breadth-First Search and Depth-First Search. This project serves as an exemplary showcase of these essential algorithms, offering invaluable tools for the traversal and analysis of complex tree and graph data structures. Embark on a journey through the intricacies of BFS and DFS, foundational techniques with expansive utility in the domains of computer science.

Project Image

Moris Mano Basic Computer

Project Date: April 2021

Computer Systems Course's Project

My CPU Project represents a significant endeavor in the domain of computer organization. I have meticulously crafted a fully operational Central Processing Unit (CPU), incorporating a sophisticated Arithmetic Logic Unit (ALU) and a suite of critical hardware components. Notable features include a memory unit housing 4096 words, each comprising 16 bits, nine registers, seven flip-flops, specialized decoders, a 16-bit common data bus, and an intricate network of control logic gates. This project achieved a perfect score in my Computer Organization course, utilizing Logisim, a powerful digital logic simulator. Explore the inner workings, delve into intricacies, and witness the art of computational science at its pinnacle.

Project Image

House Price Prediction

Project Date: April 2021

Statistical Methods' Course's Project

In my house price prediction project, I harnessed the power of data and machine learning to estimate house prices accurately. I handled data preprocessing challenges, explored data visually, and experimented with various machine learning models, ultimately finding that the Decision Tree Regressor excelled. This project showcases my passion for machine learning and predictive modeling, offering valuable insights to fellow enthusiasts.

Project Image

Simple Twitter

Project Date: April 2020

Advanced Programming Course's Project

This Project is a dynamic command-line application developed in C++ that mirrors the fundamental functionalities of the renowned social media platform, Twitter. It enables users to register accounts, log in securely, compose and post tweets, express appreciation through likes, engage in discussions via comments, and explore the latest updates. Utilizing a basic text-based database, the project efficiently manages user data, tweets, and comments, ensuring data security while providing an authentic social media experience in a console environment. With its range of features and user-friendly interface, the Twitter Project offers a captivating glimpse into the world of microblogging and database management within a simple yet engaging application.

Project Image

Titanic Survival Prediction

Project Date: December 2022

Deep Learning Course's Project

This project offers a Python-based solution for predicting Titanic passenger survival using logistic regression with L2 regularization. It covers data preprocessing, exploratory data analysis, feature engineering, and model training. Users can follow the provided Jupyter Notebook to build their own prediction model, and the trained model is applied to the test dataset for submission. This project provides valuable insights into data science and machine learning techniques for similar tasks.