W jakiej kolejności podchodzić do przedmiotów, czyli USOS a sieci (samo)wspierania

Dziś kolejny gościnny wpis, tym razem Teresy Ponikowskiej, mojej byłej magistrantki, obecnie już Pani Magister.

Temat wpisu i pracy dyplomowej dotyczy analizy danych z bazy/systemu USOS (USOS to system obsługi studenta, działała na większości uniwersytetów). Mając dane o różnych aspektach ,,procesu dydaktycznego”, można do wielu ciekawych rzeczy się dokopać. Wokół tego tematu powstały jak dotąd cztery prace magisterskie, zaczęło się od pracy ‘Oceanarium’, Filipa Grotkowskiego w 2011 roku, w roku 2012 powstały trzy prace, miedzy innymi Teresy Ponikowskiej, eksperymentujące z różnymi możliwymi analizami danych z USOSa. Wyniki tych prac nie zostały wdrożone w USOS, ponieważ pewnych rzeczy nie da się zrobić w ramach pracy magisterskiej, a niestety dwie główne rodzime instytucje grantowe odmówiły finansowania tego projektu [ni to badania podstawowe, ni przemysłowe zastosowania].
Nie ma wdrożenia, ale są ciekawe prototypy, jeden z nich dziś będzie opisany. Zobaczymy, jak można wykorzystać oceny z USOSa do zarekomendowania studentom kursów pomocniczych, które zrobione wcześniej pozwalają na lepsze zdanie (w domyśle lepsze zrozumienie/przygotowanie do) innego przedmiotu. W sytuacji gdy student wybierać może ze zbioru wielu kursów, również jeżeli chodzi o kolejność ich realizacji, takie rekomendacje mogą być użyteczne.

Będzie technicznie, ale mam nadzieje ciekawie. Poniższy przykład to szkic pomysłu, szczegółowy opis znaleźć można w pracy magisterskiej.

Sieci (samo)wspierania
Teresa Ponikowska

Celem mojej pracy magisterskiej było opracowanie sugestii dla studentów kolejności realizowania kursów. Na każdym wydziale są pewnie kursy, co do których można pokusić się o wskazówki odnośnie momentu ich realizacji, ponieważ jeżeli są zrealizowane odpowiednio wcześnie, mogą przyczynić się do uzyskania lepszych wyników z innych przedmiotów:

Powyższy graf pokazuje, że efektywność uczestniczenia w Optymalizacji, Modelach Matematycznych Rynków Instrumentów Pochodnych i Szeregach Czasowych wzrosła o co najmniej 25% jeżeli wcześniej zrealizowano przedmiot stat2 (a w zasadzie nie później, tzn. dopuszcza się możliwość realizacji kursów w tym samym semestrze). Przez efektywność rozumie się uzyskanie wyniku ponad*przeciętnego, czyli nie gorszego niż mediana studentów realizujących dany przedmiot. Pomysły związane z analizą efektywności zostały zestawione w koncepcje sieci (samo)wspierania.

Intuicyjnie jest oczywiste, że na zrozumienie/ocenę jednego kursu ma wpływ nie tylko wiedza przyswojona na tym kursie, lecz również to co się wyniosło z innych zrealizowanych wcześniej przedmiotów. Metoda sieci (samo)wspierania bada te związki dla par kursów – kursu bazowego (K_{baz}) i kursu testowego (K_{test}); dokładniej, bada w jaki sposób zmieniła się efektywność kursu bazowego w sytuacji, kiedy kurs testowy został zrealizowany co najwyżej w tym samym czasie co kurs bazowy, do sytuacji, kiedy był on zrealizowany później bądź nie był zrealizowany w ogóle. W sytuacji, kiedy przyrost efektywności dla kursu bazowego jest dodatni mówi się, że kurs testowy wspiera kurs bazowy. Wartością wsparcia jest wówczas wspomniana różnica efektywności, oznaczana jako współczynnik wsparcia wsp.

Dla porządku wprowadza się następujące oznaczenie na opisane następstwa czasowego, Student_i=1 gdy kurs K_{test} był realizowany nie później niż kurs K_{baz} przez studenta i; Student_i=0 gdy Kurs K_{test} był realizowany później niż kurs K_{baz} lub nie był realizowany w ogóle przez studenta i.

Mając zdefiniowana taką zmienną, możemy współczynnik wsparcia wyrazić w terminach prawdopodobieństw warunkowych, jeśli tylko podzieli się studentów związanych z kursem bazowym na odpowiednie podklasy. W tym celu rozważa się tablice dwudzielne o następującym schemacie:

Ostatecznie współczynnik wsparcia wyraża się jako:

Przykładowo, załóżmy, że student zastanawia się, w jakiej kolejności zrealizować Statystykę 2 (stat2) i Modele Matematyczne Rynków Instrumentów Pochodnych (mmrip). W tym celu można ocenić, jak zmienia się wprowadzony współczynniki dla odpowiednich par testowych, tzn. dla (stat2, mmrip) i (mmrip, stat2). Tablice dwudzielne są tutaj następujące:

W tym przypadku współczynniki wynoszą odpowiednio 31%, 1%. Metoda sieci (samo)wspierania sugeruje więc, że to Statystyka 2 wspiera Modele Matematyczne Rynków Instrumentów Pochodnych, a nie odwrotnie. Mamy bowiem, że studenci przystępujący do egzaminu z Modeli Matematycznych Rynków Instrumentów Pochodnych, którzy mieli wcześniej styczność ze Statystyką 2 radzili sobie o 31% lepiej od studentów, którzy ze Statystyką 2 nie mieli (jeszcze) nic wspólnego. Zamieniając kursy rolami wsparcie występuje na znikomym poziomie.

W sytuacji, w której student byłby zainteresowany zbadaniem zależności pomiędzy większą ilością przedmiotów, metoda sieci (samo)wspierania zbadałaby każdą z możliwych konfiguracji (K_{baz}, K_{test}). W wyniku podaje się wówczas graf połączeń pomiędzy tymi kursami, w których można mówić o wsparciu, począwszy od ustalonego poziomu początkowego. Przykładem takiego grafu jest rozszerzona do 44 arbitralnie wybranych kursów postać wcześniejszego grafu, przedstawiona na rysunku poniżej. Pojawiające się dodatkowo pętle odpowiadają one na pytanie, czy ponowne uczestniczenie w całym kursie stawia studentów w uprzywilejowanej pozycji. Pętle były dodawane już od poziomu samowsparcia 10%.

Alternatywnym współczynnikiem wsparcia może być współczynnik proporcji, który odpowiada ilorazowi badanych efektywności. Wartości tego współczynnika zostały przypisane do krawędzi znajdują się na zamieszczonych grafach (samo)wspierania.


(kliknij aby powiększyć)

Więcej o tej metodzie przeczytać można w pracy magisterskiej Teresy Poniakowskiej, która, razem z innymi pracami o USOSie, jest dostępna tutaj.

13 myśli na temat “W jakiej kolejności podchodzić do przedmiotów, czyli USOS a sieci (samo)wspierania”

  1. Ta praca bierze pod uwagę tylko przedmioty matematyczne i studentów matematyki oraz informatyki (jak się domyślam chodzi o JSIM albo studentów którzy zaliczali oba programy jeden po drugim). To jest według mnie duży błąd w opisaniu danych. W przedmiotach czysto informatycznych pewnie trudniej zauważyć takie zależności ale i tak chętnie zobaczyłbym to policzone.

    1. Nie wiem o co chodzi z tym błędem w opisie danych.
      W pracy magisterskiej zbudowano dwa modele, jeden dla studentów matematyki a drugi dla studentów informatyki.
      W pracy jest tez przedyskutowana trudność z jednoznacznym przypisaniem studenta, który zmieniał kierunek studiów lub który studiuje dwa kierunki, czy też jest na studiach jednoczesnych.

      Przykład w tym wpisie służy do przedstawienia metodologii.
      Z powodów technicznych (zmiany w programach studiów) próbka danych nie była najczystsza a same analizy nie uwzględniają jeszcze zmieniających się prowadzących przedmiotów obieralnych.
      Ale metodologia jest ciekawa, jeżeli znajdzie się ktoś kto chciałby ją zaimplementować w USOSie, lub rozbudować od strony analitycznej to dane są, można działać, chęć współpracy od strony osób rozwijających USOSa jest, można działać.

  2. Dość ciekawe. A czy próbowałaś robić (przybliżoną) hierarchię przedmiotów względem owego wspierania (tj. kolejność taką, że a>b jeśli a wspiera b). Rzecz jasna taką kolejność da się zawsze zrobić tylko dla DAGów (skierowanych grafów bez cyklów), ale jak cykli jest niewiele, można się pokusić na przybliżenia (w zależności od własności wagi krawędzi jest na to kilka sposobów).

    1. @Piotr, rozumiem, że taka relacja pozwoliłaby na proponowanie całych ,,łancuszków” realizacji przedmiotów. Wydaje mi się że z prezentowanych współczynników można taką przybliżoną relację zbudować. Mały komentarz co do grafu, tak naprawdę jest on (prawie) pełen, tyle że każda krawędź ma wagę (siłę wspierania). NA rysunku prezentowany jest graf po ,,odcięciu” na pewnym poziomie.

  3. Bardzo fajne analizy i dyplom jako całość. Gratulacje dla magistrantki i promotora!

    Mam jedną wątpliwość co do ogólnego podejścia: czy analizowanie tylko par poszczególnych przedmiotów nie sprawia, że mozna się “potknąć” o paradoks Simpsona lub podobne sytuacje? Lub też że szansa na sukces z przedmiotu X, może “nieaddytywnie” zależeć od wzięcia innych przedmiotów w przeszłości?

    1. @michał, problem z paradoksem Simpsona był odczuwalny. Studenci są bardzo niejednorodni i grupa ,,silnych” studentów bardzo wpływa na wyniki obieralnych kursów, na które zapisuje się kilka-kilkanaście osób.
      Trochę udało się ten problem zredukować usuwając studentów jednoczesnych studiów.
      Ale fakt, że kolejnym krokiem [pewnie kolejną pracą] będzie badanie czy wzbogacenie modelu o przeszłość istotnie poprawi model.

  4. Faktycznie, może nie wyraziłem się jasno. Chodzi mi o to, że opisany zbiór danych (patrzę na strony 64 i 66) *w ogóle nie zawiera* przedmiotów prowadzonych przez Instytut Informatyki.

    Stąd napisanie o podziale na studentów informatyki i matematyki bez wyraźnego zastrzeżenia o tym jest mylące. Pojawia się również pytanie czy był sens robienia takiego podziału.

    1. Ok, już rozumiem pytanie.
      Metodę da się zastosować dla wszystkich kursów, ale tych jest bardzo, bardzo dużo.
      Więc aby zobaczyć przykładowe wyniki i ocenić ich sensowność, Teresa wybrała zbiór kursów, które ją interesowały. To kursy związane ze statystyką i analizą danych, ale uczęszczali na nie studenci i z kierunku matematyka i z kierunku informatyka.

      Studenci z tych dwóch kierunków są bardzo, bardzo różni. Do niektórych kursów lepiej przygotowani są matematycy dla innych informatycy [ech te etykietki]. Dlatego obie grupy studentów były analizowane osobno, by uniknąć problemów z paradoksem Simpsona o którym pisał np. Michał.

      Jeżeli znajdą się chętni magistranci, to mam nadzieję że uda się tę lub podobną analizę wykonać jako moduł do USOSa, wtedy będzie można obejrzeć wyniki dla różnych grup kursów.

  5. Nie ma problemu, jak są wszędzie krawędzie; byleby były “konsekwetnie” skierowane. I tak, główna motywacja za tym jest doradzanie łańczuszkó∑ przedmotów, czy też – po prostu, proponowanie rzeczy na n-tym roku (i w ustalaniu planu patrzenie, by rzeczy na n-tym roku nie kolidowały ze sobą).

  6. Dobrze, teraz już rozumiem i więcej się nie będę czepiał :) nie udało mi się znaleźć tej informacji kiedy czytałem pracę.

    Pomysł był bardzo fajny i chętnie zobaczyłbym coś takiego w USOSWebie, albo nawet jako osobna aplikacja korzystająca z API USOS-a. Może można takie prace proponować jako projekt na ZPP lub jakiś inny projekt zaliczeniowy na informatyce (Aplikacje WWW)?

    Zrobienie takich rzeczy dobrze wymaga jednak sporego nakładu pracy. Natomiast, gdyby był gdzieś policzony cały graf w postaci (nazwa przedmiotu, grubość strzałki, nazwa przedmiotu) to może wyhackowałbym na szybko jakąś możliwość przeglądania jego dowolnych fragmentów. To nie powinno być trudne.

    1. Nie wiem czy uda się przeliczyć ten graf w krótkim okresie czasu [warto by było zrobić to na uaktualnionych danych]. Ale jeżeli się uda to będę już wiedział do kogo zwrócić się w sprawie prezentacji fragmentów grafu.

      Co do ZPP, nie wiem ile z tych projektów udaje się faktycznie zrealizować, ale przyjrzę się tej możliwości.

  7. Jeśli ma się już policzony graf (jeden plik tekstowy z opisem wierzchołków, drugi z opisem krawędzi), to bardzo łatwo go zwizualizować przy użyciu Cytoscape (http://www.cytoscape.org/). Można więc oszczędzić sobie tej części pracy.

    1. Wykresy z pracy i z wpisu byly wykonane z uzyciem Cytoscape. Dla kilkudziesieciu wiezcholkow to rozwiazanie sie sprawdza, ale graf dla wszystkich kursow jest calkowicie nieczytelny. Przydaloby sie narzedzie pozwalajace na interaktywna eksploracje tego grafu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">