Throughout my high school and undergraduate career, I have been involved in various projects, which I have completed either individually, or in the context of a team.
Because many of the projects presented below are assigned in a regular basis as part of Computer Science courses in Dartmouth College, I will not provide links to design documents or code in this page. Please refer to the web-pages of the courses themselves for an additional idea of what the projects entail.
MyVirtualTutor
June 2020
Project description
Produced, as part of a Hackathon team, a virtual learning tool which uses visual sentiment analysis software to deduce the focus of a student and make appropriate teaching recommendations.
Covid-19 Hospital Inventory Database
May 2020
Project description
Planned and implemented, within a group of 4, an online database system for medical inventory purposes during the pandemic.
Streaming Algorithms for Histogram Construction
May 2020
Project description
Investigated state-of-the-art papers for the construction of histograms in the data stream model, with very low memory requirements. Implemented such algorithms in Python and tested in them in streaming COVID-19 case data.
GPU Fluid Simulator
May 2020
Project description
Created a parallelized GPU CUDA C++ simulator of fluid particle motion using the Smooth-Particle Hydrodynamics paradigm.
y86 Sequential CPU
Feb 2020
Project description
Constructed a sequential y86 CPU, which included an ALU, a Register File, an I/O connection, a complete Microinstruction FSM, an Exception Handling Mechanism, an OS Trap mechanism and support for Privileged code.
y86 mini-C Compiler
Oct 2019
Project description
Made a fully functional compiler for a simplified subset of the C language on the y86 architecture. The compiler consists of a lexical analyzer, a parser, an LLVM generator and various local and global compiler optimizations.
MyRuns
Mar 2019 – May 2019
MyRuns is an fitness manager Android App, developed in the context of an Android course in Dartmouth College (COSC 65). It uses GPS, Firebase and SQL among tools.
Procedural Trees and L-Systems
Nov 2018
Project Description
Using self-replicating patterns known as L-systems, a fractal approach to creating animated trees using Computer Graphics was studied. The languages used were JavaScript and C++.
NoChances
Project Description
No more awkward social interactions! An antithesis to dating apps out there, this Android App keeps people who don’t like each other away from one another. Tools used: Location and Google Maps APIs, Foreground Services, various UI tools.
The “A maze-ing” Project
May 2018
As part of a Computer Science assignment in Dartmouth College, this Amazing Project essentially includes solving the problem of multiple individuals finding their way towards each other when trapped in a perfect maze, i.e. a connected, acyclic maze. The project contained a networking “server-client”component, as the individuals were modeled as “clients” communicating with a server to make their moves in the maze, an algorithmic component so that the individuals find each other in the maze as fast as possible and a graphical component, serving as a visual representation of the individuals’ moves in the maze.
Tiny Search Engine
Mar 2018 – Apr 2018
The “Tiny Search Engine” project was an assignment for a Computer Science class in Dartmouth College. It includes the complete making and documentation of a search engine that “crawls” the web in search of websites, indexes its findings and then answers queries made by the user, ranking the pages that satisfy the queries using a simple ranking algorithm.
A Numerical solution of the Laplace equation for electric potentials, using an iteration method for boundary-value problems
Feb 2018
In this article, Laplace’s electric potential equation is numerically solved under the boundary conditions of a square system of electric conductors, with a specific configuration of potentials and distribution of charges. Utilizing an algorithmic iteration method of averaging around small neighborhoods of points in the plane, values for ϕ, the electric potential function are calculated with a very negligible margin for error being allowed. After a sufficiently accurate representation of ϕ has been calculated, it is used to numerically approximate the electric field and calculate the charge densities of the conductors involved. Observations are then made about the nature of the results and their physical meaning, while also some other cases that are very similar to the main subject of experimental focus are briefly examined.
An Application of Voronoi Diagrams in MRI Image Segmentation
Sep 2016-Nov 2016
Project Description
- Researching applications of Voronoi Diagrams in MRI imaging, through the use of MATLAB.
- Presented the project in the “7th Convention for High School and College Mathematics” in Thessaloniki, Greece