This repository contains a comprehensive collection of university coursework and projects from the Department of Informatics & Telecommunications at the National and Kapodistrian University of Athens. The projects span various computer science disciplines and demonstrate practical implementations of algorithms, data structures, software engineering principles, and modern web technologies.
Core Computer Science Fundamentals
- Project 1: Locality-Sensitive Hashing (LSH) and Hypercube implementation for approximate k-nearest neighbors problem
- Project 2: Clustering algorithms based on Project 1, implementing Lloyd's algorithm with various initialization, insertion, and update methods
- Project 3: Sentiment analysis and recommendation system building upon clustering from Project 2
- Console-based RPG game demonstrating advanced OOP concepts
- Features: Heroes (Paladin, Sorcerer, Warrior), monsters, inventory system, combat mechanics
- Technologies: C++, Object-oriented design patterns
- Multi-process communication system using shared memory and semaphores
- Demonstrates inter-process communication, synchronization, and concurrent programming
- Technologies: C, POSIX, System calls
- Image convolution implementation using parallel computing paradigms
- Technologies: C, CUDA, MPI, OpenMP
- Focus: High-performance computing and GPU programming
- Syspro1: Blockchain implementation with complex data structures (hashtables, linked lists, binary tries)
- Syspro2: Multi-process file exchange application using POSIX pipes, signals, and low-level I/O
- Syspro3: Multi-threaded client-server file sharing application using TCP sockets
- Technologies: C, POSIX, Network programming
Data Science & Computer Vision
- Project 1: News article classification using multiple ML algorithms
- Algorithms: K-Nearest Neighbors, Support Vector Machines, Naive Bayes, Random Forest
- Dataset: News articles across Politics, Film, Football, Business, Technology categories
- Project 2: Longest Common Subsequence algorithm applied to traffic route optimization
- Assignment 1: Image transformation and enhancement
- Techniques: Gamma correction, spatial transformations, convolution filters
- Assignment 2: Feature extraction and geometric detection
- Techniques: Hough Transform (Line and Circle detection), binary image operations
- Software Defined Networks (SDN) project using Mininet
- Focus: Vehicular networks and wireless networking research
- Based on academic research in hybrid physical-virtual SDN environments
Modern Web Development with Multiple Tech Stacks
- Backend: PHP REST API architecture
- Database: MySQL
- Frontend: Angular, Bulma, TypeScript, HTML5
- Authentication: JWT
- Purpose: University textbook and course management system
- Backend: .NET Core with 5-layer architecture (API, BLL, DAL, CLIENT, MODEL)
- Database: MSSQL with Entity Framework
- Frontend: Angular, Bootstrap, Angular Material
- Features: Real-time gambling wheel, user management
- Backend: .NET Core with Repository pattern
- Database: MongoDB
- Frontend: Angular, Bulma, OpenMaps integration
- Special Features: TCP listener for IoT device data collection, GPS trace visualization
- Technologies: Custom TCP protocol for IoT communication
- Backend: .NET Core 5-layer architecture
- Database: MSSQL
- Frontend: Angular, Bulma framework
- Features: K-NN algorithm for job and friend recommendations, professional networking
- Course: Technologies of Internet Applications
- Custom neural network implementation using NumPy
- MNIST dataset classification for binary and multi-class problems
- Focus: Understanding deep learning fundamentals without high-level frameworks
- Technologies: Python, NumPy, Matplotlib
- CodeHub React Masterclass Project
- Employee management application with filtering capabilities
- Technologies: React, Redux, React Router, Webpack, Babel, Bootstrap
- Features: State management, component architecture, HTTP requests with Axios
These projects represent coursework from various computer science disciplines:
- Algorithms and Complexity - Advanced algorithm implementations and analysis
- Operating Systems - System-level programming and process management
- Object-Oriented Programming - Software design and architecture
- Parallel Systems - High-performance and distributed computing
- Systems Programming - Low-level system interactions and network programming
- Data Mining - Machine learning and data analysis techniques
- Image Processing - Computer vision and digital image manipulation
- Web Technologies - Full-stack web application development
- Deep Learning - Neural networks and artificial intelligence
- C/C++ - System programming, algorithms, performance-critical applications
- Python - Data science, machine learning, image processing
- C#/.NET Core - Enterprise web applications, backend services
- PHP - Web backend development
- JavaScript/TypeScript - Frontend development, modern web applications
- Frontend: Angular, React, Bootstrap, Bulma
- Backend: .NET Core, PHP REST APIs
- Database: MySQL, MSSQL, MongoDB
- ML/Data Science: NumPy, Matplotlib, scikit-learn
- Parallel Computing: CUDA, MPI, OpenMP
- Build Systems: Makefile, Webpack, npm
- Version Control: Git
- IDEs: Visual Studio, various text editors
- Testing: Unit testing frameworks for respective languages
This collection demonstrates proficiency in:
- System Programming - Low-level programming, memory management, process communication
- Algorithm Design - Implementation of complex algorithms from scratch
- Software Architecture - Multi-layer application design, design patterns
- Database Design - Relational and NoSQL database implementation
- Web Development - Full-stack application development with modern frameworks
- Machine Learning - Implementation of ML algorithms and neural networks
- Parallel Computing - Multi-threading, GPU programming, distributed systems
- Network Programming - TCP/UDP socket programming, protocol design
National and Kapodistrian University of Athens
Department of Informatics and Telecommunications
Various courses spanning undergraduate computer science curriculum
This archive serves as a comprehensive portfolio of academic work, demonstrating both theoretical understanding and practical implementation skills across multiple domains of computer science.