Various Projects

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.

Backend code here.

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.

Slides here

GPU Fluid Simulator

May 2020

Project description

Created a parallelized GPU CUDA C++ simulator of fluid particle motion using the Smooth-Particle Hydrodynamics paradigm.

Slides here

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

Project description

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.

Project website

Test

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++.

See Project Slides

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.

Project Website

The “A maze-ing” Project

May 2018

Project description

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.

Course Website

Tiny Search Engine

Mar 2018 – Apr 2018

Project description

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.

Course Website

A Numerical solution of the Laplace equation for electric potentials, using an iteration method for boundary-value problems

Feb 2018

Project description

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

Read the research paper here