Cryptography
An experimental Python project that illustrates basic cryptography techniques. It features implementations of the Caesar and Vigenere cipher with their respective unit tests. The Caesar cipher is initialized with a key integer value ranging from 0 to 25. The Vigenere cipher is initialized with a key string value that is preferred to be a large sequence. Both ciphers have encrypt and decrypt methods that accept plain strings of text.
Similar to this project
Bioinformatics
Involved in this project: Panos Ioannidis
A Python project that was developed as a university assignment for the subject of Bioinformatics. The goal of this assignment was to process hypothetical sequences of nucleotides on seven different scenarios. The Biopython library is used for biological computation. The Needleman-Wunsch algorithm is utilized for sequence alignment along with Hidden Markov Models with the Viterbi algorithm.
Compilers
Involved in this project: Panos Ioannidis
A programming project that was developed as a university assignment for the subject of Compilers. This project features three languages: C, Java and Python and the Flex lexical analyzer. We include: a Python solution for the balanced parentheses problem using a pushdown automaton, a Python program that generates random character sequences based on specific grammar, a Java program that implements a top-down syntax analyzer and two lexical analyzers in Flex for sample variable and geometric shape declaration.
Hamop Social Network
Hamop (from ham radio operator) is an advanced social networking application created as a hobby project of mine. It uses Google's Firebase for the backend and the React framework for the frontend. The styling is based on Tailwind CSS utility-first framework. Visitors are able to sign up using their Google account and create a public profile to interact with others on the website. Registered users can make posts, comments, like other people's posts and earn reputation on their profile. The frontend was hosted on Netlify, so no custom servers were needed. Using free and open source tools, there is no essential cost for the project to be alive.
Image Processing
Involved in this project: Panos Ioannidis, Dionisis Nikas
A Python project that was developed as a university assignment for the subject of Image Processing. The program takes an input image and a reference dataset of photos. The goal is to colorize the greyscale image using a trained support vector machine. To achieve that, we have implemented a variety of image processing techniques. First, we change color spaces from RGB to LAB. Then, we apply the SLIC algorithm to find the group of superpixels for each image. These segments along with SURF and GABOR features are given as input for the SVM. Using scikit-learn, we use machine learning techniques to predict the color of a superpixel using the dataset superpixels as reference. The output of the program returns the colorized version of the input image.
Multimedia Systems
Involved in this project: Panos Ioannidis
A Python project that was developed as a university assignment for the subject of Multimedia Systems. The program first implements Run-length encoding (RLE) for a sample image of Mona Lisa. Then, Differential pulse-code modulation encoding (DPCM) is applied on a sample TV advert. We perform motion prediction for that advert and object removal on a video scene that features moving characters on a stage. For the error frame calculations, we use the sum of absolute differences (SAD) metric and macroblock techniques.