37

Jak polski programista przygotowuje się do egzaminu na SGH? Właśnie tak

Nietuzinkowo. Tak można by było streścić sposób nauki przed egzaminem do Szkoły Głównej Handlowej w Warszawie, jaki wypracował sobie Michał Tajchert. Programista wpadł na pomysł, aby zbadać, jakie pytania pojawiały się na poprzednich egzaminach - jego źródłem wiedzy były własny kod oraz... Wikipedia. Czy w taki sposób można ocenić, jakie pytania pojawią się na przyszłym egzaminie?

Warto wspomnieć, że na temat Michała pisaliśmy przy okazji aplikacji Kanarek. Tymczasem, zaskoczył nas raz jeszcze prezentując swoje spostrzeżenia przy okazji nauki do egzaminu kwalifikacyjnego do SGH. Programista stworzył kod, który pobierał listę haseł z Wikipedii nt. ekonomii, a następnie wyciągał z bazy dane na temat wyświetleń danego hasła. Mając takie informacje, można było ocenić, jakie zagadnienia były popularne przed i po egzaminie. Znając daty egzaminów kwalifikacyjnych, można było w prosty sposób sprawdzić, czego uczyli się kandydaci i… co pojawiło się na egzaminie. Z tego, po „odszumowaniu” danych (olimpiady ekonomiczne, sprawdziany, itp.) można było wyciągać m. in. anomalie w postaci zagadnień, które były oblegane na krótko przed egzaminem na SGH, a pojawiły się we właściwym teście.

Pomysł na zbieranie danych i próbę dowiedzenia się co było popularne na egzaminach w zeszłych latach wpadłem sam podczas nauki. Rozwiązując ten sam przykładowy test po raz trzeci zacząłem się zastanawiać skąd jeszcze mogę otrzymać informacje o tym czego jest się efektywnie uczyć – a to przy tak szerokim zakresie materiału jest kluczowe. Także poszukiwania odpowiedzi na to pytanie traktowałem jako czas wolny między nauką jednej a drugiej teorii ekonomicznej. Końcowe wyniki zaskoczyły nawet mnie (pozytywnie) choć aby to potwierdzić trzeba by przyjrzeć się arkuszom które były na egzaminach w tych latach i porównać je z ‚wytypowanymi’ zagadnieniami przez algorytm. Niestety testy algorytmu na np. maturze nie dałyby takich rezultatów bo jest zbyt mały odstęp pomiędzy egzaminem a publikacją arkuszy a same osoby nie wyszukują haseł z egzaminu „bo i tak będą za chwilę dostępne z odpowiedziami”.

~Michał Tajchert dla Antyweb

SGH

Michał Tajchert wskazuje na to, że postanowił wypracować sobie taki model nauki głównie dlatego, że narzekał na małą ilość przykładowych testów na SGH, a to właśnie podczas ich rozwiązywania najlepiej przyswajał materiał. Dzięki temu, programista zbudował sobie pokaźną bazę zagadnień, z których następnie uczył się do właściwego egzaminu.

Programista zaznacza jednak, że wypracowanie takiego modelu nie oznacza, że można przestać się uczyć. Przy okazji, wskazuje na inne zastosowanie takiego kodu

Skoro za pomocą takiego kodu można analizować trendy, wykrywać anomalie i typować pytania, które mogą się pojawić na egzaminie, równie dobrze można wykrywać wycieki arkuszy. Załóżmy, że na kilka dni przed egzaminem grupa osób otrzymuje dostęp do właściwego testu. Co się dzieje? Następuje nagłe zainteresowanie konkretnymi hasłami w takich miejscach jak Wikipedia. Dzięki analizowaniu popularności zagadnień, które pojawią się w arkuszu, można w prosty sposób ocenić, czy właściwy arkusz egzaminacyjny jest bezpieczny i jeżeli pojawią się jakiekolwiek przesłanki, że jest inaczej – pytania w tekście można zmienić.

Szczerze uważam że powyższa metoda o ile może być ciekawostką przy zgadywaniu tematów z egzaminu i raczej niewiele się w tej formie przyda przyszłym uczestnikom rekrutacji to analiza trendów na egzaminach – czy to rekrutacyjnych, maturalnych czy choćby sesji z danego przedmiotu – myślę że jest jak najbardziej wykonalna i może dać praktyczne rezultaty. Tutaj niestety dochodzimy do innego problemu – skoro układający arkusze również mogą analizować trendy (co najmniej tak samo dobry dostęp do danych) to mogą użyć w pewnym momencie tej broni przeciwko podchodzącym do egzaminów.

Ciekawym na pewno byłoby zobaczyć narzędzie które tworzy dynamicznie opracowanie do egzaminu na dany rok na podstawie trendów z poprzednich lat. Niestety finalnie sami uczymy się coraz mniej kreatywnie i praktycznie a coraz bardziej „pod klucz” egzaminowy – choć ten problem leży głębiej bo w samej formie testu.

~Michał Tajchert dla Antyweb

SGH

Wykrywanie trendów w różnorakich egzaminach ma jednak ograniczone działanie. Z każdym rokiem wstecz obniża się skuteczność kodu z powodu niższej popularności technologii mobilnych. Dlatego też, zebrane dane sprzed 4, 5 lat mogą być mniej miarodajne, niż te pozyskane rok temu lub dwa. Natomiast, z powodzeniem można wykorzystać wykazane przez Michała zależności do wspomnianego wykrywania wycieków. Jak wskazuje sam programista, wykorzystanie do tego celu np. Brand24 celem określenia trendu byłoby świetnym pomysłem i z powodzeniem pozwoliłoby na sprawdzenie, czy zagadnienie, bądź ich grupa są anormalnie popularne tuż przed testem.

Właściwy tekst Michała opisujący działanie kodu oraz wnioski znajdziecie tutaj.

  • Kamil Gorski

    Tylko po co taki mądry łepek chce się dostać na SGH?
    ( ͡º ͜ʖ͡º)

    • Pewnie zeby poimprezować.

    • Na jakichkolwiek studiach można imprezować. ;)

    • Emiel Rohelec

      Np w seminarium;)

    • Piotr Potulski

      Nie jak jesteś hetero.

    • Daniel

      Też mnie to zastanawia. Takich ludzi to biorą nawet bez wyższego a ten jeszcze się pcha na SGH. Jeszcze dadzą mu „bana” za oszustwo :D

    • Juras

      Czy on taki mądry to brak jest na to dowodów :). Choć jest jeden, że poszedł na SGH. Rozumiem, że on jakiś programista. Jeśli tak, to całkiem słuszny kierunek. Jego wartość po tych studiach wzrośnie wielokrotnie z prostej przyczyny. Bycie samym programistą nie znaczy nic. Generalnie programista zajmuje się programowaniem w jakiejś dziedzinie. Więc programista z wiedzą ekonomiczną na rynku stanowi o wiele większą wartość. Po takiej wartości dodanej będzie mógł być projektantem softu itd, bo będzie się znać na tej konkretnej dziedzinie.

      Taki golec programista to co może zrobić? No może sobie wyklepać kod z projektu zrobionego np w UML. Mało kreatywna robota. A on będzie sobie siedział, analizował, projektował itd, itp :). Wystarczające wyjaśnienie?

    • Kamil Gorski

      O wiele lepszym byłaby odpowiedź „dla znajomości i papierka” :) Jedyne wartościowe rzeczy, które się z tej uczelni wynosi – bo ludzie faktycznie są fajni. A, no i imprezy, nie zapominajmy o imprezach ◖|◔◡◉|◗

    • Juras

      No cóż, każdy sądzie według siebie. Skoro jedynie imprezowanie cię interesowało…Chyba jednak są łatwiejsze i przyjemniejsze sposoby realizacji takich celów

    • Gosc

      Oj już nie te czasy że programista siedzi i tylko wklepuje rzeczy z UMLA… w każdej firmie w której pracowałem był process szkolenia nowych osób z danej dziedziny, nie ważne czy to CRM’y czy aplikacje b2b innego rodzaju.

      Od czasu poplaryzacji aplikacji rozproszonych (micro-services) oraz metodyk (agile/scrum) odchodzi się rowniez od projektowania w UMLu, albo ogranicza to projektowanie tylko do krytycznych elementow aplikacji. W typowych zespołach agile znajduję się również experci domenowi którzy zlecają dane zadania i pracują blisdko z programistami.

      Jedyny wyjątek z którym się spotkałem to aplikacje finansowe typu HFQ gdzie rzeczywiście głowny research pochodzi od osób opracowujących modele do data mining’u, ale nawet wtedy programista ropbi wiecej niz tylko wklepuje kod pod dyktando dokumentacji.

    • Juras

      Powiedzmy, że mam firmę produkującą soft to jakiś tam badań fizyki kwantowej. Mam dwóch kandydatów, jeden to zwykły informatyk, drugi kończył fizykę i informatykę. Kogo zatrudnię? Odpowiedź jest chyba oczywista.

    • Kozak127

      Tego który pisze lepszy kod, jest bardziej komunikatywny, i posiada więcej doświadczenia. Wykształcenie ma się nijak do umiejętności programisty – widziałem kod ludzi po studiach, bez studiów, w trakcie studiów… bez znaczenia. Zdobyłem inżyniera informatyka, i nikomu nie polecam robić tych studiów.

      Zakładając że obydwaj programiści są w tym samym wieku, jeden po studiach poszedł do pracy, a drugi poszedł na dodatkowe studia, ten pierwszy będzie lepszym programistą. Doświadczenie, różne firmy, code review pracowników… tego nie da się przebić studiami.

      Wiedza domenowa (czyli w Twoim wypadku fizyka kwantowa) jest cenna, ale z drugiej strony, w projekcie zazwyczaj istnieje jej tak wąski wycinek, że prawie każdy musi się uczyć od nowa. A nauczyć dobrego programistę wycinka wiedzy dla danego projektu jest nieporównywalnie łatwiej niż nauczyć kiepskiego programistę pisać dobry kod.

    • Primosz

      Poszedłem głównie poszerzyć horyzonty i poznać nowe osoby (z innych ‚kręgów zainteresowań’).
      I jestem z tego bardzo zadowolony :)
      Także o ile było za tym trochę chłodnej analizy @Juras to również i zainteresowań jeszcze z liceum/studiów (kursy na Courserze z mikroekonomii).

      Co do mądrości – moja opinia może nie być do końca obiektywna ¯_ツ_/¯

    • Ola

      SGH faktycznie slaba szkola. zero zainteresowania studentami i ich checia rozwoju

    • gosc

      Informatykę prowadzą na uniwersytetach wydziały Ekonomii, Pedagogiki, Dziennikarstwa, Bezpieczeńswa Narodowego, Spoołeczno-Humenistyczne .

      Po każdych takich studiach jest tytuł licencjata informatyka i mówi się o absolwencie PROGRAMISTA

    • Kamil Gorski

      Większość z tych ‚programistów’ nie umiałaby sklecić najprostszego skryptu w bashu więc akurat bohater tej historii się raczej do nich nie zalicza :)

    • k

      Jestem programistą. Nie umiem pisać skryptów w bash, cshellu, kornie, perlu.
      Nie potrafię administrować sieciami.
      Nie tnę grafik do stronek www.

    • Kamil Gorski

      Cóż, jeśli znając jakikolwiek język programowania nie umiesz z pomocą manuala ogarnąć skryptu w shellu to słabo trochę :( To samo z sieciami, jak się programuje appki klienckie / serwerowe bez znajomości protokołów?

    • Juras

      No da się zrobić bez znajomości protokołów. Tworzysz gniazdo, otwierasz, zapisujesz, z drugiej strony to samo tylko odbierasz. Co innego jak już sam musisz stworzyć implementacje protokołu, no to wtedy bez jego znajomości faktycznie go nie zaimplementujesz.

    • Kamil Dzióbek

      >Cóż, jeśli znając jakikolwiek język programowania nie umiesz z pomocą manuala
      Z manualem to każdy głupi potrafi.

    • Juras

      No to ja to jestem gość w takim razie:) Bo kończyłem informatykę na politechnice i był to zdaje się pierwszy w Polsce samodzielny wydział informatyki.

      Faktem natomiast jest, że nie każdy po informatyce jest programistą, choć programować to i tak musi umieć. Najlepsze jest to, że np u mnie na roku mocnych z programowania było niewielu, więc przy wyborze specjalizacji ci kulejący programistycznie wybierali sobie specjalność sieci komputerowe sądząc naiwnie, że tam będą sobie administrować i tworzyć sieci :). Jakże im przykro było, gdy okazało się, że specjalizacja sieci komputerowe to nie umiejętność administracji siecią i muszą więcej robić programistycznych popierdółek niż ja na systemach oprogramowania.

      No ale w IT panuje wiele błędnych pojęć. Np większość ludzi myśli, że jak człowiek jest informatykiem, to potrafi obsługiwać wszystkie programy świata i naprawić zepsuty komputer.

  • Foldex

    Ciekawe jakby sobie poradziło z kierunkami studiów, do których informacji nie ma w internecie ;) W każdym razie po polsku.

    • Primosz

      Algorytm i zasada jest bardzo prosta :) więc o ile ja użyłem tego dla Wikipedii bo pozwalał właśnie na to mój przypadek/potrzeba to rzeczywiście dla wielu kierunków się na samej Wikipedii nie sprawdzi. Obstawiam nawet że dla większości egzaminów po 1 roku studiów będzie problem bo coraz mniej wystarczają źródła z internetu. Za to dla pozostałych egzaminów sam jestem bardzo ciekaw dokładnego opracowania i analizy (wraz z porównaniem z arkuszami egzaminacyjnymi) czy rzeczywiście daje pozytywne efekty.

  • milky

    czyli co? są jakieś pytania, które wcale tajemnicą nie są, bo lądują na fajsie pięć minut po zadaniu. są na te pytania odpowiedzi, które są szeroko dostepne. trzeba znać konkretne odpowiedzi na konkretne pytania, żeby się dostać na studia. w sumie nawet nie trzeba, bo wystarczy mieć trochę oleju w głowie i wiedzieć o czym się mówi (co też można znaleźć na wikipedii).

    lemingi AD 2017 potrzebują na to nagle algorytmów i sraków i owaków. fajnie mamy.

    • Primosz

      >konkretne odpowiedzi na konkretne pytania
      Na tym głównie polegają egzaminy ;)

      Zachęcam również do lektury mojego oryginalnego posta na FB, jak i wypowiedzi cytowanych w samym artykule. Celem nie jest zgadnięcie pytań z ubiegłych lat a próba analizy trendu zagadnień i estymowania co potencjalnie może być na kolejnym egzaminie a przynajmniej jakie działy pojawiają się częściej czy rzadziej.

      Swego rodzaju ciekawostka, ja miałem sporo frajdy się nią zajmując 2 lata temu a teraz opisałem by nie leżało w szafie i się kurzyło – bo o nóż ktoś zrobi szersze i dokładniejsze badania – których wyników sam jestem ciekaw.

    • milky

      chętnie, ale może jakiś pastebin, bo może nie każdy facbooka ma.

    • Primosz

      Artykuł-post jest dostępny publicznie bez logowania.

    • milky

      nie chce być tym dziwnym-paranoikiem kolesiem, ale mam w umatrixie też wszystkie społecznościowe wtyczki poblokowane.

    • IdontgiveaF

      Post na fb mówi niewiele więcej.

      Nie ma kodu, nie ma obróbki danych, faktycznie wszystko sprowadza się do ciekawostki pt. „patrzecie, udało mi się zrobić coś takiego”.

      Na zachodnich blogach widać zdecydowanie większą chęć do dzielenia się wiedzą (kodem) a u nas ludzie się z tym kryją jakby mogli go spieniężyć i tylko czekają, czy kasę wyłoży Bill Gates, Mark Zuckerberg czy Larry Page ;)

    • Primosz

      Jeśli naprawdę kod napisany w 2 wieczory przez ‚studenta’ w dziedzinie (data science) w której stawia pierwsze kroki uważasz że nie publikuje ze względu na kasę – to niestety ;)
      Nie publikuje kodu ze względu na jego jakość a także powierzchowność analizy. Post który napisałem ma być ciekawostką i jak i w poście, i tutaj podkreślam – liczę że kogoś zaciekawi i przeprowadzi pełnoprawne badania tego zagadnienia. W żadnym miejscu nie próbuję sugerować że jest to dogłębna analiza ostatnich 17 lat od kiedy powstała Wikipedia która jest warta milionów $$$ a potencjalnie ciekawa zależność która jest wręcz banalna do obserwacji.

      PS. Mój kod na Githubie jest 8-mym najpopularniejszym z Polski w języku Java :)
      http://git-awards.com/users/tajchert
      Także mam nadzieję że dobitnie to podkreśli że nie robię tego dla $ bo czuje się ciut urażony ;)

    • IdontgiveaF

      Nie było moją intencją Cię obrażać, jeśli tak to odebrałeś to przepraszam. Bardziej chodziło mi o pierwszą część – w Polsce normą jest trzymanie się swojego kodu jak dziewictwa ;) To samo widze na elektrodzie – ludzie zrobią coś ciekawego, pstrykną dwa zdjęcia, opiszą ogolnie działanie swojego projektu, ale jak przychodzi do podzielenia się kodem, zaczynają się schody.

    • Primosz

      Rozumiem i częściowo się zgadzam :)
      Tutaj po prostu myślę że sposób jest bardzo prosty, podałem źródła danych a sam kod jest bardzo słabej jakości sprzed 2 lat więc i sam musiałbym go zrozumieć ponownie publikując razem z artykułem-postem a potencjalnie zrozumienie go komuś postronnemu i użycie zajmie więcej czasu niż napisanie samemu.
      Mam wręcz nadzieję na coś odwrotnego – że ktoś weźmie ten pomysł i zrobi z tego dobrze działający produkt – czy to właśnie generowane notatki czy może coś jeszcze innego i trzymam za to kciuki :) Sam specjalnie wrzuciłem wczoraj swój post na grupę SGH z kierunku Big Data właśnie w tym celu.

  • Krzysztof Hanzel (Hanza)

    Drogi Antywebie
    A może chcecie napisać artykuł o arkuszu istniejącym na Politechnice Śląskiej gdzie studenci od wielu lat wpisują pytania z wszystkich terminów teorii z Elektroniki i na podstawie tego wyznaczają prawdopodobieństwo pojawienia się danych pytań?
    Nie żebym na podstawie magicznego excela zdał ten przedmiot opanowując 10% wiedzy, nie nie nie ;) Ale skoro już tak piszecie o dokonaniach akademickich… :P

    • Juras

      Każdy kto studiował wie, że pytania z poprzednich lat krążą w eterze. Mało tego nawet z tego samego roku. Studiowałem zaocznie i często się wymienialiśmy pytaniami ze studentami z dziennych, w zależności od tego kto miał pierwszy egzamin z danego przedmiotu, to już ci drudzy wiedzieli co będą mieć.

      Ale wszystko zależy od egzaminu. U mnie np na algorytmach i strukturach danych, wykładowca pozwalał na posiadanie materiałów, książek, nawet laptopa, nie mogłeś się tylko konsultować z kolegami. Pomimo takiego zaopatrzenia egzamin ten było zdać piekielnie trudno. Przez jeden semestr miałem matmę z jedną babką, która na wejściówki dawała kilka zadań i sobie wychodziła z sali. I też zrobić te jej zadania to sztuka wielka była. Takie zadania dawała, że zrobienie nawet części w czasie w którym jej nie było stanowiło problem. Także wszystko zależy od rodzaju egzaminu. W rozwiązywaniu zadań na niewiele się przyda znajomość konkretnych zadań, gdyż niewielka korekta zadania i po ptokach jeśli nie potrafisz go rozpracować. A nawet jeśli wiesz skąd są zadania, to jeśli jest to z puli kilku tysięcy zadań, to nie nauczysz się ich na pamięć, bez znajomości tematu nie zrobisz ich po prostu.

  • Meretycz

    U mnie na uczelni organizowane są takie cykliczne spotkania, na których wykładowcy sami mówią jakie mogą być pytania oraz dyktują nam na nie odpowiedzi. Mówimy na to „wykład”.

  • MDW

    Studiowanie tylko po to żeby zdać egzaminy i zdobyć papier – klasyka. Tego chorego systemu edukacji już się nie uratuje…

  • Kamil Ro. Dzióbek

    to mi przypomina „google trends”. Nie lepiej by było użyć googla. Przecież na Wikipedię ludzie wchodzą z Google.
    google tak kiedyś przewidywało epidemie grypy.
    http://badania.net/goodle-przewiduje-miejsce-epidemii/