Nikos Mavrapidis's Projects
A compiler construction project for the "Κ31 Compilers" course at DiT, NKUA. This repository hosts a Java application designed to parse and evaluate expressions based on a defined grammar for a subset of a programming language. It includes a lexer and parser to handle expressions, perform calculations, and construct a syntax tree.
A Java-based compiler functionality project for the "Κ31 Compilers" course at DiT, NKUA. It generates a Symbol Table and performs semantic checks on MiniJava programs. It involves visitor patterns for class/type extraction, field/method aggregation, and extensive semantic analysis within method bodies.
A notebook for movie and TV show recommendations using Boolean and TF-IDF methods. Get personalized suggestions based on text descriptions and choose the method that suits your preferences.
In this notebook we analyze and classify news articles using machine learning techniques, including Logistic Regression, Naive Bayes, Support Vector Machines, and Random Forests. Explore text vectorization and NLP for accurate news categorization.
Machine learning homework exploring image analysis and PCA dimensionality reduction.
Logic Programming homework assignments using Prolog from my NKUA course.
Config files for my GitHub profile.
Personal website 🌐
A React-based application for P1 Generograd Medical Center to efficiently manage patient contacts and prioritize cases. Streamlines patient info collection with an intuitive interface and robust backend integration.
This Python notebook demonstrates the application of Support Vector Machines (SVM) for classification tasks on the MNIST dataset. The notebook covers data preprocessing, hyperparameter tuning, and dimensionality reduction using PCA.
A C++ project for the "Κ24 System Programming" course at DiT, NKUA. It features a command-line application for managing and analyzing patient records data using self-implemented data structures akin to the C++ STL. Includes custom linked lists, AVL trees, hash tables, and heaps. Test files for demonstration are provided.
A C/C++ project for the "Κ24 System Programming" course at DiT, NKUA. It Features a file monitoring and processing application. It employs a manager-listener-worker model with inter-process communication via pipes and signals.
A C++ project for the "Κ24 System Programming" course at DiT, NKUA. This repository contains a multi-threaded data server and a corresponding remote client, implementing file transfers over TCP/IP. The server uses mutexes for synchronization and a custom queue for managing requests, while the client requests and receives files.
Thesis Project on Ubiquitous Computing. Hosted by Museum of IT 🎓