2
android
1
biopython
3
bootstrap
1
c-plus-plus
2
c-sharp
6
css
2
cv2
2
firebase
1
flex-lexical-analysis
6
fontawesome
2
game
2
google-maps
3
hobby
6
html
1
jasypt
8
java
1
java-spark
6
javascript
3
jquery
1
jstl
1
laravel
3
matplotlib
1
mockaroo
2
multithreading
3
mysql
1
neat-algorithm
3
netlify
1
networkx
1
neural-networks
6
numpy
2
pandas
1
php
2
pillow
2
postgresql
9
python
3
react
1
reinforcement-learning
1
scikit-image
2
scikit-learn
1
scipy
2
servlets
7
sql
2
sqlite
3
tailwindcss
2
tomcat
19
university
3
visual-studio
6
web-app
2
website
Airline Reservation System
A simple console based airline reservation system written in C++. Users are able to select existing flights determined by unique flight codes, view the list of direct and connecting flights, create and manage flight routes and make passenger seat reservations. Sample flights are included from and to Athens, Thessaloniki and Patra cities. The project has been developed with data structures in mind, using object oriented programming and utilizing data structures such as Linear Lists and Linked Queues.
Android Emergency Application
Involved in this project: Panos Ioannidis, Dionisis Nikas
An advanced Android application that was developed as a university assignment for the subject of Software Engineering. The app is based on Google's Firebase platform. Users are able to easily authenticate with their Google accounts. Real time chat with a hypothetical licensed doctor, in-app and system wide alerts on major catastrophic events, a panic button for emergency calls, a driving mode that notifies of speeding violations and a disability mode for fall detection. This software was developed in phases based on RUP with detailed UML diagrams.
Android Speedometer
A simple Android application that was developed for the subject of Software Engineering. The app uses Google's services to determine the phone's location and creates a local database to keep track of speeding violations. The user is able to set the upper speed limit (km/h) and start or pause speed monitoring on demand. When a speeding violation is detected, the app notifies the user with characteristic sounds and text-to-speech messages. The longitude, latitude, speed and timestamp of the violations are stored locally and overlaid on a Google Map.
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.
Dining Philosophers
A Java solution to the Dining Philosophers problem developed as a university assignment for the subject of Operating Systems. On startup, the user is prompted to enter the number of philosophers in the simulation. Then, the philosophers are initialized with adjacent forks between each other as they "sit" on the lunch table. Each philosopher can be in one of three states: thinking, hungry or eating. As they get hungry and eventually start eating, they lift their forks, thus locking them for the amount of time required to eat. When forks are locked, adjacent philosophers must wait for the neighbor to release them. All state changes are displayed in console as well as the average waiting time for each philosopher.
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.
Missionaries and Cannibals
A Java solution to the Missionaries and Cannibals problem developed as a university assignment for the subject of Artificial Intelligence and Experienced Systems. We start off with the traditional setup of three missionaries and three cannibals, tasked with crossing a river using a boat. The boat may carry at most two entities, independent of their type. The solution is given by first modeling all of the different states and then applying the Breadth First Search (BFS) algorithm on the state space. While the search is active, all states are printed on the console.
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.
Pattern Recognition
Involved in this project: Panos Ioannidis
A Python project that was developed as a university assignment for the subject of Pattern Recognition. The program uses the "MovieLens 100K" dataset that includes movie ratings of random users. The data included is processed using the Pandas library. We implement three algorithms: Basic Sequential Algorithmic Scheme (BSAS), K-means and hierarchical clustering. Finally, we use a neural network with multilayer perceptron and least squares linear regression to make predictions on movie ratings.
Relational DBMS 1
Involved in this project: Panos Ioannidis, Dionisis Nikas
A SQL based project that was developed as an assignment for the subject of Databases. The goal of this project is to design a relational database for storing the data of a car dealership company. We generated hypothetical database entries using Mockaroo for random data generation. We designed SQL queries for creating tables, managing records, filtering and defining relationships. We perform database normalization based on Third-Normal-Form (3NF) and Boyce-Codd Normal Form (BCNF). We setup triggers and cursors to ensure data integrity and perform maintenance. Finally, we have written a program in Java using the JDBC client to simulate real world consumption of the database.
Relational DBMS 2
Involved in this project: Panos Ioannidis, Dionisis Nikas
A SQL based project that was developed as an assignment for the subject of Databases. This project uses the "UK Road Safety: Traffic Accidents and Vehicles" dataset that is available on Kaggle. We designed optimized SQL queries for looking up accident information in the dataset. We created indexes to speed up queries. We broke up tables into partitions based on specific ranges and database relations. Finally, we have written a program in Java using Spark that executes the designed SQL queries and calculates related statistics.
Shannon Fano
Involved in this project: Panos Ioannidis, Dionisis Nikas
A Python project that was developed as a university assignment for the subject of Code and Information Theory. The program features a client-server implementation using sockets. It simulates a simple exchange of an image between the client and the server. Once the user inputs a specific parameter on how the image should be compressed, the Shannon-Fano coding is applied. The image is compressed and sent from the client to the server, which then applies decompression to reconstruct the image.
Social Networks Analysis
Involved in this project: Panos Ioannidis
A Python project that was developed as a university assignment for the subject of Social Networks. The program uses the "Stack Overflow Temporal Network" dataset and is processed using the Pandas library. We partition user interactions based on timestamps. We then create a graphical representation of the network as it progressed through time. Finally, we compute Degree Centrality, In-Degree Centrality, Out-Degree Centrality, Closeness Centrality, Betweenness Centrality, Eigenvector Centrality and Katz Centrality using the NetworkX library.
Student University Information System
Involved in this project: Panos Ioannidis, Dionisis Nikas
A Tier 3 Java web application that was developed as a university assignment for the subject of Object Oriented Application Development. The app features a custom authentication system with roles including students, instructors and secretaries. Students are able to view details about their courses and assigned grades. Instructors are able to grade students per course. Secretaries are able to create, edit or delete courses and assign instructors to courses.
Thesis
Involved in this project: Dionysios Sotiropoulos
On this project, we study applications of the NEAT algorithm in deterministic and non-deterministic game environments. First, we look at an overview of the NEAT algorithm, how it works, design principles and the challenges that come with implementation. Next, we introduce a custom two-dimensional game in Python for two players: blue and red. We lay down the basic rules and structure, in order to create an environment suitable for neuroevolution. Finally, we study five training cases, where the blue and red player are given several tasks that must be achieved through the evolution of neural networks.
Tic-Tac-Toe
A simple Tic-Tac-Toe game implementation in C# using window based components. The user is greeted with the game setup form to select the blue or red player. Then, the game starts off in a five by five grid of clickable elements, similar to the traditional Tic-Tac-Toe setup. The user is tasked to beat a naive computer player that is configured to make random moves by selecting empty spots on the game board. As the game progresses, we check whether our win conditions are satisfied by checking diagonal left, diagonal right, horizontally and vertically. Depending on each player's moves, the game can end in a win or draw state.
e-Bookstore
Involved in this project: Panos Ioannidis
A C# application that was developed as a university assignment for the subject of Human Interaction with Computers. The app includes sign in and registration features for employees and customers. We setup a virtual coffee shop interface with the ability to order items from a menu. We further include a virtual photocopy machine interface with several photocopying options to choose from. We also implement a complete online bookstore with book overviews and shopping cart features. This software was developed in phases based on RUP with detailed UML diagrams.
e-Career Office
Involved in this project: Panos Ioannidis, Dionisis Nikas, George Theofilopoulos
A Java web application that was developed as a university assignment for the subject of Software Technologies. The app features a custom authentication system with roles including super admins, admins, students and HR members. Students can upload and manager their resumes. HR members appointed from companies can create classifieds. Administrators can assign students to classifieds, manage accounts and update job categories. Super administrators have complete control over the platform and are able to create new departments and add new companies. This software was developed in phases based on RUP with detailed UML diagrams.