Serwer Moodle (SKOS) dla Instytutu Informatyki Uniwersytetu Wrocławskiego:
Konto na SKOS zapewne już posiadacie, dzięki synchronizacji z USOS.
Jeżeli nie macie jeszcze uprawnień "Twórcy Kursów" (nie widzicie przycisku "Dodaj nowy kurs" o którym piszę poniżej), to wystarczy napisać do mnie (Michalis Kamburelis) e-mail z tego samego adresu jaki jest podany w SKOS.
Posiadając te uprawnienia, sami zakładacie nowe kursy: po wybraniu kategorii (zazwyczaj wybieramy tu aktualny semestr) klikamy "Dodaj nowy kurs". Sami też konfigurujecie swoje kursy jak chcecie: sami dodajecie innych prowadzących jeśli chcecie, sami decydujecie czy goście mogą zobaczyć materiały kursu, sami decydujecie czy pozwalacie studentom zwyczajnie przyłączyć się do kursu przez Moodle czy może zapisujecie ich ręcznie, sami decydujecie czy jest sens zrobić grupy w kursie odpowiadające pracowniom etc.
Domyślny edytor tekstu (wielolinijkowego) w naszym Moodle to Marklar, który pozwala na formatowanie tekstu w różnych formatach, w tym Markdown i HTML.
Markdown to prosty sposób formatowania tekstu, który zapewne znacie też z innych serwisów. Dokumentacja Markdown specyficzna dla jego implementacji w Moodle jest tutaj:
Mamy także edytorki WYSIWYG. Można przestawić swój preferowany edytor w "Profil -> Preferencje edytora" na "Edytor HTML Atto" albo "Edytor TinyMCE". Edytorki te wewnętrznie używają formatu HTML.
Mamy włączone także kolorowanie składni w blokach kodu za pomocą GeSHi.
Oto przykładowy dokument (w formacie Markdown, z użyciem Geshi oraz elementów HTML). Można go wkleić jako zawartość strony w Moodle (powinien zadziałać wszędzie tam gdzie Moodle pozwala na wielolinijkowy tekst) i sprawdzić jak wszystko działa.
Oto zrzut ekranu jak powinien wyglądać wynik.
Zasób "Googledoc" pozwala dodać do kursu Moodle dokument stworzony w Google Docs.
Instrukcja obsługi:
Tworzymy w Google Docs nowy dokument lub arkusz (spreadsheet).
Możemy stworzyć dokument (jak w Wordzie) lub arkusz (jak w Excelu), oba rodzaje dokumentów działają. Poniżej nazywam je zbiorczo po prostu "dokumenty".
Udostępniamy dokument dla skos@cs.uni.wroc.pl
.
To i tylko to konto potrzebuje dostępu do dokumentu (tylko do odczytu). W ten sposób nie trzeba współdzielić dokumentu za pomocą Google ze studentami lub publicznie. Można nadal edytować dokument w Google Docs, ale kierować oglądających do Moodle.
Dodajemy zasób typu "Googledoc" do kursu i w polu URL wklejamy pełny adres udostępnionego dokumentu.
Można zwyczajnie skopiować URL dokumentu z paska adresu przeglądarki, jak https://docs.google.com/spreadsheets/d/XXXX/edit#gid=0
. Większość tego adresu jest i tak ignorowana, system wyciąga tylko identyfikator dokumentu ze środka URL, więc różne inne postacie URL też działają.
Szczegóły działania:
Odświeżanie:
Dokument jest odświeżany z Google przy dodaniu i każdej zmianie w Moodle.
Żeby wymusić odświeżenie natychmiast, wystarczy wejść w "Edytuj ustawienia" i zrobić "Zapisz i wyświetl". (Ponieważ dokument jest odświeżany z Google przy każdej zmianie.)
Dokument jest też odświeżany co godzinę z automatu. Przez rok czasu po ostatniej zmianie w dokumencie. Limit "rok czasu" obowiązuje aby po kilku latach system nie był obciążony aktualizacją masy dokumentów do których już nikt nie zagląda. To jest rok od "daty ostatniej zmiany", więc aby przedłużyć ten okres na następny rok wystaczy wejść w "Edytuj ustawienia" i zrobić "Zapisz i wyświetl" w dokumencie.
Formatowanie dokumentu (czcionki, kolory etc.) działa, jest odpowiednio widoczne w Moodle.
Zagnieżdżone obrazki też działają, i w dokumencie i w arkuszu.
Uwaga: Ale my (Moodle) nie pilnujemy już dostępu do obrazków, tylko Google. Obrazki są na serwerach Google, i wygląda na to że Google pozwala na odczyt zagnieżdzonych obrazków wszystkim którzy mają odpowiedni link do obrazka, nawet jeśli sam dokument jest udostępniony tylko dla skos@cs.uni.wroc.pl
.
Jeśli arkusz (spreadsheet) zawiera kilka stron (sheets), pokażemy tylko pierwszy z nich (w kolejności alfabetycznej).
Zawartość dokumentu jest wyświetlana w ramce ("iframe" w HTML) w środku strony...
W przypadku dokumentu który jest bardzo długi lub bardzo szeroki, będziemy w rezultacie widzieć paski przewijania w środku strony. Wiem że nie jest to najwygodniejszy sposób prezentowania zawartości, ale niestety nie mamy jak tego uniknąć z przyczyn technicznych.
Zawartość dokumentu od Google to kompletna strona HTML. Zawiera tagi <html>...</html> i maaasę stylów CSS które zakładają że to naprawdę jest cała strona. Nie ma jak reliably włożyć dokumentu jako fragment większej strony Moodle, i zachować jego poprawny wygląd.
...chyba że jest to arkusz i wybraliśmy wygląd typu "Simple".
W przypadku arkuszy ze stylem "Simple" lub "Simple Without Headers" robimy małą sztuczkę i wstawiamy arkusz do środka strony Moodle bez dodatkowych pasków przewijania. Ale jest to mały hack który działa dzięki uprzejmości obecnych przegląderek WWW, więc nie mogę obiecać że będzie działał zawsze.
Aby łatwo synchronizować stan kursu ze stanem w Systemie Zapisów:
Wchodzimy w sekcję "Uczestnicy" kursu.
Z rozwijanego menu (combo box) wybieramy "Zapisy -> Metody Zapisów".
Dodajemy nową metodę zapisów "Zapisz podając numery indeksów" (ang: "Enrol by studentnumber").
Wklejamy w odpowiednie pole zawartość pliku CSV pobraną z Systemu Zapisów (albo po prostu listę numerów indeksów, jeden numer w każdej linii)
Zainstalowany moduł CodeRunner pozwala na kompilowanie i uruchamianie nadesłanych kodów źródłówych, i sprawdzanie czy przechodzą odpowiednie testy.
Instrukcja obsługi (bardziej obszerne info znajduje się w dokumentacji modułu):
Dodajemy nowy Test (Quiz w wersji angielskiej) w naszym kursie.
W opcjach quizu warto włączyć w kolumnie "Podczas próby" żeby podawał dane jak "Ogólna / szczegółowa informacja zwrotna". Inaczej nie zobaczymy czy/jakie były błędy kompilacji, jak wyglądał błędny output etc., tylko w odpowiedzi na kliknięcie "Sprawdź" dostaniemy enigmatyczne stwierdzenie "Niepoprawne".
W quizie dodajemy pytanie typu "CodeRunner". Wybieramy przede wszystkim question type (jak c_function
lub c_program
) które determinuje język programowania i otoczkę tego co napisze student (w przypadku c_function
, main i podstawowe include są już zdefiniowane w template).
Przy konfigurowaniu pytania możemy włączyć "Dostosuj" (ang: "Customize") i rozwinąć "Zaawansowane dostosowanie" (ang: "Advanced customisation") żeby wybrać piaskownicę (ang: sandbox).
Dozwolone sandboxy są opisane poniżej.
Jobe sandbox używa naszej własnego (Instytutowego) serwera do sprawdzania zadań.
Zalety własnego serwera:
Brak zewnętrznych limitów na ilość zapytań. Możemy go śmiało używać do własnych zastosowań, konfigurować jakie obciążenie serwer dopuszcza.
Możemy konfigurować jaka wersja software (np. kompilatora C) jest na nim zainstalowana.
Ideone sandbox używa usługi online ideone.com. Wiele języków programowania i kompilatorów dozwolonych. Trochę szczegółow o środowisku w jakim programy są uruchamiane jest w FAQ na ideone.com.
W polu "Language" należy wpisać jeden z języków obsługiwanych przez ideone. Obsługiwane nazwy języków możemy zobaczyć rozwijając pole "Wybierz język" na ideone.com, nazwa języka jest widoczna w prawym-górnym rogu popupa, jak C++14 (clang 4.0)
na screenie poniżej. Należy wpisać taką dokładnie nazwę języka w polu "Language" w Moodle, z takimi samymi spacjami (nawet wielkość liter ma znaczenie).
Prawdopodobnie jest limit zgłoszeń dozwolonych w ideone.com przez określoną stronę (jak nasze Moodle) w określonym czasie (jak miesiąc), chociaż obecnie jest niestety niejasne ile ten limit wynosi. W przeszłości FAQ jasno mówiło że dozwolone jest "1000 zgłoszeń na miesiąc" w pakiecie darmowym (oraz podawało ceny pakietów płatnych). Obecnie, twórcy ideone.com polecają sphere-engine.com jako komercyjne rozwiązanie do sprawdzania rozwiązań. Obowiązujące limity ideone.com nie są podane.
Jeżeli używacie albo planujecie używać ideone.com, proszę dajcie znać adminowi abym wiedział że ta opcja jest wykorzystywana i obserwował uważnie czy zapytania nie zaczną zwracać błędów po przekroczeniu limitów.
Ponad języki standardowo dostępne w ramach Jobe (C, Python, Pascal...) mamy także możliwość testowania programów w języku R.
Wersja: Są sprawdzane przy pomocy najnowszego R z Debian Stable, obecnie 4.2.2 z Debiana Bookworm.
Jak używać: Posługujemy się modułem CodeRunner tak jak opisano powyżej i jako rodzaj pytania wybieramy r_via_python
. Piaskownica to nadal nasze (domyślne) Jobe.
Jako "Odpowiedź" możemy wkleić przykładową odpowiedź autora pytania (będzie sprawdzona przy zapisie pytania, będziemy więc mieli pewność że wszystko działa).
Wypełniamy przypadki testowe. Notka: Screenshot poniżej nie ma danych wejściowych, ale w każdym praktycznym zastosowaniu chcemy jakieś dane wejściowe podać, sensem testów jest sprawdzić czy output jest poprawny dla różnych input'ów.
Po zapisaniu pytania możemy użyć "Podgląd" aby sprawdzić czy system dobrze wykrywa prawidłowe i nieprawidłowe (błędny kod lub błędne wyjście kodu) rozwiązania:
Główna, domyślna instalacja to Moodle dla Instytutu Informatyki na skos.ii.uni.wroc.pl. Cała dokumentacja na tej stronie dotyczy tej instalacji Moodle, chyba że wyraźnie zaznaczę gdzieś inaczej.
Stara instalacja (sprzed CAS) jest dostępna pod adresem kno.ii.uni.wroc.pl/ii/.
Mamy także Moodle dla innych kursów (courses). Witamy tam wszystkie kursy niezwiązane z Instytutem Informatyki.
Są także utrzymywane stare instalacje ze studiów KNO dla nauczycieli: KNO dla nauczycieli - główne kursy, KNO dla nauczycieli - piaskownica. Nie zakładamy ani nie rozwijamy tam już żadnych kursów, te instalacje są tylko utrzymywane jako archiwum informacji.
Wynagrodzenie administratora zostało dofinansowane ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego, dzięki projektowi studiów zamawianych.