24324
Comment:
|
22996
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
This page describes how Bachelor's and Master's Projects and Theses work at the Chair for Algorithms and Data Structures. If you are interested in doing a project or theses with us, you should read this page (as well as the pages linked from it) very carefully. | This page describes how Bachelor's and Master's Projects and Theses work at the Chair for Algorithms and Data Structures. |
Line 14: | Line 14: |
1. An acknowledgement that you have carefully read this whole page (not just the first section). | 1. An acknowledgement that you have carefully read this whole page and the pages linked from it. |
Line 27: | Line 27: |
= Reproducibility = For both projects and theses, '''your results must be easily reproducible'''. We have very specific requirements for this. They are explained in detail on our [[Reproducibility page]], together with a simple working example. Note the word "easily" in the previous paragraph. It is important that we can run reproduce your results not just in principle, but easily. That is, there should be no need for lengthy explanations or expert knowledge, but once the software runs, everything should be "self-explitary". From our perspective this should look like this: 1. We build the docker image (the Dockerfile should say how) 2. We start a docker container (the Dockerfile should say how) 3. There is information on the console on how to proceed further 4. Whatever components you provide from here on, they should be self-explanatory Concerning Item 3, this will look different depending on your type of work. If your docker container contains a web service, there should be output on the console which provides the URL of the service. If your docker contains starts an interactive shell, there should at least be instructions on how to proceed further. |
|
Line 29: | Line 42: |
1. '''Your code and your data''', which allows reproducibility of your results. We have very specific requirements for this. They are explained in detail on our [[Reproducibility]] page, together with a simple working example. | On top of fulfulling the reproducibility requirements described in the previous section, you have to deliver a '''project website'''. |
Line 31: | Line 44: |
2. '''A project website.''' The pages must be in a subfolder ''www'' in your folder in our SVN. They should not require any special installation, but work just by copying them somewhere. Note that this does not exclude interactive elements, as long as all the required (!JavaScript) code is also contained in the ''www'' subfolder. | The pages must be in a subfolder ''www'' in your folder in our SVN. They should not require any special installation, but work just by copying them somewhere. Note that this does not exclude interactive elements, as long as all the required (!JavaScript) code is also contained in the ''www'' subfolder. |
Line 33: | Line 47: |
There is usually no presentation needed for a project. |
|
Line 36: | Line 52: |
1. '''Your code and your data''', which allows reproducibility of your results. We have very specific requirements for this. They are explained in detail on our [[Reproducibility]] page, together with a simple working example. | On top of the reproducibility requirements described in the section above, you have to deliver a '''written thesis''' and an ''oral presentation'''. |
Line 38: | Line 54: |
2. '''A written thesis.''' A PDF of the thesis as well as all the sources (tex files, bib files, figures, etc.) should be in the SVN, in a separate folder ''thesis''. See our [[http://ad-wiki.informatik.uni-freiburg.de/teaching/ThesesGuidelines|Guidelines for how to write a proper thesis]]. Here is a long list of [[https://ad.informatik.uni-freiburg.de/publikationen/bachelor_master_arbeiten|example theses]] which have already been completed at our chair.<<BR>> | Concerning the written thesis, you should upload a PDF of the thesis as well as all the sources (tex files, bib files, figures, etc.) to your folder in our SVN, in a separate subfolder ''thesis''. See our [[http://ad-wiki.informatik.uni-freiburg.de/teaching/ThesesGuidelines|Guidelines for how to write a proper thesis]]. Here is a long list of [[https://ad.informatik.uni-freiburg.de/publikationen/bachelor_master_arbeiten|example theses]] which have already been completed at our chair.<<BR>> |
Line 40: | Line 56: |
3. '''An oral presentation.''' A PDF of the slides as well as all the sources (if you use tex: like for the thesis, if you use !PowerPoint: the PPTX file) should be in the SVN, in a separate folder ''presentation''. The maximal duration of the presentation is 20 minutes. There is ample time for questions afterwards. Place: Building 51, 2nd Floor, Room 024 (our "Küche"). You should be there 15 minutes earlier for setup and testing.<<BR>> {{{#!html <!-- For both thesis and projects, your codebase and data '''must''' fulfill the following requirements (please read carefully and check twice before you submit your thesis): 1. '''Instructions on how to install and run your code.''' The standard is that you provide a ''Dockerfile'' together with your code, and the Docker image can be build with ''docker build'' and run with ''docker run'' (you should specify how exactly in your README file). If you want to deviate from this standard, you must discuss this with your supervisor early on in your project / thesis work. You can test your ''Dockerfile'' on our machine ''tapoa'' as described [[https://github.com/ad-freiburg/wharfer|in this document (Section "Using wharfer")]]. If you don't have access to ''tapoa'', write an email to [[https://ad.informatik.uni-freiburg.de/staff/dal-ri|Frank Dal-Ri]] with Cc to your supervisor. 2. '''A README file in the top-level directory.''' This README file should provide an overview over everything that's in the repository, so that anyone looking at your repository can quickly find they are looking for. In particular: where do I find the installation instructions, where do I find the data, where do I find the thesis and the presentation, how do I run the experiments. 3. '''A README file in each other directory.''' Each subfolder (and subsubfolder, etc) should contain a README file that explains how the folder is organized. If there are files in the folder (and not just other subfolders), you should explain which kind of information is in those files and what the format of those files is. Also make intelligent use of suffixes. For example, a file with tab-separated values should have the suffix ''.tsv'', a pure text file should have the suffix ''.txt'' and so on. Also pay attention to consistent names: don't call your files ''one_file'', ''fileTwo'', ''Third file'', ''file_4'' (you get the idea). 4. '''Instructions on how to reproduce your experiments.''' 5. '''List of data files which are not part of the code base.''' Many projects / theses involve data that is too big to upload in our SVN. You should explain precisely, how this data can be obtained, and where on our file system you have stored in (typically somwhere under ''/nfs/raid3/<username>'' ... don't forget the README files in those folders, too). --> }}} |
Concerning the oral presentation, you should upload A PDF of the slides as well as all the sources (if you use tex: like for the thesis, if you use !PowerPoint: the PPTX file) to your folder in our SVN, in a separate subfolder ''presentation''. The maximal duration of the presentation is 20 minutes. There is ample time for questions afterwards. The presentations take place in Building 51, 2nd Floor, Room 024 (our "Küche"). You should be there 15 minutes earlier for setup and testing. |
Line 108: | Line 107: |
a. Are the installation instructions easy to understand a. Can we run your code and reproduce your results |
a. Does the Docker setup work (this is actually a hard requirement) a. How easily can we reproduce your work and your results |
Line 121: | Line 120: |
= Available and ongoing projects and theses = | = List of available and ongoing projects and theses = |
Line 169: | Line 168: |
{{attachment:available.png|Available|align="top"}} [[http://ad-wiki.informatik.uni-freiburg.de/teaching/BachelorAndMasterProjectsAndTheses/MailSearch|Mail Search]] The goal of this project is a fast and efficient search in very large mail archives. The subtasks are: (1) Write an efficient parser that reads one or files in MBOX format and produces a CSV file with one line per mail and columns for the various structured and unstructured parts of an email (from, to, subject, date, body, ...); (2) take proper care of encoding issues, which are a major issue when dealing with a large number of emails; (3) setup an instance of CompleteSearch! for the data from the CSV file; (4) provide a simple and effective search unterface using the instance from 3 as a backend. Supervised by [[https://ad.informatik.uni-freiburg.de/staff/bast|Hannah Bast]]. | {{attachment:available.png|Available|align="top"}} [[http://ad-wiki.informatik.uni-freiburg.de/teaching/BachelorAndMasterProjectsAndTheses/MailSearch|Mail Search]] The goal of this project is a fast and efficient search in very large mail archives. The subtasks are: (1) Write an efficient parser that reads one or files in MBOX format and produces a CSV file with one line per mail and columns for the various structured and unstructured parts of an email (from, to, subject, date, body, ...); (2) take proper care of encoding issues, which are a major issue when dealing with a large number of emails; (3) setup an instance of !CompleteSearch for the data from the CSV file; (4) provide a simple and effective search unterface using the instance from 3 as a backend. Supervised by [[https://ad.informatik.uni-freiburg.de/staff/bast|Hannah Bast]]. |
Line 171: | Line 170: |
{{{#!html <!-- |
|
Line 175: | Line 176: |
--> }}} |
This page describes how Bachelor's and Master's Projects and Theses work at the Chair for Algorithms and Data Structures.
Contents
Application for a project or thesis
If you are interested in doing a project or theses with us, please carefully read this page first and then send an e-mail to the prospective supervisor with the following information:
- An acknowledgement that you have carefully read this whole page and the pages linked from it.
- A list of the courses you have already taken with us.
- A transcript of the grades of the courses you have take so far.
- A very short description of your interests and your strengths (concerning work on a project/thesis).
- If you have an own project in mind (not necessary): a very short description of the goal and the scientific merit.
If you want to do your thesis with a company, please provide the following *additional* information in a concise format. Concise means that you should not write more than a paragraph for each of the items below and that your text should be concrete and understandable for a non-expert.
- What is the expected / aimed at outcome?
How does your approach and the expected result differ from the state of the art? See the section on "Related Work" in our guidelines.
How do you plan to evaluate your work. See the sections on "Theoretical Analysis" and "Empirical Analysis" in our guidelines.
- Supervision must be provided by the company and the supervisor should provide an evaluation report at the end of the thesis, in a format to be discussed with us.
Reproducibility
For both projects and theses, your results must be easily reproducible. We have very specific requirements for this. They are explained in detail on our Reproducibility page, together with a simple working example.
Note the word "easily" in the previous paragraph. It is important that we can run reproduce your results not just in principle, but easily. That is, there should be no need for lengthy explanations or expert knowledge, but once the software runs, everything should be "self-explitary". From our perspective this should look like this:
1. We build the docker image (the Dockerfile should say how) 2. We start a docker container (the Dockerfile should say how) 3. There is information on the console on how to proceed further 4. Whatever components you provide from here on, they should be self-explanatory
Concerning Item 3, this will look different depending on your type of work. If your docker container contains a web service, there should be output on the console which provides the URL of the service. If your docker contains starts an interactive shell, there should at least be instructions on how to proceed further.
Deliverables of a Bachelor's or Master's PROJECT
On top of fulfulling the reproducibility requirements described in the previous section, you have to deliver a project website.
The pages must be in a subfolder www in your folder in our SVN. They should not require any special installation, but work just by copying them somewhere. Note that this does not exclude interactive elements, as long as all the required (JavaScript) code is also contained in the www subfolder.
There are no strict requirements for the format of the page, but the pages should be well-structured, informative and pleasant to read. Here is a long (incomplete) list of examples projects which have already been completed at our chair.
There is usually no presentation needed for a project.
Deliverables of a Bachelor's or Master's THESIS
On top of the reproducibility requirements described in the section above, you have to deliver a written thesis and an oral presentation. Concerning the written thesis, you should upload a PDF of the thesis as well as all the sources (tex files, bib files, figures, etc.) to your folder in our SVN, in a separate subfolder Concerning the oral presentation, you should upload A PDF of the slides as well as all the sources (if you use tex: like for the thesis, if you use PowerPoint: the PPTX file) to your folder in our SVN, in a separate subfolder
In the first meeting with the supervisor, create a Google Doc where you copy and fill out the following template. The Google Doc must be named The document should contain a section for each meeting. As a minimum, each section header should contain the number of the meeting and the date and the time. The section of the first meeting should contain at least the following information: The first step should be something, where the whole problem is solved from beginning to end, but with a relatively simple approach (how simple is up to you). The more aspects are touched (even if just in a simplistic way) in this first step, the better. The resulting code should follow our reproducibility guidelines, just like for the final submission. This first step usually considerable work, but not very hard. it will give you a very good feeling for the challenges involved. Having completed this first steps, it usually becomes very clear (from the shortcomings of the simple approach) what the next steps should be. We urge you to start your work right after the first meeting and we will be very unhappy if you don't. If you are not quite finished by the deadline, just drop us a line and ask for an extension. But never come to a follow-up meeting unprepared or with half-finished code, see the next section.
It's very important that you come well-prepared to all follow-up meetings. Most importantly, for every meeting, you must have working code and data ready that follows our reproducibility guidelines, just like for the final submission. In particular, all the relevant data should be there, either under Don't expect us to lead the meeting, it is your project / thesis and you should be the driving force. If you have specific problems or questions, you should prepare something (ideally in the form of code or a demo or an example), so that we can quickly understand what the problem is. It's usually not efficient if you start by telling us about all the details of the current status quo. Always bring your laptop, in case there is uncommitted code or data. It will also allow you to make small fixes right in the meeting.
Your final grade for the thesis will be an average of four grades, one for each of the following four aspects: Quality of the write-up. This includes the aspects described in our guidelines for writing a thesis
= Available; = Ongoing Click on the titles for a more detailed description of the project, including background info, goals, and first steps. Note that for some topics, it can make sense if several people work on them concurrently. So Merging Overlapping GTFS Feeds (Bachelor project or thesis): Many transportation companies publish their timetable data either directly as GTFS feeds or in formats that can be converted to GTFS. As soon as you have two GTFS feeds (two sets of timetable data) that cover either the same or adjacent areas, the problem of duplicate trips arises. You should develop a tool that merges two or more GTFS feeds and solves duplication / fragmentation issues. As a bachelor project or thesis. Supervised by Patrick Brosi. GTFS Browser Web App (Bachelor project or thesis): Develop a web-application that can be used to analyze huge GTFS datasets. There are already some tools available (for example, ScheduleViewer) but they all feel and look quite clumsy, are incredible slow and cannot handle large datasets. Supervised by Patrick Brosi. Merging Hyphenated Words & Guessing Ligatures (Master thesis, ongoing): PDF is a layout-based format: it specifies the positions and fonts of the individual characters, of which the text is composed, but usually does not provide any information about words, paragraphs and sections. You should write code, that (1) merges hyphenated words with respect to Extract and Analyze Scientist's Homepages (project and/or thesis): Extract a large number of scientist's homepages from the CommonCrawl web crawl. Extract the central information from these pages, including: name, profession, gender, affiliation. It will be relativel straightforward to get results of medium quality. The challenge is to achieve results of high quality. Machine learning will be crucial to achieve that. Exploring suitable methods is part of the challenge. Supervised by Hannah Bast. Tokenization Repair (project and/or thesis): Interesting and well-defined problem, the solution of which is relevant in a variety of information retrieval scenarios. Simple rule-based solutions come to mind easily, but machine learning is key to get very good results. A background in machine learning, or a strong willingness to aquire one as part of the project/thesis, is therefore mandatory for this project. Supervised by Hannah Bast. Combined SPARQL+Text search (project or thesis): This is well-suited as a project (B.Sc. or M.Sc.) but also provides ample opportunity for continuation with a theses (B.Sc. or M.Sc). You should be fond of good user interfaces and have a good taste concerning layout and colors and such things. You should also like knowledge bases and big datasets and searching in them. Supervised by Hannah Bast. Synonym Finder (project and/or theses): Find synonyms for all entities from Freebase or WikiData or Wikipedia. Evaluate the quality and compare it to existing synonym databases like CrossWikis. Motivation: Most entities are known under several names. For example, a person like "Ellen DeGeneres" is also known as just "Ellen". A profession like "Astronaut" is also known as "Spaceman", "Spacewoman" or "Cosmsonaut". Knowing these synonyms is key for many NLP (Natural Lanuage Processing) problems. Including complex problems like semantic search and question answering. Supervised by Hannah Bast. A Search Engine for OpenStreetMap Data (project and/or thesis): Implement the backend for a search engine for OpenStreetMap data. Your server should load an arbitrary .osm file and answer (fuzzy) string searches over the entire dataset. This is a nice project to familiarize yourself with different index structures. Continuation as a thesis is possible. Preferably you have visited our lecture Information Retrieval, but this is not required. Code should be written in C++. Supervised by Patrick Brosi. Tabular Information Extraction (project and/or thesis): Extract data from a knowledge base in a tabular format. This could for example be a list of cities with columns for the country they are in, population count and coordinates but really anything fitting in a table should be possible. Think of the typically hand crafted summary tables on Wikipedia. This is well-suited as a project (B.Sc. or M.Sc.) with possible continuation as a thesis. You should be interested in knowledge bases, big datasets and searching in them. Supervised by Niklas Schnelle. Conversational Aqqu (project and/or thesis): In this project you will be working on an extension to our Question Answering system Aqqu. This extension will enable follow-up questions and thus a more natural interface. Supervised by Niklas Schnelle. Question Anwering on WikiData: make our question answering work on WikiData. WikiData is currently growing fast and will become the new Freebase. It's an exciting dataset. Supervised by Hannah Bast. A Simple chat bot: Build a simple chat bot using deep learning. For a recent example of such a chatbot, see Woebot. This topic gives you a lot of freedom concerning the outcome, but it is also free in the sense that you have to research yourself what is out there already and what can realistically be achieved in six months yourself. Supervised by Hannah Bast. Error Correction for Question Answering: Design and build a system that accepts a (relatively simple) question in natural language and automatically corrects typos etc. This should be realized with a character-based language model learned using deep learning (e.g., with an RNN). Supervised by Hannah Bast. Crawling and Analysis of Scientist Homepages: Design and build a system that crawls as many university pages and finds as many person mentions as possible and creates a neat knowledge base from this information (Name of Scientist, Affiliation, Gender, Title). In previous work, we tried extracting this information from the CommonCrawl archive, but that turned out to be much too incomplete and unreliable. This is a challenging problem with large practical value. Supervised by Niklas Schnelle. Bitcoin trading app Design and implement a reasonably clever (not to reckless and not to conservative) algorithm for trading bitcoins. Evaluate on historical data and implement an API and a web app to monitor on live data. Take into account all the actual costs incurred (like taxes and fees). Analyse the return of investment that can be reasonably expected. Supervised by Hannah Bast. Entity Recognition on a Web Corpus Design and implement a named-entity recognizer for a web-size corpus. Supervised by Hannah Bast. Context Decomposition of a Web Corpus Decompose the sentences of a given web-size corpus into their semantic components, using fancy technology developed in our group. Supervised by Hannah Bast. Circular Arc Transit Maps The goal of this project is to reproduce the results of this poster presentation, but with our tool LOOM. Supervised by Patrick Brosi. River Maps The goal of this project is to use our tool LOOM to render maps of rivers from OSM data. Each river segment should consist of all rivers that contributed to this river so far (for example, beginning at Mannheim, the Neckar should be part of the segment that makes up the Rhine). Think of a single river as a single subway line starting at the source of that river, and the Rhine, for example, as dozens of small subway lines next to each other. Supervised by Patrick Brosi. Mail Search The goal of this project is a fast and efficient search in very large mail archives. The subtasks are: (1) Write an efficient parser that reads one or files in MBOX format and produces a CSV file with one line per mail and columns for the various structured and unstructured parts of an email (from, to, subject, date, body, ...); (2) take proper care of encoding issues, which are a major issue when dealing with a large number of emails; (3) setup an instance of CompleteSearch for the data from the CSV file; (4) provide a simple and effective search unterface using the instance from 3 as a backend. Supervised by Hannah Bast.
The first meeting
Short working title: [this may change later]
Uni-Account: [initials + number]
Informatik-Account: [usually first seven letters of given name + the initial of first name]
Primary e-mail adress:
SVN: [subdirectory in student-projects or student-theses, named firstname-lastname]
Special RAM requirements:
Special Disk space requirements:
Actual beginning of work:
Planned end of work:
Goal of the thesis: [succinct description in one paragraph]
First step: [see text below]
Deadline for the first step:
Follow-up meetings
Grading scheme for the theses
List of available and ongoing projects and theses