Process Conformance Checking using Python (Master’s, SS 2020)
Language: The language of the course is English; therefore, all meetings and the written reports will be in English.
Update 26/03/2020: due to the Covid-19 outbreak, it is possible that the course will fully switch to an online setting. Given this, we ask to the students that are interested in the course to send their RWTH mail address to: firstname.lastname@example.org .
This will be used to insert you in the Moodle of the course. To allow the teaching activities, we ask you to register to the ZOOM conference system ( https://zoom.us/ ) with your @rwth-aachen.de mail address.
The course starts at 20th April, however, due the Coronavirus many things are unclear. The decision regarding online or physical sessions will be announced respectively.
The final oral examination will be set as a personal appointment between Monday 29/06/2020 and Wednesday 08/07/2020.
Process Mining is a growing branch of Data Science that focuses on analysing event data recorded in Information Systems, focusing on the process perspective.
Investments in Process Mining from public and private companies are steadily increasing, and are expected to more than double in the next five years.
Hence a good knowledge of Process Mining is an important skill for Data Scientists.
Conformance Checking is a part of Process Mining discipline and consists in techniques to compare the process model and the real behaviour recorded in an Information Systems to find commonalities and discrepancies. These may signal the need of better control of the process, or that the model needs to be improved to capture reality better. Common implementations of Conformance Checking on Information Systems are event listeners that trigger some kind of alert when deviations occur, or post-mortem analysis to detect fraudulent behaviour, for example violations of the Four Eyes Principle.
This Software Lab course includes tutorials describing the existing ProM Framework and Conformance checking techniques.
The course will use Python as the core language for implementation. It is expected that the students will follow the Software engineering principles during the course term.
All the above topics will be introduced in brief. Participation is mandatory throughout the course. In the introductory sessions, topics will be assigned to the students and deadline for submitting the report and implementation will be discussed.
Groups will be formed to work on the assignments
Student work structure
Students will be required to understand and implement the assignment requirements in Python and provide proper visualizations. A proper SDLC lifecycle will be followed during this phase to track the development. The details of the methodology will be communicated in the introductory session.
A written report on the implementation, its advantages and issues should be produced individually by the students.
The grading will take into account the written report and the Python code implemented. Moreover, a final oral examination is required.
- Software Engineering knowledge(Design, development and testing)
- Prior programming experience. Not necessarily Java or Python.
- Interest to learn and code in Python
- PM4Py: installation tutorial
- PM4Py: documentation
- Python Tutorial The Python Foundation
- Interactive Tutorial covering the basics of Python
- Introduction to Git
- Introduction to Sprint Planning / SCRUM
- Introduction to Unit Testing
- (Advanced) Python design patterns
- (Advanced) Deploying Flask application on Dockers
The registration is carried out by the central registration process in January 2020
In order to increase your chance for being elected for this lab, please state your qualifications, experiences, and overall grades in your enrolled study as detailed as possible. Please give clearly why you are definitely a suitable candidate for this lab.
You will be informed about the first meeting in the weeks after the registration closes.