Panayiotis Leontiou's ePortfolio
Welcome to my ePortfolio!
"... what we want is a machine that can learn from experience."
Alan Turing - 1947
"Predicting the future isn't magic, it's artificial intelligence."
Dave Waters
My Experience with Tools
I have experience with the following tools and libraries (this is a partial list).
Projects History
Some of my past projects
Artificial Neural Networks
Implemented Multi-Layer Perceptron NN with back propagation in Python and trained it to predict hand written letters with 94% accuracy. Developed and trained a Kohonen - SOM NN, using Python, to cluster hand written letters and then used Learning Vector Quantization to improve the results. Created Radial Basis Function NN with constant (in combination with K-means algorithm) and variable centres, using Python, and trained it to predict molecules with 96% accuracy.
Railway Database System
Developed a railway database system with
T-SQL in cooperation with 4 other programmers. This system gave the user the ability to search for train trips using a combination of parameters. The graphical interface, which was written in JavaFX, improved the user's experience. All the requirements were accurately met and the total response time was minimised. This was the only project that managed to achieve perfect score.
Android App for Hang Gliding
Managed a team of 6 programmers (including myself) to develop an app using Android Studio.  This app combined inputs from sensors, provided by SignalGenerix, and built-in mobile sensors with a friendly, customisable user interface. This app focused on helping hang gliding pilots to view environmental statistics on real time during a flight. It also allowed the user to check statistics offline.
Extended Anyplace API
Implemented a new API for AnyPlace, with the help of 2 other programmers, using Scala, which allowed the use of a timeseries database, influxDB. This project was presented to the project leader of the AnyPlace service and he was very satisfied with the results. The new functionality was integrated into the actual service after review by the Anyplace team.
Smart Home Applications
Developed a Bash script that used openHAB to send accurate weather information to the user through a mobile app and stored the data in influxDB, a timeseries database. The user was then able to perform queries on the database to extract information about the weather of the past few months.
New Website for COI
Developed a new informative and educational website for the Cyprus Olympiad in Informatics, using HTML5 and CSS. It was designed based on the needs of the Olympiad's community and it was predicted to increase participation.
Gauss Elimination
Developed a java program which used Gauss elimination to calculate the solution of a system of linear equations.
Battleship Game
Developed the Battleship game using Java and object oriented programming techniques. The game allowed two players to play against each other or one player to play against the computer.
Low level QuickSort
Implemented Quicksort algorithm in Assembly and managed to achieve better performance compared to the O2 optimisation of the GCC compiler.
Interaction with Atari
Developed a program in C, with 2 more programmers, that was able to interact with Atari games. More specifically, the program combined low level image processing with the Atari emulator, which returned frames after receiving an input. This project received the 2nd place in a university competition.
Parallel Programming
Developed programs in C using pthreads, OpenMP and AVX2 and then compared their efficiency with benchmarks. Implemented CUDA programs in C with and without shared memory and compared their efficiency.
Encryption / Decryption
Implemented encryption/decryption algorithms from scratch in C. Created a Python program that was able break simple encrypted messages using a dictionary.
Web Development
Designed a WebApp which gives accurate weather information based on a given address and stores most recent searches into a database, using bootstrap, JavaScript and PHP. Designed an informative website about Artificial Intelligence, using HTML5 and CSS.
Constraint Programming
Implemented maximal independent set algorithm in clingo, maximo and Matlab solvers and compared their execution times. Implemented the pizza problem from Google's Hashcode competition and a sudoku solver, using MiniZinc.
Thesis Dissertation Project
Used PyTorch and TensorFlow machine learning frameworks to implement Convolutional Neural Networks with the Hessian-Free Optimisation algorithm. Then, trained models that can predict the secondary structure of proteins, based on their primary structure and MSA profiles.