Christos Fragkathoulas

Projects

Code cracker game in Python

The project at hand is a Python-based code cracker game that challenges players to deduce a secret code using various hints.

Battleship simulation

The program is a battleship simulator designed to be run in a terminal environment. The simulator is available in two versions: one implemented with object-oriented programming (OOP) techniques and one without.

Excel simulation

A software application has been developed to perform Excel simulations and generate graphical representations from input files. The resulting graphical representations offer a visual depiction of the data, facilitating users' interpretation and analysis of the simulation results.

Interactive application using Unity

Simulate collision of random objects with each other inside a cube as well as other functions.

Application proposal to solve traffic jams in large cities

Proposal for an interactive application that works dynamically based on spatial and temporal data, to solve the traffic problem in large cities.

Text to speech application in Java

The software application provides a graphical user interface that enables users to read, edit, and save a variety of text files in different encodings. Additionally, the application offers a text-to-speech feature, allowing users to convert their text into audible sound, and configure sound parameters to their preferences.

Compiler Implementation

Compiler implementation that can translate code written in the CIMPLE source language into the Assembly target language. The CIMPLE language was specifically designed for creating a compiler and includes support for various programming constructs, such as basic mathematical operations, if/else statements, loops, input/output operations, functions, procedures, and more.

Dnn Implementation in Java from scratch

Modeling a dynamically configurable deep neural network in Java with a maximum generalization of 94% which recognizes different ‘classes’ of points in space depending on the conditions they satisfy.

Kmeans in Java from scratch

Modeling the K means algorithm in Java for clustering random points in a limited space interval.

Stesstest creation using genetic algorithm

Construction of a stress test using a genetic algorithm to find the instructions that maximize the switching activity in a processor, using assembly instructions.

Movie Search Engine

Creation of a GUI movie search engine using the “Lucene” library in Java.

Multiprocessing Kiwi

The proposed project involves enhancing the performance of a log structured merge tree storage device by implementing multiprocessing techniques for the read and write functionality. The main objective is to leverage the power of parallel computing to speed up the read and write operations, thereby improving the overall performance of the storage system.

Application of machine learning techniques to relational data

I conducted research under Prof. Evagelia Pitoura on applying machine learning techniques to relational data and creating embeddings using a novel method. The process involved creating a set of edges based on the relationships between different entities in the data, which were then used to build a graph. Random walks were applied to the graph to generate sentences, which served as the input for training the embeddings. To achieve a more complete representation of the neighbors of each node, the system utilized the innovative approach of promoting random walks as the propositions for learning, rather than encoding a line of the data set. For the training of the embeddings, I implemented and compared several popular learning algorithms and all of their variations, using different values for the model parameters, such as window size and dimensions, were tested to determine the optimal settings for each algorithm. I finally evaluated these embeddings by comparing their quality and time performance under different conditions. The results were used to identify the most effective algorithms and parameter values for generating high-quality embeddings.