# disengagement-controller Ekspercki sterownik rozmyty Mamdaniego obliczający poziom zjawiska disengagement przyjmuje na wejściu dwie zmienne lingwistyczne: 1. **jakość nauki** (*learning_quality*), 2. **czas pozostały do zamknięcia testu zaliczeniowego, liczony w momencie pierwszego wejścia do kursu** (*remaining_time*). Jakość nauki została zdefiniowana jako agregacja trzech zmiennych: - **średni czas spędzony w jednym elemencie kursu** (*time*) - w proponowanym rozwiązaniu ze względu na uwarunkowania techniczne (czas spędzony w danym komponencie kursu był odnotowywany co pół minuty) zaproponowano algorytm normalizacji czasu, w którym każde pół minuty spędzone w kursie to jeden punkt - przyjęto czas maksymalny na 40 punktów (w zależności od kursu, autor może określić inny górny limit punktów), czyli 20 minut - jeśli student spędził więcej czasu, to otrzymywał również 40 punktów - tak zdefiniowany czas został znormalizowany do przedziału [0, 1], - **liczba rozwiązanych ćwiczeń w kursie** (*interactions*) - wartość została znormalizowana do przedziału [0, 1], - **liczba elementów, których student nie odwiedził** (*not_visited*) - jeśli student w danym komponencie spędził mniej niż pół minuty (czyli nie zdobył punktów dla zmiennej *time*), to komponent był oznaczany jako nieodwiedzony - wartość została także znormalizowana do przedziału [0, 1]. Jakość nauki została określona wzorem: $$learning\_quality=\frac{\textit{interactions} + 2 \cdot \textit{time} - \textit{not\_visited}}{3}$$ Czas pozostały do zamknięcia testu zaliczeniowego, liczony w momencie pierwszego wejścia do kursu został natomiast znormalizowany do przedziału [0, 1] zgodnie ze wzorem: $$remaining\_time = \frac{end - student\_start}{end - start}$$ gdzie: - *start* to data otwarcia dostępu do kursu (reprezentowana jako *timestamp*), - *end* to data zamknięcia dostępu do testu zaliczeniowego (reprezentowana jako *timestamp*), - *student\_start* to data pierwszego wejścia studenta do kursu (reprezentowana jako *timestamp*).