Celem przedmiotu jest umożliwienie studentom wstępnego zapoznania się z
kilkoma językami programowania łączącymi wiele paradygmatów (obiektowe,
funkcyjne, logiczne, współbieżne, ...), jak również zdobycie przydatnej w
pracy umiejętności szybkiego wprowadzania koleżanek i kolegów w nową
technologię. Zbiór języków, którymi się będziemy zajmować ustalony zostanie
metodą konkursu, do którego staną języki zaproponowane przez prowadzącego oraz
przez uczestników. Na pierwszych zajęciach każda osoba zgłaszająca język
będzie mogła przeprowadzić krótką "kampanię wyborczą" na rzecz swojego
kandydata.
Potem odbędzie się głosowanie, w którym oprócz uczestników i prowadzącego będą
brali udział głosujący wirtualni: m.in. System Zapisów (preferowane są języki,
które nie występują w naszej ofercie, albo są bardzo rzadko prowadzone) oraz
Tiobe Programming Index (preferowane są języki, których ktoś używa, co
przybliżamy premiując te, które występują w Top20, nieznacznie mniej Top50;
pewne punkty można dostać za Top100).
Student (lub zespół 2-osobowy) realizujący dany temat powinien przygotować
90-minutową prezentację o danym języku, w której skupia się na tym, co
odróżnia ten język od innych. Ponadto powinnien przygotować krótką listę
prostych zadań z tego języka (wraz z ewentualnymi notatkami, jeżeli podczas
prezentacji nie zostały podane wszystkie informacje konieczne do rozwiązania
zadań z listy). Oczywiście zadania powinny dotyczyć rzeczy charakterystycznych
dla danego języka. Do obowiązków studenta należy również sprawdzenie rozwiązań
zgłaszanych przez innych uczestników. Na ocenę wpływa prezentacja oraz (w
nieco mniejszym stopniu) aktywność w rozwiązywaniu zadań stworzonych przez
innych oraz udział w seminariach.
Przykładowe propozycje prowadzącego (kolejność przypadkowa): Erlang, Mercury,
Scala, Clojure, Lambda Prolog, Swift, D, Curry.