Currently, no news are available

Mining Input Structures

Description: How can one determine the input language of a program to test and debug it thoroughly? In this advanced seminar/proseminar, we study several approaches to mining input structures and implement them all. Our set of techniques includes:

  • Mining Input Grammars
  • Learning Tokens
  • Learning Input Properties
  • Explaining Failures
  • and more!

The general process will be as follows: Each week, you get 1-2 reading assignments and write an abstract about them. We may also ask you to give an (ungraded) five-minute short presentation to kick off the discussion and improve your presentation skills. Having discussed the approach, you have another week to finish a programming assignment (using Python and Jupyter Notebooks). in which you implement the respective technique in and for Python. Students attending the course as a proseminar do not do programming assignments.

At the end of the seminar, you give a 15-20 minute presentation on one of the techniques, including experiments you designed and conducted. We will determine your final grade from your abstracts (10%), your programming assignments (30%), and the final presentation (60%). Proseminar grades are based on the final presentation only (100%).

Requirements: This seminar requires creativity and ambition. Experience with formal languages and program analysis is a plus. Prior knowledge in automated testing, debugging, and software engineering (notably from earlier courses) will be beneficial. In your motivation, please mention relevant projects and courses you have taken along with your grades.

Registration: To register for this course, use

Looking forward to see you! -- Rafael + Andreas

Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators.