iiuni / projektzapisy

System Zapisów na zajęcia w Instytucie Informatyki Uniwersytetu Wrocławskiego
https://zapisy.ii.uni.wroc.pl
30 stars 10 forks source link

Bardziej równomierny rozkład terminów zapisów #1643

Open lgpawel opened 6 months ago

lgpawel commented 6 months ago

Obecnie różnice w terminach zapisów są wprost proporcjonalne do różnic w punktach ECTS, co sprawia, że o ile obciążenie generowane przez osoby zapisujące się na zajęcia jest rozkładane, to jest ono rozkładane mało równomiernie (i, co powiązane, na stosunkowo długi okres). Zgodnie z sugestią dyrekcji zapewne przepiszemy funkcję obliczającą te czasy tak, by kolejność była zachowana, ale odstępy czasowe pomiędzy osobami zapisującymi się bezpośrednio po sobie były stałe.

lgpawel commented 6 months ago

https://github.com/iiuni/projektzapisy/blob/master-dev/zapisy/apps/enrollment/records/models/opening_times.py

WiktorOgrodnik commented 5 months ago

W pull request #1661 zaproponowałem wstępne rozwiązanie tego problemu w następujący sposób: tworzymy ranking studentów po liczbie zdobytych ECTS i dodajemy pewien stały bonus za miejsce w rankingu. Bonus ten może ustawić administrator dla każdego semestru osobno (domyślnie pozostawiłem czas - 2 minuty).

W trakcie zajęć padła jeszcze propozycja, by administrator podawał "najwcześniejszy czas otwarcia zapisów", a wtedy system dobierze optymalne czasy otwarcia dla poszczególnych pozycji w rankingu (tak, żeby czasy otwarcia następowały o pełnych minutach), ale dostrzegam w tym podejściu parę problemów:

  1. Ze względu na to, że liczba pozycji w rankingu zależy od dystrybucji liczby ECTS u studentów to może być ona ciężka do przewidzenia i przypadkowo administrator mógłby ustawić na tyle krótki czas, że maksymalna przerwa między pozycjami wyniesie mniej niż minutę.
  2. Powyższy problem można by było częściowo rozwiązać przez możliwość ustalania bonusu co do sekundy, ale to pewnie wymagałoby zmiany interfejsu oraz nie wiem czy chcemy robić coś takiego.
  3. Z kolei ten problem można by rozwiązać w ten sposób, że po ustaleniu dokładnych czasów t0 dla poszczególnych studentów byłby one zaokrąglane do pełnych minut, ale tutaj pojawia się jeszcze inny problem: część studentów miałaby takie same czasy otwarcia zapisów pomimo różnej ilości ECTS, tj. niektóre przyznane ECTSy dodawałyby minutę bonusu, a niektóre nie.