Below are some brief descriptions of possible Master's and undergraduate
thesis topics related
to research done by the Distributed Systems Group.
Ideally, before starting work on the thesis, you would have completed all or almost
all your course requirements and be willing to devote
at least one full semester to the project. This is particularly true for
Master's theses. We would meet regularly to brainstorm and to discuss progress and
problems along the way.
For Master's and PhD students (and potentially
very strong undergraduate students), if the qualifications and timing are right, we may be
able to provide you with funding.
Potential Master's thesis topics
Many of the descriptions below will make more sense if you have taken the
graduate courses MDE 518 (Advanced OS) and MDE 519 (Distributed Systems).
Potential Undergraduate Thesis Topics
The following are possible undergraduate thesis topics.
These are difficult as they require the student to work, for the
most part, independently and to take initiative in answering
questions on his/her own. Each involves building a system
or application from scratch.
- Evaluate different approaches to network communication in Java (TCP/IP,Selectors,Threads,SSL).
- Implement an asynchronous, event-driven efficient communication infrastructure in C++, allowing the application to be ignorant of specific network infrastructure, while using high level services like "send", "sendall", "setTimeout".
- Convert a distributed protocol's (Bracha consensus) Java implementation, to C++.
- Compare two DOM trees and produce a third one with the differences highlighted.
- Produce an add-on to a contemporary browser that logs all outgoing communication; then present it in a meaningful way.
- Implement a peer-to-peer protocol using WebRTC.
- Implement an Android client for an e-voting application.
- Acronym generator: More often than I care for, I find myself looking for a sensible acronym to represent
the name of a research project. Needless to say, this is a boring and time-consuming
task. There are some tools on the Internet
that suggest possible acronyms given the name of a project, but these are not satisfactory
as they typically just spit out rote acronyms in a brute-force manner (e.g., pick first
letter of each word), etc and they don't perform any ranking of the returned results or attempt
to return results that are also real words.
The purpose of this project is to build a web portal that
(e.g., a name like "Distributed ApplIcations and SYstems"), computes possible acronyms
that can be derived from the phrase, finds which combinations are real words and returns a ranking
of the acronyms, with real words (e.g. DAISY) receiving higher ranking than acronyms that are just
a bunch of letters that don't mean anything. Number of students: two.
- Build a Facebook application that does something interesting. This project involves
figuring out on your own how to build a Facebook application and designing an interesting
application. Part of the difficulty here is in writing a design document
that describes your potential application and convinces the prof this is an interesting enough
application. Implement your application and make it available. See if you can figure out how
many facebook users use your application and even better, if you can trace the line of friends
from you to a Facebook user that used your application.
- Build a Facebook app that helps users "fight censorship of web content". (See prof
for more info).
- Build a "binary bomb" assignment that could serve as a future syspro project. That is, see if you can replicate
this Harvard class assignment.
- Build a system where you connect to any node you want of
a set of nodes and send a request for a url to that node. That node then opens via wget a connection to retrieve
the web page at the url of interest and sends back the web page it retrieves.
Extension: implement and deploy this application
on Planetlab so that you may choose any node and see what a particular web page looks like from its
- Often students have interesting ideas of their own. Feel free to propose your own thesis topic
and we can discuss.
All of the above undergraduate projects require motivation and drive on the student's part.
If you have the appetite to work independently and take initiative to seek
answers to questions on your own and would like to work on one of these topics,
please email your
cv and a transcript to firstname.lastname@example.org.