Process Discovery using Python (Bachelor’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 email@example.com .
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.
Location: ZOOM (the link will be sent to the people subscribed to the course; if you did not receive any invitation, please contact the teaching assistants)
Process Mining is a growing branch of Data Science that focuses on analyzing 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.
Process discovery is the initial and one of the most challenging process mining tasks. Based on an event log, a process model is constructed thus capturing the behaviour seen in the log.
This Software lab course is designed to enable students to get their hands on the discovery process. This course includes implementation of the algorithms either to discover or enable in discovering the process. Process Discovery involves the core discovery algorithms and their visualizations.
This Software Lab course includes tutorials describing the existing ProM Framework and Process discovery techniques/visualizations.
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 model implemented.
- 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.