This page contains information on my advised theses, suggestions for new theses and internship topics, and encouragement for finding your own topic for a thesis or internship under my supervision. In general, these topics are not fixed and should not be regarded as base for either an internship, bachelor, master, or even PhD thesis. They can be adapted to the specific task or even extended and augmented by your own needs and ideas. If you want to find information on how to write a thesis, have a look at the page thesis writing. If you cannot identify yourself with one of these suggested topics but think your ideas would integrate into one of my research topics, feel free to contact me any time. We will find some possibilities to put your ideas or projects into practice. If you came to this page for technical consulting in a larger IT project, please also do not hesitate to contact me.
Suggestions for new theses and internship topics
I tried to sort the topics into topic areas, so the first (and sometimes second) level is the title of the respective topic area.
IoT / Home Automation / eHomes
Hot and urgent topics for IoTempower derived from https://github.com/iotempire/iotempower/issues (related topics with explanations are below)
Build test framework with real hardware to test updates and new software.
Implement stable versions package management of the Framework (Docker, Podman, Ansible, NIX, Dietpi "image". Installer for Debian based systems).
Update OTA support to https or other encryption enhancement.
Design a guide and installation support for refurbishing laptops and routers as alternative gateways.
Implement mesh network communication (Open WRT, b.a.t.m.a.n. or ESP-mesh).
Improve user interface for the framework. (Develop U.I in Godot).
Use IoT (and IoTempower) to build real-life PoS systems using blockchain technology to simplify business.
Support for languages like Nim and/or Rust.
Improve hardware support and new sensors and actors (Esp32, Support for SAMD21 (Arduino MKR1010).
Create a flashing dongle as a hub for easy adoption.
Develop a dongle to function as a WiFi access point.
Design a guide and documentation for remote access advanced networking for the Raspberry Pi gateway.
Develop a multi-protocol wireless dongle.
Implement LORA/Bluetooth/ESP-Now support.
Synchronize clock for the ESP for coordinates of actions in Deepsleep mode.
Microtransactions for IoT Systems
IoT systems can enable sustainable ways of commerce and resource management and allocation. To cut out the middleman, blockchain technology can be used. Due to existing collaborations, we are looking particularly at using the XRP ledger to do our transactions. We are currently evaluating options to build a serious of small IoT prototype systems from the design to the software and user testing and welcome any projects in this realm (you can even use 3d printers and CNC machines here if you like). Results should lead to an easy to use framework, both in terms of design, but also in terms of software for building these type of systems.
So, if you like to build an easy to pay automatic coffee machine, a vending machine, a simple token for an event payment system, or want to influence scientific publications and remuneration of reviewers, or find a new way to monetize art (and especially interactive art) and on the side build an advanced version of NFTs, you could find a home in this project.
These subtopics all deal with the open IoT framework IoTempower (http://github.com/iotempire/iotempower)
Mesh Networking for IoTempower Based on ESP NOW
The open IoT framework IoTempower deals well with classic WiFi networks. As Zigbee has shown, mesh networking is pretty convenient in home automation environments. As plenty of home automation devices nowadays are based on the ESP8266, using the low level ESP NOW protocol to support a simple mesh network and attach gateway support for an ESP8266 dongle (that would also simplify in-class deployments immensely) would make the setup of an IoTempower network incredibly convenient. There are some small prototypes for esp mesh networks already out there. In this project the existing network solutions should be surveyed and tested out, rated (functionality and license compatibility) and then integrated with IoTempower. Of course, over the air updates need to still work and describing a good teaching case should be in focus.
Extending the Reach of IoTempower to All Microcontrollers
IoTempower works well on classic WiFi and TCPIP networks, mainly using the ESP8266 and ESP32. As it internally uses PlatformIO, support for other microcontrollers should not be a major hurdle. However, not all microcontrollers have an ethernet or WiFi interface. However, there exist several light-weight network stacks for microcontroller platforms, for example PJON. In this project you should review the different low-level network libraries, their ease of integration into IoTempower, their support of over the air updates, their routing capabilities, and license compatibility. You will select one of them to integrate into IoTempower and verify the usability in a medium sized IoT project of your choice.
The Easiest Way to Get Started with IoT Systems - From Zero to Success in No Time
Goal of this project is to design several (1h - 2h) small workshops for an IoT bootcamp. These should lead people in a very short time to their first own IoT system. This deals with a lot of rapid deployment solutions and avoidance of classical hardware issues coming with lots of cabling. You will develop some component based concepts of plugin sensors together in a LEGO-like fashion and preventing to really flash microcontrollers by testing out several quasi-magical over the air initialization process.
You should also spend time thinking about follow-up classes moving into the direction of rapid prototyping integration or dash board creation (with visual programming in for example Node-Red).
Affordable kits for teaching IoT and respective short classes
This is a complementary project to the previous one designing the small IoT workshops. For these workshops, we need defined sets of hardware. In this project you should compile the smallest possible hardware selections to do meaningful first IoT projects with room for other experiments.
This project involves also comparing the integration of WiFi router capabilities via the access point functionality of a raspberry pi, a cheap external accesspoint, running an accesspoint on your phone, or just using, your laptop or desktop with a docker container as IoT gateway and comparing these different approaches.
Build a Micro but Manageable PC with Your Own OS, GPU, and Network Infrastructure
Abstraction, models, and frameworks are fun, but in a university or school context you sometimes want to go to the bottom of things and understand all the basics. Based on the strong community contributions, there are now plenty of lightweight projects for microcontrollers (especially for the cheap ESP8266 and ESP32) allowing you to build your own vga gpu or drive an e-paper or small lcd screen, build your own keyboard and input devices, or your own low level wired networks. And all of that you can program and understand to the bit yourself, so you can even have some very simple operating system to drive this mini microcontroller and use it like an old PC. And all of that in an amount of code that is still manageable and understandable by just one person!
In this project you should develop such a minimal PC and outline the impact on classes like Computer Architecture, Operating Systems, Systems Administration, and Software Engineering.
Fixing the Internet of Broken Things: Layered Security with natural borders
I admit, we software engineers often think a little late about security, but to prove that system architecture can actually make a huge difference in security and privacy, let's come up with some proof here.
In this project, you should build a couple of multi-layered IoT systems with different gateways at the layers and look at privacy and attack vectors, update possibilities as well as trade-offs in convenience.
We will do this in comparing these multi-layered systems with the classic single-layer star topology setups by Google, Amazon, Apple, and Microsoft, but also look at the security solutions of various home automation appliances (which we expect to use as negative examples).
Easy to Use Encryption Layer for the Internet of Things
Asymmetric cryptography and certificate validation is really hard to use in microcontrollers due to memory, processing power, and bandwidth limitations. If we start looking at the whole as a system, maybe we can find a way to distribute validation in the system without too much compromising the system. Or, if we switch to some simpler cyphers like chacha20 and poly1305, we can succeed to at least get a key exchange done and have some public keys pre-shared. The main outcome of this project should be an easy to use library for both the microcontroller as well as edge gateway sides in IoT systems. This should come with several examples how to set up a security layer in different IoT systems. An option here might be to use wireguard as a peer to peer layer.
Resilient Overlay Networks as Alternative to Centralized and Monopolistic Telecommunication Networks
What will happen if you cannot afford telecommunication infrastructure or access to it or if it becomes blocked out of political reasons (like we see plenty of examples around 5G)?
There have long been activities in the ham radio space and recently also plenty of activities in the field of LORA to build independent user-driven overlay networks.
In this project you should think about, architect, and partly implement an easy and affordable overlay network architecture, device-node, and software that uses a blockchain based incentive system to reward the extension of this network.
Initially such a network might only support sending simple short messages (and solutions for that already exist), but this project should point into the direction how the bandwidth of such a network could be grown by an active and committed community.
This project has several aspect and can be easily tackled by several persons on different levels if there is enough interest.
Voice Assistance for IoT and Industry
There is more out there in terms of voice assistants than Google home, Alexa, Cortana, and Siri. There are truly privacy preserving open source voice assistants like Rhasspy (aka Voice2Json) and Mycroft.ai. In an environment where privacy is important (like industrial IoT) or in any environment where there is not an instant fast cloud connection, these solutions can offer a benefit far beyond home automation.
In this project you will evaluate voice assistant scenarios in industrial IoT and built adapters and eventually a framework plus guideline to integrate open voice solutions into several IoT scenarios.
IoT in Space
In Brazil, I have done a little work with the aerospace department of the University of Brazil mainly with focus of making satellite technology accessible for everybody. These projects here should keep these activities alive and maybe drive Estonia to the forefront of these activities.
Testing stubs for simulating cubesats components
Even if cubesat bring the cost of satellites in the range of the purchase of a new car, it is still very expensive to work with this technology. Having the possibility to test and simulate hardware components and their software that should go to space here on earth in advance would facilitate accessibility to these projects significantly.
In this project, you should design test cases for cubesats, model cubesat equipment, and build simulated i2c or other wired communication protocol test stubs for testing environments. These tests should be documented in stories and organized and presented in a way to facilitate more space and cubesat related projects.
Wireless Networks for Ultra Long Range Communication with cubesats
There have been some pilot projects in building cubesat-based communication LORA networks to support several IoT projects in unaccessible areas or that just need slow but cheap and power efficient long range communication.
Let's build our own prototype here and hopefully deploy it to support Estonian and Scandinavian infrastructure. There could be synergies with the "Resilient Overlay Network" project.
Augmented and Virtual Reality (AR/VR):
Forced by the pandemic and disconnectedness, I have been studying a lot on virtual reality for replicating some of the social interactions we are missing due to the social distancing and the lack of travel. VR seems to offer some solutions for this - let's discover and shape them together, shall we?
Teleoperation in VR
Our automotive driving lab is involved in studying teleoperation. This is done nowadays mainly in 2D. When we train our toy cars, we run next to them and try to use awkward joysticks to teach them driving. Couldn't virtual reality help us doing both better? Yes, there will be problems with connectivity and latency, but both is very worth studying. Maybe we can even solve latency problems with predicting the future (with heuristics or machine learning) a bit. I am already looking forward to allow people to shrink into a toy car and see how they will drive in it. Please help me making this idea a reality.
Education in VR - Help building something like Halcydonia Interactive
You have read Ready Player One, you have seen more than a dystopian world in it and admired the non profit Halcydonia Interactive and the magical kingdom of Halcydonia or the teaching planet Ludus in it? You happen to like education or teaching? Maybe then we can prove together that some educational dreams like making education available to the masses, teaching during pandemics and actually enjoyable is possible. This topic allows several people to work on. We need to develop several case studies of small teaching modules in VR from math, sports, the arts, via chemistry and biology to computer science. We have to look at existing and self developed modules and evaluate them and then we have to build a platform, which makes it easy to develop more content. Even legal aspects and building a non profit foundation would be a topic that fits in here and I would be happy to co-supervise.
Reading in VR
One of the precondition for decent eduction is and long term learning commitment is the ability to read in VR. Reading on e-ink has been the go-to solution in the real world to consume written material in a digitized form and replaced reading (at least) fiction in digital format. How can something like this be achieved in VR.
In this work, you should explore how text can be displayed in an easy readable and intuitive form in VR and maybe even building an epub based reader that allows to evaluate how written text and corresponding images (maybe even cartoons) can be consumed best in this new medium.
Stereo vision exploration
You will be surprised to know, but I can actually not see 3D in RL - only sometimes in VR I manage. I have a condition that is called "alternating vision" (a light form of strabismus) allowing my brain to only use the image of one eye. Some kickstarters for early VR developed apps to train stereo vision, but they have been patented, don't work in a lot of cases, and are inhibitively expensive. A candidate for this project should work on building a self experimentation platform for VR (to keep costs for continuous research down preferably in Godot) to interactively change vision parameters, like contrast, brightness, and color on each eye, inter-pupillary distance, objects in scene (static, animated, abstract), and maybe have options to mark good or bad combinations. If time allows or more students want to work on this topic, an external connection for a trainer or medical professional would be interesting.
The Oculus Quest 2 has a processor that is much more powerful than some commonly available Chromebooks or even dual core x86 PCs. Webbrowsers run smoothly and even 2d standalone Android apps can be made run in Oculus TV mode. In this topic, these options should be explored as well as running desktop and office like environment through termux. Especially a focus on if and how it is possible to develop code inside VR should drive this work.
Affordable VR development for All
As you might have experienced in the Game Engines class, there are mainly three notable platforms that are used today for building games: Unity, Unreal, and Godot. The latter is open source and therefore of special interest to me due to all my engagement in empowering disadvantaged communities. In this topic I would like to see an introductory class/course or workshop developed, how people rapidly can start develop apps for VR based on Godot.
Programming and Development in VR - Or, how do we do Scrum in VR?
We are the masters of understanding development processes in Software Engineering, aren't we? Some methods from agile development should transfer and benefit very well when being executed in VR. Let's study that, try it out, and compare with the existing (physical - or skype/tams/zoom) ways.
This project could heavily influence the way, we develop software but also design and execute projects in teams in the future. If you want to be part of this endeavour, make sure to sign up for this project in a seminar or thesis.
Of course, there could be other work carried out well in VR apart from programming (see previous topic).
Design processes, study work, and hiring interviews and many more non game related content could benefit from good VR settings.
In this project, you will go beyond actual software development processes and more look at the social benefits of transferring physical team processes into VR.
You are asked here to build and define actual environments to peer program, design, and teach in VR.
VR Building Monitor and Controller
The life data of all automation of our Delta building is available to us as well as a 3D model of it. Let's visualize the building data in virtual reality and think about new ways of interaction and analysis that we can achieve with the use of virtual reality in this project.
Finally, we can use holograms to interact with the physical environment - maybe we can even think about 3D visual programming environments (analog to Node-Red) in this context?
Pervasive AR Multiplayer Tag Games
Use passthrough technology of phones or headset to build massive multiplayer pervasive games.
Depending on the project, I am willing to supervise (especially educational) game related content creation, especially when you use Godot as the gaming framework. With a good usecase in implementing an educational AR game on Godot, we would gain more platforms to support teaching through open source.
Complex Data Visualization in VR
Lots of research area produce tons of spatial data that could be better visualized in 3D than in 2D. This topic should give you space to develop viewers for virtual reality for easier visualization of complex data. A potential case here could be data from computer tomography scan, but feel free to bring or discuss other cases with me.
I am happy to supervise several topics form the autonomous driving space around our autonomous driving lab on case by case base. Feel free to discuss options with me.
Agile vs. Waterfall
We are seeing a strong shift in software development from waterfall to agile methodology. However for some of us (like me) not enough. The following topics take a look at this shift and at methods how to support this shift.
Agile in Industry: The Impact of Regulations and Enculturated Processes on Large Scale Development Projects and Agile Ways Around Them
Most of us have adopted agile development methods, however, especially in big industrial or government projects, the adoption of agile methods is slow or culturally not embraced. Also some regulations make the use of agile methods nearly impossible and can only be overcome by so-called hybrid approaches. In this project, you want to analyze several industrial or government projects, looking at their (missed) agile potential and compile and note down failures and successes and construct alternate scenarios.
Agile in Open Source: documenting existing open source projects for their agility
In this project, you will look at existing big Open Source projects like the Linux kernel, Firefox, Eclipse, Libreoffice, Netbeans, Node-RED, and Visual Studio Code and analyze their respective development and deployment process to compile guidelines for applying this to other open source projects (like for example IoTempower). Depending on the level of the thesis, you will try out the new guidelines on the selected example project and reflect on their use. This work should also reflect on using open source projects as crowd multipliers of your project development potential (like Google employs with Google Summer of Code).
How to Move Away From Waterfall
Your task here is to create parts of a guide with agile argumentation patterns. This should include argumentation lines as well as a searchable cases database for various projects carried out in agile, waterfall, or hybrid style.
Based on the ongoing work of the two previous topics, this work should compile and turn best practices into patterns to argue for agile in a selection of different new development projects.
The Future of Round Trip Engineering
Even if not so popular today anymore, software architects still dream about keeping their architectures in sync with their code and documentation. In this project, you want to evaluate workflows of and extend existing round trip engineering tools (like fulib) in the realm of story driven modeling and agile processes. This can be done based on an existing project (like IoTempower) or more in a survey style looking at existing workflows.
Architectures Surviving Agile Software Development
In some domains, agile is seen as the antitheses to software modeling and software architectures. For specific domains, there might be some truth in this observation, but real research and facts on this are very rare. Your task in this project is to survey existing research in regard of what the relationship between software architecture and agile methodology is and compile lists and patterns for what type of projects which architecture (still) makes sense. Furthermore, you will think (and implement) about architecture extensions or tool support to better cater to agile needs.
When, I previously worked in Tartu, I did a lot of work in the information retrieval context. If you are unhappy with the wat Google and other big corporations handle and search your data (and make it more or less accessible for you), you might want to engage on the following topics.
Sort and Network Everything, Create your Data for Life
We are in 2020 and still store all our personal data in tables, files, folders in a hierarchical manner?
Graphs and bi-directional networks should be a much more efficient way of storing and retrieving your personal data (or even company data) as proven by the fading of relational databases in favor of nosql databases.
Here, you will take a look at this trend and use personal data storage and retrieval usecases to compare efficiency of projects like Perkeep and Neo4j for your chosen cases.
One of the used cases could be in collaboration with a law firm consulting business.
Liquid publication process - invent new publication paradigms based on agile methodology
Is static linear textual information still the best way to present constantly changing science and knowledge to our peers?
Let's take an open look at that and try to proof by example that we as computer scientists can (and already have) come up with ways to present information in better ways to accelerate scientific discovery "without the bloat".
Ruben Jubeh: Story Driven Modeling for the Internet of Things (Objektorientierte Modellierung mit Storydiagrammen für das Internet der Dinge), 2018/04, PhD
Sebastian Franken: Supporting asynchronous, discontinuous, collaborative, complex search tasks by the visualization of search trails, 07/2016
Georg Singer: Web search engines and complex information needs, 10/2012
Stephan Hener: Swordpass: Mobile Single Sign On System, 07/2016
Matthias Hochrieser: Mobile Complex Search Support, 07/2016
Damiano Neufeld: A Password-less Mobile Authentication Framework, 07/2016
Laurenz Riedler: An Advanced Security Policy System for Android, 01/2015
Peeter Jürviste: Supporting Internet Search by Search-Log Publishing, 06/2012
Shazia Javed: Service Integration for Biometric Authentication, 06/2012
Dmitri Borissenko: Integrative Graph Filesystems, 06/2011
Vladimir Skapurelov: Java adapter for F2F Computing, 06/2011
Dmitri Danilov: 3D Graph Exploring, master thesis, 06/2010
Oleg Knut: f2f-llvm:: A Low Level Virtual Machine Backend for F2F Computing, master thesis, 06/2010
Toomas Laasik: A Conjugate Gradient Solver Library for the Playstation 3, master thesis, 06/2010, pdf download
Artjom Lind: A Flexible Network Layer for F2F Computing, master thesis, 06/2010
Lauri Tulmin: A Conjugate Gradient Solver on the Playstation 3 - a native approach, master thesis, 06/2010, pdf download
Jaan Neljandik: GameOrchestration: Orchestration of educational computer game environments, master thesis, 06/2009
Andres Luuk: MPI for F2F Computing, master thesis, master thesis, 06/2008, pdf download
Indrek Priks: Topology Visualization for F2F Computing, master thesis, 06/2008, pdf download
Raido Turk: Topology Data Gathering for F2F Computing
Anton Litvinenko: Automatic prediction of source code contribution type, master thesis, 06/2007, pdf download
Philipp Bockers: Automated Tests for Access Control Systems, German diploma thesis, 08/2006
Tim Schwerdtner: Strategies for Specification of eHome Systems, German diploma thesis, 11/2005
Priit Salumaa: Model Transformations in eHome Systems, master thesis, 10/2005, pdf download
Arash Akhoundi: Distributed Automatic Deployment of eHome Configurations, German diploma thesis, 03/2005
Adam Malik: Information Acquisition for Automatic Deployment of eHome Systems, German diploma thesis, 02/2005
Ingo Kreienbrink: Classification and Search Strategies in eHome Scenarios, German diploma thesis, 10/2004
Markus Klinke: Instanciation of eHome Services, German diploma thesis, 05/2004
Christof Skrzypczyk: Description Language for eHome Configurations, German diploma thesis, 03/2004
Alexander Kröll: Device Unlocking as Authentication Facet, bachelor thesis, 09/2015
Dominik Költringer: Linux Desktops for Mobile Phones, bachelor thesis, 09/2015, pdf download
Alexander Gattringer: Device Proximity as Authentication Aspect, bachelor thesis, 06/2015
Christian Altenhofer: Geofencing as Authentication Aspect, bachelor thesis, 06/2015
Konrad Deubler: Security in Mobile Systems, bachelor thesis, 06/2015
Jürgen Punz: arvr: VR Drivers for Different Environments, bachelor thesis 2, 06/2015
Katherina Sick: arvr: VR Environments based on Google Cardboard-like VR Viewers, bachelor thesis 2, 06/2015
Lukas Binder: arvr: VR Games for official demonstrations, bachelor thesis 2, 06/2015
Roman Benetseder: 3D Scan Tutorial, bachelor thesis 2, 06/2015
Tobias Zuber: Tutorial for Multi Extrusion 3D Printing, bachelor thesis 2, 06/2015
Martin Vels: Development of pharmaceutical information environment for iPhone, bachelor thesis, 06/2011
Gleb Stsenov: Measuring mobile search tasks on Android platform, bachelor thesis, 06/2011
Madis Kapsi: Usability Improvements for the Friend-to-Friend Computing Pidgin Plugin, bachelor thesis, 06/2010
Peeter Jürviste: Email Information Concentrator, bachelor thesis, 06/2010
Olga Agen: Distributed log tracer framework, bachelor thesis, 06/2010
Gert Palok: Port Forwarding with Universial Plug and Play, bachelor thesis, 06/2010
Maido Käära: f2f-pidgin: F2F Pidgin Plugin, bachelor thesis, 06/2009
Artjom Lind: java-nat-traversal: NAT-traversal for P2P systems in Java, bachelor thesis, 06/2008
Janno Toots: Skype adapter for F2F Computing, bachelor thesis, 06/2008
Christoph Brandstetter, Alexander Palmanshofer, Johannes Huber-Ecker: Survival Game in libgdx, 06/2015
Lukas Binder, Jürgen Punz: Tower Defense Game in Unity, 06/2015
Mona Wiesinger, Roland Martin Spindelbalke, Manuel Baumgartner: An App for Android and iOS for the Company Hainzl, 06/2015
Mustafa Cicek, Felix Gruber: Android Wear Cam, 06/2015