Discrete event data about dynamic behavior of individual actors or agents in larger systems is complex and hard to analyze. Process mining provides techniques to analyze discrete event data for understanding, improving, and predicting processes from various application domains in an objective and explainable way. This advanced course on process mining teaches students theoretical foundations and the state-of-the-art in process mining along a complete process mining methodology. You learn how to analyze multi-dimensional event data (in databases), unstructured event data (in event logs), and (real-time) event streams. The course covers how to design model learning algorithms and how to evaluate and improve model quality to learn explainable behavioral models using detailed diagnostic information using pattern detection, graph structure analysis, and state-of-the-art stream data mining.

In this course, you will develop basic skills and knowledge to create and reason about efficient algorithms to solve computational problems. To be able to reason about algorithms efficiently we first consider the structure and textual form of formal proofs. We then explore different basic algorithms and data structures for frequently appearing problems, using the proving techniques learned to show their correctness. We consider basic algorithm design techniques, correctness analysis, and efficiency analysis of algorithms.

This course covers fundamental concepts and theory in the fields of
Automata Theory, Formal Language Theory, and Complexity Theory,
including regular languages, context-free languages, and decidable
languages and their computational models, viz. NFAs, PDAs, and TMs. In
addition NP-completeness is treated. The
above corresponds roughly with Chapters 1 to 7 of the textbook for
this course.

Generic Engineering course planned for Q3 in 2017-2018; trial in Q2

Many aspects of Data Science rely on computers to do the heavy lifting for handling data, computing results, running simulations, etc. To effectively use the computer as a tool, this course provides the fundamental concepts to reason about what computers can and cannot compute. For certain problems exact solutions can be computed by algorithms, and we need methods to establish that an algorithm is correct, and to analyze its efficiency.

In this course we will cover basic discrete mathematical structures that occur in many contexts in computer science. You will learn the basic skills and knowledge to formally reason about these structures. Among others we will cover relations and ordering, counting arguments, and graphs and trees.