Komputerowe wspomaganie efektywności procesu nauczania metodą spaced repetition

Wielkość: px
Rozpocząć pokaz od strony:

Download "Komputerowe wspomaganie efektywności procesu nauczania metodą spaced repetition"

Transkrypt

1 UNIWERSYTET JAGIELLOŃSKI W KRAKOWIE Komputerowe wspomaganie efektywności procesu nauczania metodą spaced repetition Adam Dziendziel Praca magisterska wykonana w Zakładzie Technologii Informatycznych pod kierunkiem Dr Katarzyny Grzesiak-Kopeć Wydział Fizyki, Astronomii i Informatyki Stosowanej Kraków 2010

2 Wydział Fizyki, Astronomii i Informatyki Stosowanej Uniwersytet Jagielloński Oświadczenie Ja niżej podpisany Adam Dziendziel (nr indeksu: ) student Wydziału Fizyki, Astronomii i Informatyki Stosowanej Uniwersytetu Jagiellońskiego kierunku informatyka, oświadczam, że przedłożona przeze mnie praca magisterska pt. Komputerowe wspomaganie efektywności procesu nauczania metodą spaced repetition przedstawia wyniki badań wykonanych przeze mnie osobiście, pod kierunkiem dr Katarzyny Grzesiak-Kopeć. Pracę napisałem samodzielnie. Oświadczam, że moja praca dyplomowa została opracowana zgodnie z Ustawą o prawie autorskim i prawach pokrewnych z dnia 4 lutego 1994 r. (Dziennik Ustaw 1994 nr 24 poz. 83 wraz z późniejszymi zmianami). Jestem świadom, że niezgodność niniejszego oświadczenia z prawdą ujawniona w dowolnym czasie, niezależnie od skutków prawnych wynikających z ww. ustawy, może spowodować unieważnienie tytułu nabytego na podstawie tej pracy. Kraków, dnia podpis studenta

3 Spis treści Wstęp 1 Motywacja Cel pracy Organizacja pracy Nauczanie wspomagane komputerowo Historia Zalety nauczania komputerowego Oprogramowanie edukacyjne E-learning Charakterystyka Systemy e-learningowe Edukacja osób niepełnosprawnych Metoda planowanego powtarzania Proces zapominania Definicja Historia System Leitnera Systemy komputerowe Reprezentacja wiedzy Jednostka materiału Problem Proponowane rozwiązanie Kategoryzacja treści Problem Ontologie Folksonomie Proponowane rozwiązanie Algorytm wyznaczania powtórek Problem Proponowane rozwiązanie Opis algorytmu Złożoność obliczeniowa Poprawność iii

4 Spis treści iv 5 Internetowy system planowanego powtarzania RapidStudy Zdefiniowanie problemu Technologie i narzędzia Bogata aplikacja internetowa Biblioteka komponentów interfejsu graficznego Język programowania Baza danych Silnik wyszukiwawczy Architektura systemu Aplikacja Serwer Apache Serwer wyszukiwawczy i proces indeksujący Proces wykonujący zadania asynchroniczne Architektura aplikacji Model-Widok-Kontroler Zależności i komunikacja Organizacja logiki dziedziny aplikacji Podsumowanie 66 A Podstawy obsługi programu 69 B Przykład działania algorytmu SSRF 79 C Wymagania 83 D Struktura bazy danych 89 E Opis zawartości dołączonego nośnika 97 Spis rysunków 97 Spis tablic 101 Bibliografia 103

5 Wstęp Wiedza uzyskana podczas nauki wraz z upływem czasu ulega zapomnieniu. Jeśli przyswojone informacje nie są używane to coraz trudniej je wydobyć z pamięci. To naturalne zjawisko stało się podstawą dla wielu badań i teorii[1, 2]. Między innymi określono zależności pomiędzy materiałem i okolicznościami, a zdolnością do jego zapamiętania i szybkością zapominania. Wiadomo na przykład, że w pamięci mocniej utrwalane są fakty powiązane z emocjami, a gorzej abstrakcyjne pojęcia oraz ciągi znaków i symboli, których nie da się odnieść do doświadczeń[3 5]. To dlatego przykre wydarzenia, które chcielibyśmy wymazać z pamięci, wracają we wspomnieniach, a studenci miewają problemy z zapamiętywaniem wzorów matematycznych. Od prawie wieku znane jest także tempo zapominania przypadkowych informacji[2]. Na jego podstawie można przewidzieć moment, w którym jest się bliskim utraty posiadanej wiedzy i odpowiednio zareagować, na przykład powtarzając materiał. Takie zachowanie stanowi podstawę działania tzw. systemów planowanego powtarzania (ang. spaced repetition systems, SRS). Motywacja Powtarzanie jest matką nauki (łac. repetitio est mater studiorum) mawiali starożytni. Znaczenie powtórek w utrwalaniu wiedzy było wykazywane wielokrotnie[1, 6, 7]. Istnieją sposoby nauki języków obcych, takie jak metoda Callana, fiszki (ang. flashcards) i system Leitnera czy seria kursów Pimsleura, których skuteczność przypisywana jest między innymi właśnie wykorzystaniu powtórek[7 10]. Korzyści płynące z komputerowego wspomagania nauczania, takie jak wyższa efektywność, krótszy czas nauki oraz fakt, że jest to forma prezentacji lubiana przez studentów[11, 12], w połączeniu możliwością automatyzacji wyznaczania powtórek, skłaniają do tworzenia komputerowych systemów planowanego powtarzania. Biorąc pod uwagę rozwój e-learningu i technologii służących do budowania tzw. bogatych aplikacji internetowych (Rich Internet Application, RIA) warte rozważenia byłoby stworzenie komputerowego systemu planowanego powtarzania, który działałby w sieci i byłby dostępny z każdego urządzenia wyposażonego w przeglądarkę internetową. 1

6 Wstęp 2 Ostatnimi czasy można zauważyć wzrost użycia systemów typu Wiki[13], które charakteryzuje otwartość w dostępie do informacji: każdy odwiedzający Wiki może czytać treści, ale także je tworzyć i modyfikować, a wprowadzanie zmian odbywa się bez potrzeby ich zatwierdzania przez osoby sprawujące pieczę nad systemem. Można przypuszczać, że udostępnienie narzędzia bazującego na idei Wiki w systemie planowanego powtarzania przyczyniłoby się do powstania bazy przygotowanych kursów dotyczących różnych obszarów wiedzy i w efekcie wzrostu popularności tych systemów wśród użytkowników szukających gotowych materiałów i rozwiązań pomocnych w nauce. Raz stworzona treść byłaby dostępna w systemie dla innych, a nakład pracy potrzebny na przygotowanie złożonych materiałów będzie mółby być podzielony na kilka osób, dzięki możliwości rozwijania bazy przez wiele osób jednocześnie. Przykład Wikipedii[14], internetowej encyklopedii, która w ciągu 9 lat istnienia zgromadziła 16 milionów artykułów w 272 językach i stała się największym encyklopedycznym źródłem informacji w internecie oraz siódmą z najczęściej odwiedzanych stron w sieci[14] pokazuje, że ludzie są skłonni inwestować swój czas w rozwijanie publicznie dostępnych dóbr. Pomimo sugestii ze strony ważnych osób związanych z Wikipedią, w tym wypowiedzi jej założyciela Jimmy ego Walesa z grudnia 2004 roku, jakoby połowa edycji artykułów Wikipedia została dokonana przez 2.5% jej zarejestrowanych użytkowników, przeprowadzone analizy wykazują, że choć w początkowych fazach istnienia projektu rzeczywiście artykuły były tworzone przez elitę, później zaobserwowano dramatyczne przesunięcie aktywności w stronę zwykłych użytkowników[15]. Można spekulować, że w pewnym momencie popularność serwisu i ilość dostępnej treści zadecydowała o społecznej akceptacji internetowej encyklopedii i dotąd pasywni odwiedzający stali się bardziej skłonni do wzięcia odpowiedzialności za zamieszczoną w niej treść, zaczęli wprowadzać poprawki i dodawać brakujące artykuły. Prawdopodobnie najbardziej zaawansowanym komputerowym systemem planowanego powtarzania jest SuperMemo[16], metoda i pakiet oprogramowania służący do szybkiej i efektywnej nauki, oparty na stochastycznym modelu pamięci długotrwałej. Według twórców programu, dana ilość wiedzy może zostać przyswojona w czasie krotnie krótszym za pomocą SuperMemo niż przy zastosowaniu tradycyjnych metod[17]. Opinie użytkowników, publicystów (oraz autora tej pracy) potwierdzają skuteczność SuperMemo[18]. W ostatnich latach pojawiły się bezpłatne programy implementujące funkcje znane z komercyjnego SuperMemo, takie jak Anki[19] czy Mnemosyne[20], które także zbierają pozytywne recenzje w internecie[21 23]. Zarówno Anki jak i Mnemosyne bazują na tym samym algorytmie wyznaczania powtórek z wczesnych prac Woźniaka i Gorzelańczyka, autorów pierwszych wersji SuperMemo[24, 25]. Pomimo faktu, że algorytm ten doczekał się przynajmniej jedenastu poprawek[26], nie zostały one opublikowane i wspomniane aplikacje nadal używają starej wersji algorytmu (SM-2 [27]), która jest daleka

7 Wstęp 3 od doskonałości[28, 29]. W szczególności, nie uwzględnia rozkładu już zaplanowanych powtórek przy wyznaczaniu nowych w efekcie nie zapewniając ich równomiernego rozłożenia w czasie. Wszystkie wymienione programy wymagają instalacji na komputerze, na którym będą używane. Aby móc wykonywać powtórki zarówno na komputerze w pracy jak i w domu czy w kawiarni internetowej należy uciekać się do obejść typu umieszczenie aplikacji na przenośnych nośnikach pamięci flash. Najpopularniejszym zastosowaniem systemów spaced repetition jest nauka języków obcych i SuperMemo, podobnie jak pozostałe programy na rynku, zostały zaprojektowane głównie w tym celu. Tymczasem ta metoda nauki może być użyta do nauki dowolnego typu materiału. Nic nie stoi na przeszkodzie by za pomocą tych narzędzi utrwalać wzory matematyczne czy uczyć się anatomii. Istniejące programy koncentrują się na nauce języków obcych i sposobie użycia, w którym użytkownik wprowadza materiały samodzielnie. W przypadku nauki słownictwa języka obcego wpisanie słowa oraz tłumaczenia jest akceptowalne, lecz przepisywanie dowodów matematycznych czy tworzenie ilustracji do nauki umiejscowienia mięśni na szkielecie ciała ludzkiego wymaga dużo więcej pracy. Wysiłek potrzebny na wprowadzenie materiałów do komputera ogranicza użycie dostępnych programów. Sporządzenie wzorów matematycznych obecnie wymaga użycia zewnętrznych narzędzi typu LATEX, których instalacja i konfiguracja może być zbyt trudna dla przeciętnego użytkownika komputera. Cel pracy Celem tej pracy jest zaproponowanie i stworzenie nowoczesnego systemu komputerowego wspomagającego efektywność procesu nauczania. Biorąc pod uwagę skuteczność powtórek w utrwalaniu wiedzy, dostępność technologii internetowych, wnioski z obserwacji systemów Wiki oraz braki istniejących implementacji, projektowany system musi mieć następujące cechy: 1. Metoda planowanego powtarzania. 2. Algorytm uwzględniający rozkład powtórek. 3. Forma bogatej aplikacji internetowej (RIA). 4. Centralna baza materialów z możliwością wspólnego tworzenia treści. 5. Reprezentacja wiedzy pozwalająca na naukę różnych przedmiotów. 6. Wsparcie dla nagrań dźwiękowych, ilustracji oraz wzorów matematycznych.

8 Wstęp 4 Organizacja pracy W rozdziale pierwszym pracy przedstawiono dziedzinę nauczania wspomaganego komputerowo: historię, zalety, scharakteryzowano oprogramowanie edukacyjne oraz e-learning. Rozdział drugi poświęcony jest problemowi zapominania, metodzie planowanego powtarzania i systemom planowanego powtarzania. W rodziale trzecim zaproponowano model reprezentacji wiedzy dla systemu planowanego powtarzania z centralną bazą danych. Rozdział czwarty opisuje nowy algorytm wyznaczania powtórek, który zapewnia równomierne obciążenie powtórkami. W rozdziale piątym przedstawiono stworzony internetowy system planowanego powtarzania RapidStudy: wyszczególniono problemy, które zostały w nim rozwiązane, użyte narzędzia i technologie oraz opisano architekturę systemu.

9 Rozdział 1 Nauczanie wspomagane komputerowo Planowane powtarzanie nie jest jedyną metodą komputerowego wspomagania nauczania w niniejszym rozdziale zostaną przedstawione pozostałe sposoby użycia technologii w kształceniu. 1.1 Historia Pierwsze zastosowania sprzętu komputerowego i oprogramowania w edukacji i prowadzeniu szkoleń datuje się na początek lat 40-tych ubiegłego wieku, kiedy to amerykańscy badacze opracowali symulatory lotu, które używały analogowych komputerów do generowania wskazań aparatury pokładowej[30]. W 1944 roku amerykański kongres i ówczesny prezydent Franklin Delano Roosevelt podpisali ustawę zwaną G.I. Bill, która zagwarantowała kilkuset tysiącom weteranów 4-letnie bezpłatne studia po zakończeniu służby wojskowej. Uniwersytety, kształcące wcześniej niewielką grupę społeczną, musiały sprostać wyzwaniu przyjęcia wielu nowych studentów. Pomyślano, że skoro zastosowanie komputeryzacji w przemyśle zwiększyło zdolności produkcyjne fabryk, podobny efekt mogłoby przynieść wykorzystanie komputerów w edukacji[31]. W 1960 roku na Uniwersytecie Illinois powstał pierwszy system nauczania wspomaganego komputerowo ogólnego przeznaczenia o nazwie PLATO (ang. Programmed Logic for Automated Teaching Operations). Pierwsza wersja PLATO działała na komputerze ILLIAC I. Zbudowanym w 1952 ILLIAC I był pierwszym komputerem będącym całkowicie własnością instytucji edukacyjnej w USA. Urządzenie, które posiadało

10 Rozdział 1. Nauczanie wspomagane komputerowo 6 lamp elektronowych i ważyło 5 ton było bardzo potężne jak na tamte czasy w 1956 roku posiadało większą moc obliczeniową niż laboratoria Bella, gdzie stworzono pierwszy tranzystor (za który nota bene właśnie w 1956 roku Bardeen, Shockley i Brattain odebrali nagrodę Nobla)[32]. Oficjalne testy PLATO przez zewnętrzną agencję wykazały, że system był lubiany przez użytkowników, a efekty nauki były w zasadzie identyczne jak przy udziale nauczyciela. Cel twórców się powiódł: człowiek może zostać zastąpiony przez komputer, który nie żąda podwyżek i nie strajkuje. Niestety, PLATO nie przyczynił się do obniżenia kosztów edukacji, ponieważ firma która zbudowała system na zlecenie uniwersytetu, Control Data Corporation, pobierała $50 za godzinę dostępu do sieci[31]. Istotnym spadkiem po PLATO był wkład w rozwój sieciowych form komunikacji. PLA- TO Notes, powstały w 1973, był jednym z pierwszych komputerowych for dyskusyjnych i bezpośrednim przodkiem aplikacji Lotus Notes. Przed końcem 1976 roku, PLATO udostępniał narzędzia odpowiadające dzisiejszym usługom poczty elektronicznej, pokojów dyskusyjnych i komunikatorów internetowych. Warto zauważyć, że podobna funkcjonalność jest integralną częścią współczesnych systemów e-learning. Na potrzeby systemu PLATO powstał język programowania TUTOR, który został wyposażony w polecenia służące do parsowania i oceniania odpowiedzi użytkownika. Pojawienie się komputera osobistego w 1975 roku spowodowało duże zmiany w dostępie do komputerów. Rozwój technologii i spadek cen przyczynił się popularyzacji urządzeń, na których można było uruchamiać dowolne oprogramowanie. Powstały firmy, takie jak The Learning Company czy Brøderbund, tworzące programy edukacyjne. Wprowadzenie nośników CD-ROM umożliwiło producentom wzbogacanie treści o multimedia[30]. Nowe horyzonty otworzyły się w latach 90-tych wraz z rozpowszechnieniem dostępu do internetu. Podczas tego dziesięciolecia nastąpił intensywny rozwój tzw. wirtualnych środowisk nauczania (ang. virtual learning environment). W 1995 roku powstał WebCT, jeden z najszerzej używanych systemów e-learning aż do początku pierwszej dekady XXI wieku. Dwa lata później powstała firma Blackboard Inc., której systemy zarządzania nauczaniem są używane do dziś na całym świecie. 1.2 Zalety nauczania komputerowego Wprowadzenie komputera do procesu nauczania przynosi wiele korzyści poniżej zostały wyszczególnione najważniejsze z nich (tab. 1.1).

11 Rozdział 1. Nauczanie wspomagane komputerowo 7 Zaleta Uzasadnienie Większa efektywność Analiza 254 kontrolowanych eksperymentów uwzględniająca wszystkie grupy wiekowe wykazała, że komputerowe metody nauczania podwyższają wyniki uczniów średnio o 0.30 odchylenia standardowego, co uznano za umiarkowany, lecz znaczący efekt[11]. Niektórzy badacze sugerują, że wyniki CAI zależą od nauczanego przemiotu. Pozytywny wpływ ma być większy w nauczaniu przedmiotów bazujących na analitycznym myśleniu, w przypadku których większa liczba ćwiczeń oferowanych przez programy komputerowe przekłada się na lepsze zrozumienie tematu[12]. Krótszy czas nauki Zastosowanie nauczania wspomaganego komputerem w znaczący sposób skraca czas potrzebny na naukę[11]. Przy użyciu CAI to uczeń decyduje o przejściu do kolejnej porcji materiału. W tradycyjnym szkolnictwie tempo nauczania musi być dostosowane do możliwości wszystkich uczniów w klasie. Atrakcyjna forma Uczniowie lubią sposób prezentacji materiału oferowany przez komputerowe formy nauczania[33]. Odbierają naukę z wykorzystaniem CAI jako pozytywne doświadczenie i urozmaicenie[12]. Komputerowe wspomagania nauczania powoduje niewielkie lecz pozytywne zmiany postawy studentów w stosunku do nauczania i komputerów[11]. Dostępność Student może korzystać z oprogramowania komputerowego po godzinach lekcyjnych, będąc w domu. Pozwala to na lepsze dostosowanie nauki do potrzeb i możliwości ucznia[34]. Koszt nauki jest niższy. Mniejsze obciążenie Nauczyciel dalej bierze udział w procesie nauki, jednakże jego nauczyciela rola sprowadza się do nadzorowania i zapewniania wsparcia dla uczniów[34]. Tablica 1.1: Zalety nauczania wspomaganego komputerowo (CAI). 1.3 Oprogramowanie edukacyjne Jedną z form nauczania z użyciem komputerów jest użycie oprogramowania edukacyjnego, dostarczanego z komputerem lub rozprowadzanego na elektronicznych nośnikach. W

12 Rozdział 1. Nauczanie wspomagane komputerowo 8 przeciwieństwie do e-learningu, do ich używania nie jest wymagane połączenie z Internetem, choć często producenci oprogramowania edukacyjnego udostępniają dodatkowe materiały uzupełniające w sieci WWW. Spotykamy wiele różnych podziałów oprogramowania edukacyjnego. K. Wenta [35] proponuje podział aplikacji edukacyjnych wg. zastosowania: Programy przeznaczone do ćwiczeń i doskonalenia wybranych umiejętności. Programy typu korepetytor, wyjaśniające zagadnienia i przekazujące wiedzę. Programy wspomagające rozwiązywanie problemów i zadań. Programy sprawdzające i weryfikujące umiejętności ucznia (egzaminy i testy). Programy symulacyjne i demonstracyjne. Oprogramowanie komputerowe mające cechy edukacyjne można sklasyfikować także pod względem formy (tab. 1.2)[30, 36]. Kursy komputerowe Pomoce szkolne Programy edukacyjne dla dzieci Programy edukacyjne na dedykowanych urządzeniach Edukacja rozrywkowa oraz gry komputerowe Programy informacyjne Pakiety oprogramowania, ukierunkowane na przekazanie konkretnego fragmentu wiedzy, szczególnie popularne w nauce języków obcych (ang. Computer-assisted language learning, CALL)[37]. Prezentacje, symulacje i demonstracje. Systemy planowanego powtarzania. Programy egzaminujące. Dzienniki elektroniczne. Projektowane by jednocześnie uczyć i bawić. Maksymalny czas koncentracji dorosłego to ok. 20 minut, dwuletniego dziecka ok. 5 minut[38]. Skupienie uwagi realizuje się przez pobudzanie zmysłów i zaciekawienie. Przekaz edukacyjny jest często ukryty w fabule bajki lub gry. Mini-komputery dla dzieci. Czytniki e-booków posiadające wbudowany syntezator mowy. Cel dydaktyczno-rozrywkowy, tzw. edutainment: niektóre symulatory lotnicze (np. X-Plane), gra Close Combat: First to Fight do szkolenia piechoty morskiej[39]. Gry o pewnych walorach dydaktycznych: ekonomiczne (np. seria SimCity) czy strategiczne (np. seria Civilization). Słowniki i encyklopedie w formie elektronicznej. Tablica 1.2: Podział oprogramowania edukacyjnego.

13 Rozdział 1. Nauczanie wspomagane komputerowo E-learning Określenie e-learning pojawiło się w użyciu ok roku w kontekście szkoleń prowadzonych na odległość poprzez korporacyjne sieci intranetowe i Internet[40]. Allison Rosett[41] definiuje e-learning jako usługi edukacyjne dostarczane poprzez siec komputerową, w których kurs jest umieszczony na serwerze, podłączonym do sieci Internet (World Wide Web). Wartość przemysłu e-learning na całym świecie szacuje się na ponad 48 milionów dolarów amerykańskich. Do 2006 roku 3.5 miliona studentów uczestniczyło korzystało ze zdalnego nauczania prowadzonego przez instytucje nauczania wyższego w samych tylko Stanach Zjednoczonych[42]. W latach zaobserwowano stabilny 12-14% zwiększenie ilości zapisów na studia prowadzone drogą wyłącznie zdalną, w porównaniu do 2% przyrostu ogólnej liczby rejestracji na studia wyższe w USA[42]. Raport sporządzony przez Ambient Insight Research[43] podaje, że w 2009 roku 44% osób na poziomie edukacji ponadgimnazjalnej w USA realizowało część lub wszystkie kursy w trybie zdalnym i sugeruje, że liczba ta wzrośnie do 81% przed końcem 2014 roku. W Strategii Rozwoju Kształcenia Ustawicznego do 2010 roku sporządzonej przez Ministerstwo Edukacji Narodowej i Sportu w Polsce kształcenie na odległość, w tym e- learning, zostało wymienione wśród działań koniecznych do realizacji priorytetów zwiększania dostępności i podnoszenia jakości kształcenia ustawicznego. Zostały przewidziane środki na rozbudowę infrastruktury potrzebnej do prowadzenia zajęć e-learningowych, opracowanie koncepcji polskiego modelu kształcenia na odległość oraz przygotowanie programów i obudowy dydaktycznej[44] Charakterystyka W tablicach 1.3 i 1.4 zostały zestawione najistotniejsze zalety i wady e-learningu[45]: Zaleta Większa skuteczność Uzasadnienie Analiza tysiąca badań nad zdalnym nauczaniem wykazała, że uczniowie z grup kształconych metodą w pełni zdalną osiągali wyniki statystycznie lepsze niż uczący się tradycyjnie. Najlepsze wyniki osiągały grupy w których łączono uczenie na odległość ze zwykłymi zajęciami (ang. blended learning)[46]. Tablica 1.3: Zalety e-learningu.

14 Rozdział 1. Nauczanie wspomagane komputerowo 10 Zaleta Szerszy dostęp Wygoda i elastyczność Oszczędność pieniędzy Oszczędność czasu Uzasadnienie Możliwość nauki z dowolnego komputera podłączonego do sieci, niezależnie od położenia geograficznego. Niższy koszt przeprowadzenia szkoleń on-line oznacza niższe opłaty dla uczącego się. Każdy może uczyć się w najwygodniejszym dla siebie momencie. Nie jest zmuszony do wybierania między zaplanowanym na dany dzień szkoleniem, a pilnymi obowiązkami, co jest ważne dla pracodawcy organizującego szkolenia e- learningowe dla swoich pracowników. Eliminujemy wydatki takie jak: honorarium trenera, wynajem ośrodka szkoleniowego, transport, zakwaterowanie, wyżywienie. Opłacalność jest jednakże dyskusyjna, zależy od użytych technologii, kosztu przygotowania materiałów i wzrasta wraz z liczbą osób uczących się. Nie ma potrzeby dojazdu na miejsce szkolenia. Czas szkolenia tradycyjnego powinien być dostosowany do tempa przyswajania wiedzy statystycznego uczestnika kursu. W przypadku kursów e-learningowych to uczący się decyduje o tym kiedy przejść do nowej jednostki materiału. Tablica 1.3: Zalety e-learningu. Wada Uzasadnienie Separacja od grupy Brak kontaktu twarzą w twarz z innymi uczniami i nauczycielem ogranicza więzi społeczne. Motywacja i wytrwałość muszą być nieustannie stymulowane. Wymagania sprzętowe Konieczność posiadania komputera podłączonego do Internetu. Wymagane umiejętności Uczeń musi umieć korzystać z komputera i Internetu. Podatność na rozpraszanie Inne treści zawarte w sieci WWW oraz brak nadzoru utrudniają skupienie uwagi na nauce. Wpływ predyspozycji ucznia Nauka w trybie zdalnym wymaga dyscypliny. Tablica 1.4: Wady e-learningu. W odpowiedzi na wymienione problemy wprowadza się szereg rozwiązań jak połączenia audio-video, monitorowanie postępu nauki, okresowe testy z przyswojonej wiedzy oraz

15 Rozdział 1. Nauczanie wspomagane komputerowo 11 fora dyskusyjne. Stosuje się także podeścia mieszane (ang. blended learning), które łączą tradycyjne zajęcia prowadzone przez nauczyciela z nauczaniem komputerowym Systemy e-learningowe Oprogramowanie wspomagające prowadzenie działań e-learningowych możemy podzielić wg. funkcjonalności do trzech podgrup, przedstawionych w tablicy 1.5. Typ systemu Funkcjonalność Systemy zarządzania szkoleniami Zarządzanie bazą studentów. Udostępnianie interfejsów (ang. Learning Management Systems, LMS) do nauki. Organizacja kursów: ka- lendarze, zapisy, płatności. Zbieranie wyników ucznia i sporządzanie raportów. Systemy zarządzające treścią szkoleniową (ang. Learning Content Management Systems, LCMS) Przygotowywanie kursów, udostępnianych później w LMS. Istnieją standardy reprezentacji obiektów treści takie jak SCORM[48]. Systemy synchronicznej komunikacji Wideokonferencje, udostępnianie wirtualnych (ang. Virtual Classroom) tablic i pulpitu komputera. Tablica 1.5: Podział systemów e-learningowych wg. funkcjonalności[47]. Wśród popularnych systemów LMS/LCMS znajdują się komercyjne Blackboard Learning System[49], CCNet[50], WebCT[51] (obecnie część Blackboard) oraz dostępne na wolnych licencjach Claroline[52], Sakai[53] czy Moodle[54]. Do trzeciej grupy można zaliczyć platformę WebEx[55] należącą do Cisco umożliwiającą przeprowadzanie wirtualnych spotkań na żywo. 1.5 Edukacja osób niepełnosprawnych Komputer jest istotnym narzędziem edukacji dla osób dotkniętych niepełnosprawnością. Wyposażony w odpowiednie oprogramowanie i odpowiednia urządzenia peryferyjne, umożliwia naukę i rozwój osobom, których możliwości fizyczne bądź intelektualne są ograniczone. Upowszechnianie edukacji komputerowej jest dla dzieci i młodzieży specjalnej troski szansa na wyrównywanie możliwości życiowych[56]. Oprogramowanie i stosowane rozwiązania są indywidualnie dopasowane do potrzeb i możliwości osoby niepełnosprawnej. Programy stosowane w kształceniu specjalnym można podzielić na:[36]

16 Rozdział 1. Nauczanie wspomagane komputerowo 12 Oprogramowanie rozwijające zdolności psychomotoryczne, korygujące braki w zakresie percepcji (wzrokowej, słuchowej) i sfery ruchowej. Aplikacje uczące podstawowych umiejętności, wspomagające naukę pisania, czytania czy elementarnej matematyki. Programy ułatwiające zdobywanie wiedzy, wykorzystujące multimedia i interakcję.

17 Rozdział 2 Metoda planowanego powtarzania W tym rozdziale zostaną zaprezentowane najpopularniejsze hipotezy dotyczące przyczyny procesu zapominania, będzie omówione tempo tego procesu i czynniki wpływające na jego dynamikę. W dalszej części zostanie podana definicja metody planowanego powtarzania i opis prostego systemu wykorzystującego pudełko z przegródkami oraz karteczki z pytaniami i odpowiedziami. 2.1 Proces zapominania Zgłębienie metody planowanego powtarzania wymaga zrozumienia procesu zapominania. Istnieją cztery główne teorie wyjaśniające ten proces[57]: Teoria upływu czasu Według teorii upływu czasu (ang. decay theory), pamięć osłabia się w wyniku upływu czasu i informacja staje się coraz trudniejsza do późniejszego odtworzenia[58]. W momencie, gdy uczymy się czegoś nowego, w naszym mózgu tworzony jest neurochemiczny ślad, który według tej teorii, zanika w funkcji czasu. Teoria interferencji Druga teoria bazuje na pojęciu interferencji, zachodzącej gdy nowo zapamiętane informacje powodują zapominanie wcześniejszych poprzez konkurowanie ze sobą[59]. Teoria utraty dostępu Teoria utraty dostępu (ang. cue-dependent forgetting lub retrieval failure theory) mówi, że w procesie zapominania nie tracimy danych, lecz zdolność ich wydobycia. Nie jesteśmy w stanie przypomnieć sobie faktu z powodu nieobecności doświadczenia zmysłowego, stanu emocjonalnego, otoczenia i innych wskazówek obecnych w chwili, w której został on zapisany w pamięci. 13

18 Rozdział 2. Metoda planowanego powtarzania 14 Teoria wypierania Stworzona przez Zygmunta Freuda teoria, w której twierdzi się, że zapominanie jest działaniem mechanizmu obronnego człowieka, który nie chce dopuszczać do świadomości pewnych przeżyć, myśli, faktów. W 1885 roku, niemiecki psycholog, Hermann Ebbinghaus odkrył, że tempo zapominania można opisać krzywą wykładniczą, której uproszczona formuła wygląda następująco[2]: R = e t S gdzie R jest ilością przechowywanej informacji, S wyraża siłą pamięci, zaś t jest czasem. Rysunek 2.1: Krzywa zapominania Ebbinghausa (źródło: [60]). Z krzywej Ebbinghausa (rys. 2.1) można odczytać, że po 30 minutach od momentu dostarczenia nowych informacji jesteśmy w stanie przypomnieć sobie mniej więcej połowę. Następnego dnia potrafimy odtworzyć około 30% faktów, a po upływie miesiąca już tylko jedną dziesiątą. Wyniki otrzymane przed Ebbinghausa pochodzą z eksperymentu, w którym zapamiętywane były nie mające znaczenia sylaby typu DAX, BOK i YAT. W praktyce, efektywność zapamiętywania i szybkość zapominania zależą od wielu czynników[3, 4]. Najważniejsze z nich zostały umieszczone w tablicy 2.1. Czynnik Uzasadnienie Rola materiału dla badanego Treści, które wiążą się z tym co znamy zapamiętujemy lepiej[3]. Tablica 2.1: Czynniki wpływające za trwałość informacji w pamięci.

19 Rozdział 2. Metoda planowanego powtarzania 15 Czynnik Uzasadnienie Reprezentacja informacji Daty i numery telefonów możemy zapamiętać łatwiej, gdy zastosujemy technikę polegającą na zamianie sekwencji liczb na ciąg obrazów i związaniu tych obrazów w łańcuch skojarzeń[3]. Ładunek emocjonalny Zdarzenia traumatyczne zapamiętujemy gorzej, ale zdolność ich przywoływania rośnie z upływem czasu przez pierwsze trzy lata, po czym spada zachowując się jak w normalnym procesie zapominania[5]. Stan psychofizyczny Stres i ilość snu wpływa na zdolność koncentracji i zapamiętywania[4]. Tablica 2.1: Czynniki wpływające za trwałość informacji w pamięci. Ebbinghaus odkrył także zjawisko polegające na tym, że ludzie i zwierzęta na dłużej zapamiętują elementy z listy, gdy uczą się ich rzadziej, w większych odstępach czasu, niż gdy powtarzają często w krótkim odcinku czasu[2]. Zachowanie to, nazywane efektem przerwy (ang. spacing effect), razem z krzywą zapominania leży u teoretycznych podstaw metody planowanego powtarzania. 2.2 Definicja Metoda planowanego powtarzania (ang. spaced repetition) jest techniką uczenia się, wykorzystującą zwiększające się odstępy czasu pomiędzy powtórkami wcześniej przyswojonego materiału, bazującą na działaniu efektu przerwy[61]. Na rysunku 2.2 przedstawiono przebieg nauki z wykorzystaniem tej metody. Korzystając z krzywej zapominania wyznaczamy moment, w którym poziom wiedzy zachowanej w pamięci osiąga najniższy dopuszczalny poziom i w tym dniu wykonujemy powtórkę. Wyznaczając termin kolejnego przejrzenia materiału skalujemy krzywą zapominania, uwzględniając efekt przerwy. Powtórki są wykonywane coraz rzadziej i w pewnym momencie przerwa jest na tyle długa, że nie zdążymy zapomnieć informacji wiedza została utrwalona na resztę życia.

20 Rozdział 2. Metoda planowanego powtarzania 16 Rysunek 2.2: Metoda spaced repetition (źródło: [62]). 2.3 Historia W 1932 roku prof. Cecil Alec Mace w książce Psychology of Study[63] zasugerował możliwość użycia planowanego powtarzania do usprawnienia nauki. 7 lat pozniej zostały przeprowadzone badania na grupie ponad 3600 uczniów, które wykazały efektywność metody w zapamiętywaniu faktów z nauk przyrodniczych[1]. W 1965 roku w Journal of General Psychology zostaje opublikowany artykuł przedstawiający wnioski z kontrolowanej próby na grupie studentów, mówiący o znacząco wyższych wynikach w grupie stosującej planowane powtórki[6]. Dwa lata później, Paul Pimsler opracował podstawy autorskiego systemu nauki języków obcych, bazujący na powtórkach i nagraniach dźwiękowych, który jest sprzedawany do dzisiaj[7]. Wreszcie, w 1973 roku zostaje stworzony pierwszy ogólnego zastosowania system do nauki metodą planowanego powtarzania autorstwa Sebastiana Leitnera[10]. 2.4 System Leitnera Informacje, będące przedmiotem nauki należy spisać na niewielkich kartonikach lub karteczkach tzw. fiszkach (z francuskiego fiche, po angielsku: flashcard). Na jednej stronie kartonika umieszczamy pytanie, na drugiej odpowiedź. Potrzebne jest pudełko z przegródkami lub kilka pudełek. Fiszki znajdujące się w przegródce pierwszej są powtarzane codziennie, w drugiej co 3 dni, a w trzeciej na przykład

21 Rozdział 2. Metoda planowanego powtarzania 17 Rysunek 2.3: System Leitnera. co tydzień. Powtórka polega na próbie odpowiedzi na pytanie zawarte na przedniej stronie fiszki i porównanie z zapisem na odwrocie. Jeśli odpowiedź zostanie udzielona poprawnie, fiszka jest przekładana do następnej przegródki w kolejności. W przypadku błędnej odpowiedzi lub jej braku wraca do najniszej przegródki. 2.5 Systemy komputerowe Współczesną alternatywą dla opisywania kartoników i zarządzania przegródkami stanowią komputerowe systemy planowanego powtarzania (ang. spaced repetition systems, SRS). Podobnie jak w systemie Leitnera, informacje są zapisywane w formie fiszek: użytkownik wprowadza pytanie i odpowiedź w osobne pola. Proces odpytywania także naśladuje odwracanie kartoników (rysunki 2.4 oraz 2.5). Rysunek 2.4: Prezentacja pytania w programie Anki. Większość aplikacji wyznacza powtórki bazując na systemie Leitnera[64 72], choć niektóre stosują bardziej złożone algorytmy i wielostopniowe skale oceniania trafności odpowiedzi[16, 19, 20, 73]. Prawie wszystkie to programy instalowane na komputerze [16, 19, 20, 66 74]. Nie powstało jeszcze zbyt wiele internetowych systemów tego typu [64, 65, 75].

22 Rozdział 2. Metoda planowanego powtarzania 18 Rysunek 2.5: Prezentacja odpowiedzi i ocenianie w programie Anki.

23 Rozdział 3 Reprezentacja wiedzy 3.1 Jednostka materiału Algorytm wyznaczający powtórki operuje na elementarnych jednostkach informacji. Jednostki te są małe, aby użytkownik nie potrzebował dużo czasu na ich przeczytanie i udzielenie odpowiedzi podczas prezentacji pytania na ekranie, ale też w celu oddzielenia wiedzy, którą zapamiętaliśmy lepiej, od tej, którą powinniśmy powtarzać częściej. Niżej został przedstawiony trójwarstwowy model jednostek informacji, który pozwala na elastyczne wprowadzanie faktów różnego typu do systemu Problem Istnieją przypadki użycia, których nie da się zrealizować przy pomocy istniejących systemów planowanego powtarzania. Zostały one wyszczególnione poniżej: Ucząc się słówek dog pies, chcę być odpytywany pies dog Pożądane byłoby, aby wprowadzając jedną parę słowo + tłumaczenie do bazy zostały dodane dwie jednostki, a w przypadku edycji wystarczyłoby dokonać zmiany w jednym miejscu. Należałoby też uniknąć sytuacji, gdy podczas jednej sesji nauki zostaną zaprezentowane obie jednostki. Jako student języków obcych chcę się uczyć gramatyki przez przykłady Przykładem może być zdanie z wykropkowanym miejscem, którą należy uzupełnić, aby otrzymać gramatycznie poprawne sformułowanie. Należy użyć wielu przykładów dla każdej reguły gramatycznej, w przeciwnym razie zapamiętamy przykład, lecz niekoniecznie regułę. Algorytm nie może planować powtórek każdego z przykładów z osobna ponieważ użytkownik mógłby wtedy otrzymać wiele przykładów 19

24 Rozdział 3. Reprezentacja wiedzy 20 dotyczących tej samej reguły do powtórzenia podczas jednej sesji nauki. Jeśli zostanie wprowadzonych 10 przykładów oznacza to 10-krotnie dłuższy poświęcony na powtórkę pojedynczego faktu, a informacja zwrotna do algorytmu w postaci oceny nie będzie wiarygodna dla wszystkich poza pierwszym przykładem. Jako student geografii chcę się uczyć listy najdłuższych rzek świata W tym przypadku informacją jaką wprowadzamy jest uporządkowana lista elementów. W przypadku odpowiednio dużej długości bardzo trudna do zapamiętania bez użycia technik pamięciowych. Istnieje metoda pozwalająca na naukę tego typu informacji za pomocą fiszek: mając listę A, B, C, D należy stworzyć jednostki, B, C, D, A,, C, D, A, B,, D, A, B, C,. Jeśli lista zawiera wiele elementów sporządzenie wszystkich jednostek wymaga znacznego nakładu pracy. Gdyby okazało się, że na liście jest błąd to konieczne byłoby poprawienie wszystkich jednostek. Znacznie wygodniej, gdyby była możliwa edycja oryginalnej listy i wszystkie jednostki uległyby uaktualnieniu. Jako twórca kursu chciałbym przetłumaczyć go na inne języki Najprostszym rozwiązaniem byłoby stworzenie kopii kursu z wszystkimi jednostkami i przetłumaczenie treści tych tekstów, które powinny zostać przetłumaczone, czyli w przypadku kursu języka obcego tłumaczenia w języku ojczystym. Pociągałoby to jednak późniejsze trudności w synchronizacji kilku tłumaczeń, gdy jedna jednostka została dodana do jednego kursu, a nie istnieje w drugim i choć oba kursy widnieją pod identycznym szyldem zawierają inną treść. Dodatkowo niektóre treści takie jak w przypadku kursu słownictwa brzmienie wyrazu w języku obcym są wspólne dla wszystkich tłumaczeń. Rozwiazaniem pozbawionym tej wady byłoby tworzenie jednostek z powiązanymi tłumaczeniami Proponowane rozwiązanie Jedna z bardziej dopracowanych aplikacji planowanego powtarzania, Anki[19], implementuje pierwszy ze wspomnianych przypadków użycia, wprowadzając dwa pojęcia: fakty i karty. Fakty mogą mieć dowolną liczbę pól. Na przykład, przy nauce języka obcego, pojedynczy fakt może mieć następujące pola i treść[29]: Pole 1: Słowo w języku obcym gâteau Pole 2: Wymowa plik dźwiękowy z wymową słowa gâteau Pole 3: Znaczenie w języku ojczystym ciasto

25 Rozdział 3. Reprezentacja wiedzy 21 Użytkownik może następnie definiować karty, które testują znajomość informacji zawartych w każdym fakcie. Można stworzyć jedną kartę, która w polu z pytaniem będzie miała wyrażenie w języku obcym, a jako odpowiedź wymowę oraz znaczenie w języku ojczystym oraz drugą, w której wartości w polach będą zamienione. Karty są powiązane z faktem i edycja uaktualnia wszystkie karty. Algorytm zarządza kartami. Ten dwuwarstwowy model ma większe możliwości niż podejście stosowane przez pozostałe programy, jednak nie pozwala na realizację 2, 3 i 4-tego przypadku użycia. Aby obsłużyć wszystkie scenariusze stworzono nowy model jednostek przedstawiony na rysunku 3.1. Rozróżniono trzy pojęcia: jednostki treści wprowadzane przez użytkownika, jednostki zarządzane przez algorytm planowania powtórek oraz jednostki wyświetlane na ekranie podczas nauki. Użytkownik aplikacji zarządza tylko obiektami najwyższej warstwy jednostkami treści zaś to w jaki sposób są one zamieniane na jednostki niższych poziomów zależy od przechowywanej treści. 1 Tłumaczenie jedn. treści 1..* 1..* Jednostka powtarzania 0..* +język 1 1 Jednostka treści * Wartość pola tłum. 0..* Wartość pola nietłum. 0..* 1..* Jednostka prezentacji 0..* 0..* 0..* 1 1 Typ jednostki treści 1 1 Pole +tłumaczone: boolean 0..* 1..* Szablon jedn. powtarzania +warunek aktywności 1 0 Pole tekstowe Pole ilustracji 1..* Szablon jedn. prezentacji 1 Pole dźwiękowe +kod HTML +warunek aktywności Rysunek 3.1: Proponowany model jednostek materiału. Wprowadzono typy jednostek treści, które może definiować administrator bądź użytkownik. Przykładowymi typami może być klasyczne pytanie z odpowiedzią, lista, reguła z wieloma przykładami czy ćwiczenie wielokrotnego wyboru. Typ posiada listę pól, które powinny zostać wypełnione. Pola mogą być oznaczone jako podlegające tłumaczeniu. Na podstawie zawartości pól są tworzone jednostki powtarzania i jednostki prezentacji z szablonów zdefiniowanych w typie jednostki treści. Szablony zawierają warunek zapisany jako funkcja przyjmująca wartości pól jednostki treści określający kiedy jednostka powtarzania lub prezentacji ma być aktywna. Szablon jednostki prezentacji posiada kod HTML, w którym znajdują się odwołania do wartości pól jednostki treści.

26 Rozdział 3. Reprezentacja wiedzy 22 Wspomniane scenariusze mogą zostać zrealizowane w proponowanym modelu w następujący sposób: Ucząc się slówek dog pies, chcę być odpytywany pies dog Podstawowy typ jednostek treści Pytanie i odpowiedź zawiera trzecie pole Włącz pytanie odwrotne, które może być zaznaczone lub odznaczone. Posiada także zdefiniowane dwie jednostki powtarzania: podstawową i odwróconą. Jednostka odwrócona jest aktywna wtedy i tylko wtedy, gdy pole Włącz pytanie odwrotne zostało zaznaczone. Każda z jednostek powtarzania posiada jedną jednostkę prezentacji, które w przypadku drugiej jednostki powtarzania zawiera pytanie z odpowiedzią zamienione miejscami. Dodający pytanie powinien stwierdzić czy fakt może być odpytywany w jedną stronę. Na przykład, nie ma wielkiego sensu odpytywanie w drugą stronę w powtarzaniu dowodów matematycznych. Umiejętność nazywania twierdzeń, których dowody są prezentowane na ekranie nie jest zbyt wartościowa w porównaniu z możliwością przywołania z pamięci dowodu każdego twierdzenia, którego nazwę otrzymamy. Każdy wariant pytania byłby osobno zarządzany przez algorytm. W aplikacji powinna zostać wprowadzona logika, aby w czasie jednej sesji nie zostały zaprezentowane ćwiczenia z dwóch jednostek powtarzania należących do tego samego obiektu treści, ponieważ są one powiązane zawartością i udzielona ocena dla drugiej jednostki nie byłaby wiarygodna. Jako student języków obcych chcę się uczyć gramatyki przez przykłady Aby umożliwić taką funkcjonalność należałoby stworzyć typ jednostki treści, zawierający pola na wprowadzenie polecenia wspólnego dla wszystkich przykładów oraz skończoną liczbę par pól pytanie oraz odpowiedź, taką aby zapewnić miejsce na wystarczającą liczbę przykładów, np. 10. Jednostka treści posiadałaby wtedy jedną jednostkę powtarzania z dziesięcioma ćwiczeniami, każde ćwiczenie zawierałoby w polach pytanie i odpowiedź dane z odpowiednich pól obiektu treści, a warunek aktywności ćwiczenia byłby tak ustawiony, aby nie było wyświetlane, gdy odpowiadające pola w obiekcie treści są puste (wprowadzono mniej niż 10 przykładów). Aplikacja przy planowaniu kolejnej powtórki danej jednostki powtarzania powinna określać, która jednostka prezentacji ma zostać wyświetlona. W zależności od implementacji, wybór może być losowy lub podyktowany kolejnością przykładów w jednostce treści. Jako student geografii chcę się uczyć listy najdłuższych rzek świata Scenariusz bardzo podobny do powyższego, jednakże zamiast jednej jednostki powtarzania z wieloma jednostkami prezentacji mamy wiele jednostek powtarzania

27 Rozdział 3. Reprezentacja wiedzy 23 tworzonych z jednej jednostki treści. Każda ma jedną jednostkę prezentacji, w której są wszystkie elementy listy z jednym brakującym do odgadnięcia np. A,, C, D dla drugiej jednostki powtarzania. Jako twórca kursu chciałbym przetłumaczyć go na inne języki Pola w jednostkach treści mogą być oznaczone jako podlegające tłumaczeniu. Wszystkie tłumaczenia są przechowywane razem z jednostką. W zależności od ustawień językowych zdefiniowanych przez użytkownika aplikacja podczas wyświetlania materiału powinna wyświetlać zawartość w odpowiednim języku. 3.2 Kategoryzacja treści Dostępne systemy planowanego powtarzania to w większości aplikacje użytku osobistego, nie pomyślane pod kątem udostępniania materiałów innym użytkownikom. Ponieważ uczący się jest jednocześnie osobą, która wprowadzała dane do programu, zna zawartość swojej bazy i potrafi odszukać wcześniej wprowadzoną jednostkę materiału wpisując tekst w pole wyszukiwania. Publiczna baza materialów wymaga bardziej rozbudowanego sposobu kategoryzacji materiałów, aby umożliwić nowym odwiedzającym wygodne przeglądanie zasobów Problem Jednostki materiału należy uporządkować i sklasyfikować tak aby umożliwić następujące czynności: Nadanie kolejności jednostkom Z wymienionych w tekście aplikacji tylko SuperMemo[16] posiada funkcję zmiany kolejności jednostek. W przypadku nauki słownictwa, najpopularniejszego zastosowania metody, dokładna kolejność pojawiania się nowych słówek rzeczywiście nie ma wielkiego znaczenia. Jeśli jednak powtarzamy dowody matematyczne to bardzo pożądane jest by lematy potrzebne do udowodnienia większego twierdzenia były przedstawione użytkownikowi przed twierdzeniem. Należy zaznaczyć, że zdefiniowanana kolejność powinna być używana tylko przy pierwszej prezentacji materiału. Później kwestia wyznaczenia terminu powtórki spoczywa na algorytmie, który jak najbardziej może zaplanować kolejną prezentację twierdzenia przed następną prezentacją lematu, jeśli twierdzenie pamiętamy gorzej niż lemat. Ponowne użycie jednostek Analizując zawartość istniejących serwisów z fiszkami ([64, 65, 76]) zauważymy,

28 Rozdział 3. Reprezentacja wiedzy 24 że te same fiszki wchodzą w skład wielu zestawów fiszek. Raz dodane fakty nie są ponownie używane. Tymczasem potrzebując wprowadzić złożone twierdzenie matematyczne przydatna byłaby możliwość przeszukania bazy i dodania już istniejącej jednostki do innego zestawu. Dostępne systemy z centralnymi bazami danych ([64, 65, 76]) pozwalają na wyszukanie zestawu fiszek i jego naukę przez kilku użytkowników, lecz nie na odnalezienie i ponownego użycie konkretnej fiszki w innym zestawie. Wygodne przeglądanie materiałów Można wyróżnić dwie metody lokalizacji materiału w bazie. Pierwszy ma miejsce gdy użytkownik odwiedza serwis chcąc się uczyć konkretnego przedmiotu, jest nakierowany znalezienie określonych materiałów, o których posiada pewne informacje i potrafi wprowadzić pasujące słowo kluczowe do wyszukiwarki umieszczonej na stronie, aby jak najszybciej dotrzeć do celu. Inny schemat działania cechuje osobę, który nie wie dokładnie czego szuka i odwiedziła serwis, aby zobaczyć jakie treści ma do zaoferowania. Może też mieć ogólne pojęcie czym jest zainteresowana, lecz nie jest w stanie sformułować na tyle precyzyjnego pytania w wyszukiwarce, aby zwróciłoby pożądane wyniki. Utrzymanie porządku wśród milionów jednostek tworzonych przez użytkowników umożliwiającego wygodne przeglądanie nie jest sprawą prostą, o czym przekona się każdy odwiedzający FlashcardExchange[65], serwis który wykorzystuje etykiety do grupowania podobnych treści i tzw. chmury etykiet do nawigacji Ontologie Jednym z rozwiązań klasyfikacji byłoby utworzenie taksonomii, czyli zbioru kategorii uporządkowanych w hierarchiczną strukturę. Taksonomie są szczególną formą ontologii, formalnej reprezentacji obszaru wiedzy, składającej się z pojęć, ich właściwości i opisu relacji między nimi[77]. Przy takim modelu istniałaby hierarchia kategorii odpowiadająca dziedzinom naukowym, do których byłyby przyporządkowane fakty w postaci jednostek materiału lub całych kursów. Tak działają katalogi biblioteczne, zakładające, że dla każdej nowej książki istnieje wcześniej zaplanowane logiczne miejsce, nawet jeszcze zanim książka została wydana. Niestety, za pomocą aplikacji planowanego powtarzania można się uczyć dowolnych faktów i nie jest wykonalne stworzenie takiego katalogu. Można rozważyć udostępnienie możliwości tworzenia nowych kategorii w trakcie dodawania materiałów przez samych użytkowników, lecz nie można zakładać, że treść zostanie prawidłowo sklasyfikowana jeśli w ogóle można mówić o prawidłowej klasyfikacji. Anatomia jest działem biologii,

29 Rozdział 3. Reprezentacja wiedzy 25 ale student medycyny będzie jej szukał w kategorii Medycyna. Geograf szukanie informacji na temat kotów afrykańskich rozpocznie od kategorii Afryka, w całkowicie innym miejscu niż biolog. Shirky[78] wymienia cechy obszarów, w których ontologiczna klasyfikacja się sprawdza: Nieduży zbiór informacji Naturalne i oczywiste kategorie Stabilne przynależności elementów Ograniczony zbiór elementów Wyraźne granice przynależności Jako przykład podaje układ okresowy pierwiastków: tylko ok. 100 elementów, kategorie są jasno określone za pomocą własności fizycznych, liczba protonów nie zmienia się, tylko pierwiastki mogą zostać sklasyfikowane, nie ma mieszanych pierwiastków itd. Poza charakterystyką obszaru istotne jest kto klasyfikację będzie tworzył i używał. Pożądana grupa ludzi to: Eksperci katalogowania Autorytatywne źródło osądzania Skoordynowani użytkownicy Specjaliści w danej dziedzinie Przytoczonym przykładem jest DSM-IV [79], klasyfikacja zaburzeń psychicznych, mająca pozwalać psychiatrom w Stanach Zjednoczonych na wyznaczenie jednakowej diagnozy na temat choroby psychicznej na podstawie zbioru objawów. Istnieje autorytatywne źródło w postaci Amerykańskiego Towarzystwa Psychiatrycznego, które określa które symptomy cechują daną chorobę. Towarzystwo to posiada ekspertów od katalogowania. Użytkownicy są także specjalistami w swojej dziedzinie i potrafią się poruszać w katalogu pełnym terminologii, która byłaby niezrozumiała dla reszty społeczeństwa. Byłoby trudno przypisać którąkolwiek z wymienionych charakterystyk bazie materiałów publicznie dostępnego systemu planowanego powtarzania. Zbiór wiedzy jest rozległy, nie ma naturalnych kategorii, a użytkownikiem może zostać każdy.

30 Rozdział 3. Reprezentacja wiedzy Folksonomie Folksonomia (ang. folksonomy) jest systemem klasyfikacji opartej na grupowym tworzeniu i zarządzaniu etykietami (tagami) w celu kategoryzowania zawartości[80]. Ten system klasyfikacji jest używany przez wiele popularnych serwisów internetowych, między innymi Del.icio.us[81] i Flickr[82]. Serwis Del.icio.us jest narzędziem służącym do organizacji adresów stron internetowych. Pozwala na tworzenie publicznej listy ulubionych witryn, kategoryzację ich za pomocą słów kluczowych i udostępnianie tej kolekcji innym użytkownikom serwisu. Del.icio.us nie jest jedynym serwisem, który umożliwia zarządzanie zakładkami przez internet. To co go odróżnia od innych jest użycie słów kluczowych nadawanych przez użytkownika jako podstawowego narzędzia do organizacji treści. Te słowa kluczowe, nazywane tagami pozwalają użytkownikom na opisywanie treści za pomocą dowolnego ciągu znaków. Istotną cechą folksonomii jest, że składa się z płaskiej przestrzeni nazw: nie ma hierarchii ani żadnych jawnie określanych relacji pomiędzy etykietami[83]. Ze swobodą dowolnego oznaczania treści wiążą się konsekwencje. Najważniejsze problemy, z którymi należy się liczyć implementując system tagowania to: Synonimy Ludzie używają różnych nazw do opisywania tych samych rzeczy. Klasycznym przykładem są tagi mac, macintosh i apple. Wszystkie odnoszą się do materiałów związanych z komputerami Apple Macintosh. Problemem są także różne formy gramatyczne wyrazów oraz rozróżnianie liczby pojedynczej i mnogiej[83]. Homonimy Użytkownicy systemu mogą nadawać tą samą etykietę różnym treściom. Na przykład pod etykietą jaguar możemy znaleźć zarówno informacje na temat drapieżnego kota jak i brytyjskiej marki samochodów. Etykiety składające się z wielu słów Del.icio.us, w przeciwieństwie do serwisu Flicker, nie pozwala na użycie spacji w etykietach. Prowadzi to do sytuacji, w której użytkownicy zlepiają słowa w jedno lub używają różnych separatorów. Obserwuje się także próby tworzenia hierarchii w nazwie etykiety np. języki/angielski[83]. Etykiety w różnych językach Można oznaczać te same treści używając określeń w różnych językach. Oznacza to, że na liście tagów użytkownik może zobaczyć jednocześnie matematyka, math, Mathematik, matemáticas i. Całkiem

31 Rozdział 3. Reprezentacja wiedzy 27 prawdopodobne, że w aplikacji dostępnej globalnie większość tagów będzie po angielsku. Powstaje problem jak w takiej sytuacji odfiltrować tagi, tak aby osoba znająca tylko język polski nie widziała opisów w obcym języku. Powyższe kwestie są znane i zaproponowano techniki pozwalające im zaradzić, między innymi: WordNet i kontrolowanie słownictwo (ang. controlled vocabullary) Leksykalne bazy danych, takie jak WordNet, dostarczają informacje o synonimach i hiponimach (relacji uszczegółowienia i generalizacji, człowiek jest hiponimem słowa organizm ). Można je wykorzystać do wykrywania wyrazów bliskoznacznych oraz do budowania hierarchii pojęć[84, 85]. Za pomocą słowników też można określić język etykiety nie bezbłędnie, ponieważ czasami ten sam wyraz odnajdziemy w kilku słownikach (np. chat, czyli konwersacja, w języku francuskim znaczy kot ), ale znając preferencje językowe użytkownika z dużym prawdopodobieństwem. WordNet został stworzony jako baza dla języka angielskiego, lecz podobne projekty są rozwijane dla wielu innych języków. Statystyczna analiza relacji pomiędzy tagami Opracowano metody statystycznej analizy przestrzeni tagów w oparciu o treści, które opisują[86]. Techniki te bazują na założeniu, że jeśli dwie etykiety odnoszą się do tego samego zasobu to zachodzi relacja między nimi. Flickr[82], popularny serwis umożliwiający publikację fotografii w internecie, grupuje podobne tagi w klastry (rysunek 3.2). Etykiety wedding, bride i marriage są zgrupowane razem i użytkownik może przejść do strony zawierającej zdjęcia oznaczone jednym z tych słów, bez potrzeby odwiedzania trzech stron. Rysunek 3.2: Klastry tagów w serwisie Flickr[82].

32 Rozdział 3. Reprezentacja wiedzy 28 Łączenie folksonomii z ontologiami Istnieją algorytmy takie jak FLOR (FoLksonomy Ontology enrichment), który pobiera zbiór tagów (pojedynczych lub klastrów stworzonych drogą statystycznej analizy folksonomii) i automatycznie wiąże je z odpowiednimi semantycznymi jednostkami (klasami, relacjami i instancjami) zdefiniowanymi w ontologiach, obsługując dostępne w internecie ontologie zindeksowane w Watson Semantic Web Gateway oraz WordNet. Etykiety zostają automatycznie powiązane z semantycznie sąsiednimi pojęciami w ontologii. Na przykład, dla etykiety pies, oprócz relacji mówiącej, że Pies JestPodklasą Mięsożerca, zostanie odczytana wiedza, że Mięsożerca JestRozłącznyZ Roślinożerca, na podstawie odpowiednich stwierdzeń w ontologii[87, 88] Proponowane rozwiązanie Proponowanym rozwiązaniem kategoryzacji baz materiałów w systemach planowanego powtarzania jest wykorzystanie folksonomii zaprojektowanej w sposób umożliwiający zapisanie informacji o relacjach w zbiorze tagów, uzyskanych na przykład za pomocą technik wymienionych wyżej. Kurs 0..* Tłumaczenie etykiety * Element kursu +pozycja: integer +język +nazwa 0..* 1..* 1 Etykieta 0..* Synonim +nazwa 0..* 0..* 1 Aspekt 1 1 Jednostka treści 0..* +nazwa 1..* Tłumaczenie aspektu +język +nazwa Rysunek 3.3: Proponowany model kategoryzacji i uporządkowania jednostek oparty na folksonomii. Rysunek 3.3 przedstawia model w którym kurs zawiera uporządkowaną listę elementów. Elementem kursu jest jednostka treści z przypisanym położeniem na liście. Ta sama jednostka treści może w ten sposób należeć do wielu kursów eliminując problem duplikacji. Etykietami są oznaczane zarówno kursy jak jednostki treści, aby możliwe było odszukanie istniejących jednostek przy tworzeniu nowego kursu. Sugerowane jest automatyczne

33 Rozdział 3. Reprezentacja wiedzy 29 oznaczanie jednostek etykietami kursów do których są dodawane, gdyż trudno oczekiwać od użytkownika indywidualnego tagowania każdej jednostki. Etykiety mogą posiadać wiele tłumaczeń, pozwalając na logiczne połączenie określeń w różnych językach i wybieranie do wyświetlenia tylko tych, które są zrozumiałe dla użytkownika. Z każdym tłumaczeniem można powiązać dowolną ilość synonimów. W celu rozróżnienia homonimów i opcjonalnego grupowania tagów wprowadzono pojęcie aspektu, który jest przypisany do etykiety. Problematyczny jaguar byłby nazwą dwóch tagów, jeden z nich posiadałby aspekt motoryzacja, zaś drugi zwierzę (w podobny sposób są rozróżniane artykuły w Wikipedii o tym samym tytule: [89, 90]). Popularnym sposobem przedstawiania zbioru etykiet są tzw. chmury tagów (ang. tag clouds). Ten sposób nawigacji przyjął serwis FlashcardExchange[65] (rys. 3.4). Chmura przedstawia najpopularniejsze tagi posortowane alfabetycznie. Wielkość czcionki jest proporcjonalna do ilości elementów oznaczonych daną etykietą. Rysunek 3.4: Chmura tagów w serwisie FlashcardExchange[65]. Jeśli osoba odwiedzająca serwis jest świadoma jakich materiałów szuka, będzie w stanie szybko odnaleźć odpowiedni tag w chmurze po nazwie dzięki kolejności alfabetycznej. Jednakże w sytuacji, w której potencjalny użytkownik chce się dopiero dowiedzieć co serwis ma do zaoferowania, ma utrudnione zadanie. W celu poprawy czytelności chmury tagów grupuje się powiązane tagi umieszczając je koło siebie w chmurze[86, 91]. Rysunek 3.5: Chmura tagów po zastosowaniu algorytmu klastrowania (źródło: [91]).

34 Rozdział 3. Reprezentacja wiedzy 30 Jak widać na ilustracji 3.5, klastrowanie wiąże etykiety stosowane razem lub do tych samych materiałów. Niestety nie jesteśmy w stanie za pomocą statystycznej analizy przestrzeni tagów i tagowanych obiektów zgrupować wizualnie nazw wszystkich języków programowania, dziedzin nauki czy języków obcych, ponieważ elementy w każdej z tych grup są rozłączne: nie spotkamy w materiałach do języka angielskiego elementów oznaczonych tagiem Niemiecki. Proponowaną alternatywą jest przypisanie grup do etykiet w trakcie tworzenia tych ostatnich. Przy próbie oznaczenia treści za pomocą etykiety, która nie istnieje, użytkownik mógłby być proszony o wybranie jednego z listy wcześniej zdefiniowanych aspektów (rys. 3.6). Ta informacje mogłaby być następnie wykorzystywania do uporządkowania listy tagów wyświetlanej przy przeglądania kursów i jednostek (3.7). Rysunek 3.6: Okno dialogowe wyświetlane przy tworzeniu nowej etykiety w systemie RapidStudy. Przypisanie aspektów umożliwia realizację tzw. wieloaspektowej nawigacji (ang. faceted navigation). Wieloaspektowe przeglądanie jest popularnie stosowane przez sklepy internetowe, takie jak Amazon.com (ilustracja 3.8). Kategorie, którymi są oznaczone produkty zostały pogrupowane wg. aspektów odpowiadającym różnym kryteriom wyszukiwania, takie jak przekątna ekranu, technologia i marka w przypadku telewizorów. Obok nazwy kategorii widnieje liczba mówiąca ile przedmiotów do niej należy. Wieloaspektowe przeglądanie w systemie wykorzystującym etykiety polegałoby na implementacji filtrowania z użyciem wielu tagów jednocześnie. Po otwarciu katalogu kursów użytkownik widziałby listę najpopularniejszych etykiet. Najpopularniejsze, czyli użyte do oznaczenia największej ilości elementów, będą etykiety ogólne, takie jak Język angielski czy Matematyka. Wybranie Matematyka spowodowałoby, że wyświetlone zostaną kursy matematyczne, a lista tagów będzie uaktualniona, żeby wyświetlała zbiór

35 Rozdział 3. Reprezentacja wiedzy 31 Rysunek 3.7: Etykiety pogrupowane wg. aspektów na ekranie przeglądania kursów w RapidStudy. Rysunek 3.8: Wieloaspektowa nawigacja w sklepie Amazon.com.

36 Rozdział 3. Reprezentacja wiedzy 32 najpopularniejszych tagów, którymi są oznaczone kursy matematyczne. Jeśli kursy będą prawidłowo oznaczone, wśród nich powinna się znaleźć Algebra i Analiza. Zaznaczenie któregokolwiek z nich zawęziłoby wyniki do materiałów opisanych jednocześnie etykietami Matematyka i Algebra oraz odświeżyłoby listę tagów do tych używanych łącznie z Matematyką i Algebrą, umożliwiając dalszą eksplorację. Tego typu filtrowanie z użyciem wielu tagów dawałoby użytkownikowi złudzenie istnienia hierarchii, gdyż nawigacja odbywa się w podobny sposób. Przedstawiowny sposób klasyfikacji i nawigacji został zaimplementowany w systemie RapidStudy. W stworzonej aplikacji każdy kurs ma także przypisaną szatę graficzną, która jest wykorzystywana przy wyświetlaniu jednostek podczas nauki. Dzięki temu, jest możliwe definiowanie wyglądu wszystkich jednostek w jednym miejscu, a ta sama jednostka treści należąca do kilku kursów może być odmiennie prezentowana w zależności od kursu, który subskrybuje użytkownik.

37 Rozdział 4 Algorytm wyznaczania powtórek Prawdopodobnie największą zaletą elektronicznych fiszek nad papierowymi jest wygoda wynikająca z automatycznego zarządzania powtórkami przez program. Sposób planowania powtórek jest istotny, gdyż ma wpływ na ilość czasu, który użytkownik spędza powtarzając oraz na efekty nauki. Jeśli implementowany algorytm wyznacza powtórki zbyt często, będziemy niepotrzebnie tracić czas na powtarzanie rzeczy, które (jeszcze) dobrze pamiętamy. Zaplanowanie powtórki zbyt późno może spowodować spadek ilości przechowywanej w pamięci wiedzy do nieakceptowalnego poziomu lub znaczne wydłużenie czasu przypominania odpowiedzi na prezentowane pytanie. 4.1 Problem Komputerowe systemy planowanego powtarzania implementują różne algorytmy wyznaczające optymalne odstępy pomiędzy kolejnymi wyświetleniami materiału. Te algorytmy to: System Leitnera Zdecydowana większość istniejących aplikacji bazuje na systemie Leitnera[64 72]. Gdy liczba jednostek materiału jest duża, rzędu kilku tysięcy i więcej, system Leitnera z ograniczoną liczbą pudełek i odgórnie ustalonymi długościami przerw przestaje się sprawdzać. Bardziej złożone algorytmy, które przyjmują więcej danych wejściowych, są w stanie precyzyjniej oszacować moment zapomnienia i wyznaczyć bardziej odległe i lepiej rozłożone w czasie powtórki. SuperMemo SM-2 Algorytm SM-2 (SuperMemo-2) został opisany w 1990 roku w pracy magisterskiej 33

38 Rozdział 4. Algorytm wyznaczania powtórek 34 P. Woźniaka[24, 25] i jest dostępny na stronie internetowej programu SuperMemo[27]. Autorzy dwóch dostępnych na otwartych licencjach aplikacji, Anki[19] oraz Mnemosyne[20], podjęli się implementacji tego algorytmu. Algorytm SM-2 jako wartość wejściową przyjmuje ocenę znajomości jednostki materiału w skali 0-5 i na jej podstawie uaktualnia współczynnik łatwości jednostki (easiness factor, E-factor). Przemnożenie współczynnika łatwości przez długość poprzedniej przerwy daje długość następnej[27]. SuperMemo SM-3 i nowsze Ostatnim algorytmem z rodziny SuperMemo, o którym są zamieszczone informacje jest SM-11, używany w SuperMemo 2002 i aż do SuperMemo 2006[26]. Stopień skomplikowania oraz niewielka ilość opublikowanych detali uniemożliwia jego implementację przez inne programy. Autorzy Anki i Mnemosyne zgodnie poddają pod wątpliwość korzyści, które mają przynosić nowsze wersje algorytmów Super- Memo. Twórca Anki systemu niegdyś opartego na algorytmie SM-5 twierdzi, że wersje od SM-3 w górę są podatne na błędy w obliczaniu długości przerw[28, 29]. Począwszy od SM-3 przy wyznaczaniu terminu powtórki oprócz oceny potwarzanej jednostki są brane pod uwagę także wyniki innych jednostek. Choć takie rozwiązanie może dawać lepsze oszacowania przy elementach o zbliżonej trudności i poprawnym użyciu systemu oceniania, równie dobrze może skutkować wyznaczaniem powtórki zbyt wcześnie lub zbyt późno (gdy poprzedzające elementy były trudniejsze lub łatwiejsze). Sieci neuronowe Jeden z komercyjnych programów o zamkniętych źródłach używa sztucznej sieć neuronowej, która ma stopniowo uczyć się krzywej zapominania użytkownika[73]. Argumenty przeciwko nowszym algorytmom z rodziny SuperMemo tyczą się także sieci neuronowych: informacje zwrotne przekazane do procedury uczenia sieci neuronowej nie muszą odzwierciedlać zdolności pamięciowych studenta, lecz trudność materiału. Jedyny algorytm, który wytrzymuje krytykę, SM-2[27], ma już dwie dekady. W obu programach, które go wykorzystują było konieczne wprowadzenie poprawek do oryginalnego algorytmu[28, 29]. Poniżej zostały spisane trzy problemy, które będą podjęte w tej pracy. Wszystkie wymienione algorytmy dzielą wspólną cechę: wyznaczając powtórkę nie biorą pod uwagę rozkładu już zaplanowanych powtórek. W efekcie zdarza się, że na jeden dzień zostanie zaplanowanych bardzo wiele powtórek, a innego dnia wcale. Bywa także, że na ten sam termin zostaje wyznaczonych dużo trudnych jednostek. W obu sytuacjach czas

39 Rozdział 4. Algorytm wyznaczania powtórek 35 spędzony przy programie się wydłuża, a użytkownik jest narażony na większy wysiłek niż oczekiwał. Byłoby pożądane utrzymać obciążenie powtórkami na jednym poziomie. Obecnie stosowane algorytmy tego nie zapewniają. Niektóre rodzaje materiału, takie jak liczby, zbiory czy wyliczenia, są z natury trudne do zapamiętania. Z kolei pewne informacje choć nie sprawiają problemu jednej osobie, dla innej mogą być nie do przyswojenia. Zasada Pareto[92] ma zastosowanie w systemach planowanego powtarzania: niewielka porcja trudnego materiału może pochłaniać większą część czasu nauki. Źle sformułowane jednostki, które wracają w częstych powtórkach, są czasami określane mianem pijawek (ang. leeches). Skutecznym środkiem na większość pijawek jest przeformułowanie materiału, tak by stał się łatwiejszy do zapamiętania[93] lub wykorzystanie technik pamięciowych[3]. Jednakże czasami powodem nie jest trudność jednej jednostki, lecz inne aspekty, takie jak interferencja pomiędzy podobnymi jednostkami: gdy w tym samym momencie zostaną zaprezentowane użytkownikowi dwa podobne wyrazy z języka obcego to mogą się one mylić użytkownikowi. O ile jest wykonalne wyznaczanie podobieństwa pomiędzy jednostkami, korzystając z takich algorytmów jak odległość Levenshteina[94] czy Metaphone[95] lub Soundex[96], porównując jednostki pod względem zapisu i fonetycznie, nie ma sposobu na wykrycie wszystkich interferencji i skojarzeń, bytujących w umyśle użytkownika. Nie jest także możliwe wykrycie sytuacji w której uczący nie rozumie materiału i próbuje zapamiętać coś co jest dla niego zlepkiem znaków czy wyrazów, których nie może powiązać z wiedzą, którą już posiada. Eliminacja pijawek jest wyzwaniem dla algorytmów i na chwilę obecną tylko komercyjna wersja SuperMemo oferuje podobną funkcjonalność[97]. Trzecią wadą SM-2 jest nieuwzględnienie priorytetów użytkownika. Pewne materiały mogą być dla uczącego istotniejsze niż inne. Przydatną opcją byłaby możliwość ustawienia wyższego priorytetu dla tych materiałów skutkująca częstszym wyznaczaniem powtórek. 4.2 Proponowane rozwiązanie Wspomniane wady zostały rozwiązane w nowym algorytmie SSRF (Satisficing Spaced Repetition Formula), opracowanym przez Dariusza Laskę. Algorytm został udostępniony przez autora w celu implementacji w systemie RapidStudy i przedstawienia w niniejszej pracy. Stworzony system planowanego powtarzania jest pierwszym, który go wykorzystuje, a poniższy tekst jest pierwszym sformalizowanym opisem algorytmu.

40 Rozdział 4. Algorytm wyznaczania powtórek Opis algorytmu SSRF wykazuje zasadnicze różnice koncepcyjne w stosunku do SM-2: algorytm SM-2 szuka idealnego dnia powtórki, podczas gdy SSRF szuka wystarczająco dobrego dnia w zbiorze satysfakcjonujących terminów. SSRF wyznacza przedział akceptowalnych wartości interwału (długości przerwy między powtórkami wyrażonej w liczbie dni), po czym wybiera optymalny dzień powtórki minimalizując tzw. obciążenie kognitywne (ang. cognitive load[98]), rozumiane jako sumaryczny wysiłek umysłowy związany z nauką danego dnia. Podobnie jak w SM-2, użytkownik ocenia znajomość materiału w skali 0 5 (tab. 4.1) i analogicznie jak w SuperMemo, jednostki których nie udało się poprawnie przywołać z pamięci są prezentowane ponownie w fazie utrwalania (ang. final drill) na końcu sesji z programem. Faza utrwalania kończy się dla jednostki, gdy ta uzyska ocenę pozytywną (3 5) i będzie mogła zostać uznana za zapamiętaną do kolejnej powtórki (funkcja 1). Ocena Warunek udzielenia oceny 5 Odpowiedź przywołana natychmiast 4 Odpowiedź przywołana po chwili namysłu 3 Odpowiedź przywołana częściowo 2 Odpowiedź rozpoznana natychmiast 1 Odpowiedź rozpoznana po chwili namysłu 0 Odpowiedź nie rozpoznana Tablica 4.1: Wartości ocen i ich znaczenie w algorytmie SSRF. Funkcja 1: CalculateStatus(g) Wejście: Aktualna ocena g Wyjście: Nowy status jednostki if g [0, 2] then return FINAL DRILL else return MEMORIZED end Jednostki w SSRF mają przypisany priorytet p wpływający na częstość powtórek. Wartości priorytetów zostały spisane w tablicy 4.2. Nazwa Wartość Zastosowanie Wysoki 4.0 Najważniejszy materiał, najczęściej stosowane słowa języka obcego Średni 3.0 Średnio istotny materiał, popularne słownictwo języka obcego Niski 2.0 Mniej istotny materiał, rzadziej używane słownictwo języka obcego Tablica 4.2: Wartości priorytetów studiowanego materiału w algorytmie SSRF.

41 Rozdział 4. Algorytm wyznaczania powtórek 37 Porównując bieżącą długość przerwy z interwałem idealnym (równanie 4.1) wyznacza się trudność jednostki d (równanie 4.2). Definicja 1 (Interwał idealny). Interwał idealny to długość przerwy którą uzyskałaby w n-tej powtórce jednostka materiału o priorytecie p oceniana zawsze na 5. IdealInterval(n, p) = SSRF(n, 5, 5.0, 0.0, p) (4.1) Definicja 2 (Trudność jednostki). Trudność jednostki materiału jest wyliczana porównując jej ostatni wyznaczony interwał i last między powtórkami z interwałem idealnym i ideal. Difficulty(i last, i ideal ) = ln ( ) iideal i last (4.2) SSRF identyfikuje pijawki na podstawie wartości trudności i wprowadza w czas tymczasowego uśpienia. Okres ten powinien być na tyle długi by usunąć ewentualny wyuczony błędny ślad pamięciowy, który powstałby w wyniku interferencji podobnych informacji. Kolejna prezentacja jednostki materiału następuje dopiero po upływie tej przerwy. Wyznaczane interwały powtórek są zbliżone do jednostek, które nigdy nie osiągnęły statusu pijawki. Jeśli sytuacja ponownie uzyska status problematycznej, zostanie uśpiona ponownie, tym razem na dłuższy okres czasu. Definicja 3 (Korekta interwału dla pijawek ). LeechCorrection(d) = max(0, d d leech 1) i sleep (4.3) gdzie d to trudność jednostki, d leech - stała określająca poziom trudności po którego przekroczeniu jednostka jest identyfikowana jako pijawka, zaś i sleep liczba dni po których pijawka może być ponownie zaprezentowana użytkownikowi. Algorytm wyznacza akceptowalne wartości interwału korzystając z formuły SSRF (równanie 4.4). Optymalny dzień powtórki jest szukany w przedziale [i min, i max ] = SSRF(n, g 1, g avg, d, p), SSRF(n, g, g avg, d, p)]. Definicja 4 (Formuła wyznaczania interwału). SSRF(n, g, g avg, d, p) = 1 + n gavg 2 exp(g p) + LeechCorrection(d) (4.4) gdzie n to numer powtórki, g jest aktualną oceną, g avg jest średnią arytmetyczną z poprzednich ocen, d to trudność jednostki, a p jej priorytet. Porównując liczbę W [i] i średnią trudność D avg [i] jednostek zaplanowanych w danym dniu i oraz w dniach z najmniejszą wartością tych parametrów określa się współczynnik

42 Rozdział 4. Algorytm wyznaczania powtórek 38 obciążenia dla każdego dnia z przedziału akceptowalnych interwałów (równanie 4.5). Następnie oblicza się potencjalne wartości W new [i] i D avg [i], reprezentujące sytuację, gdyby jednostka została zaplanowana na powtórkę w dniu i, wyliczając nowe wartości współczynników obciążenia. Na optymalny dzień powtórki zostaje wybrany najpóźniejszy możliwy termin z największą redukcją współczynnika obciążenia R[i] (funkcja 2). Definicja 5 (Współczynnik obciążenia). LoadCoefficient(i, W, D avg ) = ( ) 2 ( ) min(w ) min(davg) 2 W [i]) 1 + D avg [i] 1 2 (4.5) gdzie i to jeden z akceptowalnych interwałów, W tablica zawierająca liczbę jednostek zaplanowanych do powtórki w danym dniu dla każdego z akceptowalnych interwałów, zaś D tablica zawierająca średnią trudność jednostek zaplanowanych do powtórki w danym dniu dla każdego z akceptowalnych interwałów. Funkcja 2: FindIntervalWithMaxLoadReduction(i min, i max, W, D avg, W new, D new avg ) for i i min to i max do L[i] LoadCoefficient(i, W, D avg ) L new [i] LoadCoefficient(i, W new, D new R[i] Lnew [i] L[i] end i largest i min r max R[i min ] for i i min + 1 to i max do 2.8 if R[i] >= r max then 2.9 r max = R[i] 2.10 i largest = i 2.11 end 2.12 end 2.13 return i largest 2.14 avg ) Algorytm wymaga przekazania także średniej arytmetycznej ze wszystkich ocen udzielonych do tej pory g avg, numeru powtórki n oraz daty w chwili jej wykonania t now. Wszystkie parametry jednostki i ich ewentualne wartości początkowe zostały zestawione w tablicy 4.3. Oprócz terminu następnej powtórki t next i statusu s algorytm uaktualnia wartości numeru powtóki n, średniej oceny g avg i trudności d (funkcja 3). Aplikacja implementująca SSRF powinna dostarczać funkcje GetNumberOfScheduledUnits oraz GetAverageDifficultyOfScheduledUnits zwracające liczbę i średnią arytmetyczną z trudności jednostek zaplanowanych w przekazanym dniu. Algorytm 4 przedstawia przebieg całej procedury wyznaczania powtórki.

43 Rozdział 4. Algorytm wyznaczania powtórek 39 Funkcja 3: UpdateUnitData(i, n, g, g avg, d, p) Dane : Wybrany interwał i, Numer powtórki n, aktualna ocena g, średnia arytmetyczna z ocen uzyskanych wcześniej g avg, trudność jednostki d, priorytet materiału p Wynik: Uaktualnione n, g avg i d g avg g avg n+g n+1 d Difficulty(i, IdealInterval(n, p)) n n Algorytm 4: SSRFSchedule(n, g, g avg, s, d, p, t now ) Dane : Numer powtórki n, aktualna ocena g, średnia arytmetyczna z ocen uzyskanych wcześniej g avg, status jednostki s, trudność jednostki d, priorytet materiału p, data wykonania powtórki t now Wynik: Uaktualnione n, g avg, s, d oraz data następnej powtórki t next if s = FINAL DRILL then s CalculateStatus(g) return end i min SSRF(n, g 1, g avg, d, p) i max SSRF(n, g, g avg, d, p) for i i min to i max do W [i] GetNumberOfScheduledUnits(t now + i) end for i i min to i max do if W [i] = 0 then t next t now + i s CalculateStatus(g) UpdateUnitData(i, n, g, g avg, d, p) return end end for i i min to i max do D avg [i] GetAverageDifficultyOfScheduledUnits(t now + i) end for i i min to i max do W new [i] W [i] + 1 d new = Difficulty(i, IdealInterval(n, p)) Davg new [i] D avg[i]w [i]+d new W new [i] end i FindIntervalWithMaxLoadReduction(i min, i max, W, D avg, W new, D new t next t now + i s CalculateStatus(g) UpdateUnitData(i, n, g, g avg, d, p) avg )

44 Rozdział 4. Algorytm wyznaczania powtórek 40 Parametr Oznaczenie Wartość początkowa Numer powtórki n 1 Aktualna ocena g (brak) Średnia z poprzednich ocen g avg 2.5 Status s MEMORIZED Trudność d 0 Priorytet p 3.0 (średni) Data wykonania powtórki t now (brak) Data następnej powtórki t next (brak) Tablica 4.3: Dane wejściowe i parametry jednostki w SSRF. Jeśli trwa faza utrwalania to oznacza, że etap prezentacji powtórek została już zakończony, a data następnej powtórki ustalona. W przeciwnym razie są wyznaczane akceptowalne terminy powtórek i min... i max. Jeśli w którymś z tych dni nie zaplanowano jeszcze żadnych powtórek, zostaje on wybrany i na podstawie udzielonej oceny w funkcji CalculateStatus jednostka zostaje lub nie zakwalifikowana do fazy FINAL DRILL. Jeśli na każdy dzień z przedziału są już wyznaczone powtórki, następuje pobranie średnich trudności jednostek i przygotowanie danych do wyliczenia zmiany współczynników obciążenia spowodowanego zaplanowaniem powtórki. Zostaje wybrany termin z największą redukcją współczynnika obciążenia, po czym jest uaktualniany status i obliczone nowe wartości parametrów jednostki Złożoność obliczeniowa Algorytm zawiera instrukcje które zostaną wykonane wielokrotnie w zależności od danych wejściowych, jest to zawartość pętli 2.1, 2.8, 4.7, 4.10, 4.18 i Koszt wykonania pozostałych instrukcji jest stały. Pętle te zostaną wykonane i max i min + 1 razy: i max i min + 1 = SSRF(n, g, g avg, d, p) SSRF(n, g 1, g avg, d, p) + 1 = 1 + n gavg 2 exp(g p) + LeechCorrection(d) (1 + n g avg 2 exp(g 1 p) + LeechCorrection(d)) + 1 = n g avg 2 exp(g p) n g avg 2 exp(g 1 p) + 1 = n gavg 2 exp(g p)(1 exp( 1)) + 1 <= n 5 2 exp(5 2)(1 exp( 1)) + 1 (4.6) = n 5 2 c1 + 1 gdzie c jest stałą. Przejście 4.6 zostało wykonane podstawiając dopuszczalne wartości oceny i priorytetu. Zatem pesymistyczna złożoność algorytmu SSRF wynosi O(n 2.5 ).

45 Rozdział 4. Algorytm wyznaczania powtórek 41 W porównaniu z algorytmem SM-2[27], który jest O(1), SSRF może wydawać się zbyt złożony. Należy jednak zauważyć, że kosztowne operacje w SSRF związane są z równoważeniem obciążenia powtórkami działaniem którego SM-2 nie zapewnia. Dodatkowo, w wyliczeniu powyżej podstawiono 5 jako wartość oceny, zaś przy takim ocenianiu interwały rosną bardzo szybko i potrzeba 1.5 roku pracy z programem, aby n przyjęło wartość 8. 1 Średnia złożoność obliczeniowa jest niższa wstawiając ocenę 2 zamiast 5 w linii 4.6 uzyskujemy O(n) i wartość stałej c Poprawność Algorytm wymaga weryfikacji, którą należałoby dokonać poprzez testy z udziałem ochotników uczących się z jego pomocą przez wystarczająco długi okres czasu. Niewykluczone, że będzie konieczne wprowadzenie poprawek w zakresie niskich interwałów, wyznaczanych dla pierwszych powtórek, co uczyniono w istniejących implementacjach SM- 2[28, 29]. 1 Wyniki działania algorytmu SSRF dla przykładowych danych wejściowych zostały umieszczone w dodatku B

46

47 Rozdział 5 Internetowy system planowanego powtarzania RapidStudy 5.1 Zdefiniowanie problemu Potencjał metody planowanego powtarzania nie może być w pełni wykorzystany przy użyciu istniejących aplikacji. Dzielą one szereg wad, z których najważniejsze to: Brak centralnej bazy materiałów Dostępne systemy wymagają wprowadzania treści materiałów, których chcemy się uczyć. Czynność ta jest akceptowalna w przypadku nauki słownictwa: wpisanie wyrazu w języku obcym i tłumaczenia nie zajmuje duże czasu. Przepisywanie definicji z podręczników, tworzenie ilustracji oraz nagrań dźwiękowych i ogólnie jakichkolwiek materiałów dobrej jakości wymaga jednak nieporównywalnie większej pracy. Ogranicza to użycie programów tego typu i obniża jakość dostępnych materiałów. Przeglądając materiały zawarte w internetowych serwisach z fiszkami[64, 65] zauważy się tendencję do tworzenia prostych elementów, w których pytanie i odpowiedź są zbiorem kilku słów o znaczeniu oczywistym tylko dla autora co dodatkowo uniemożliwia wykorzystanie tych treści przez innych użytkowników. Dobry system planowanego powtarzania powinien posiadać bazę gotowych materiałów zintegrowaną z główną aplikacją, tak aby raz wprowadzone informacje mogłyby być wykorzystane później przez kolejnych użytkowników. Wiele istniejących systemów albo nie oferuje żadnej formy udostępniania materiałów[17, 66, 67], albo nie jest ona zintegrowana z aplikacją i na przykład jest konieczne kompresowanie bazy z ilustracjami i wszystkimi powiązanymi plikami do archiwum, które potem należy umieścić na stronie programu poprzez formularz[67 69, 73]. 43

48 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 44 Kolekcja fiszek w bazie może być modyfikowana tylko przez jej autora Możliwość współpracy wielu osób przy przygotowywaniu zawartości pozwoliłaby na dzielenie się pracą oraz prawdopodobnie pozytywnie wpłynęłaby na jakość materiałów. Ponieważ byłyby tworzone przez grupę osób z myślą o użyciu przez wszystkich jej członków, ich treść powinna być także przystępniejsza dla ogółu. Znaleziono tylko jeden serwis oferujący współtworzenie treści, Smart.fm[75]. Bazy materiałów są nieuporządkowane W serwisie FlashcardExchange[65] znajdują się 32 miliony fiszek, jednakże znalezienie czegokolwiek przydatnego bywa niezwykle trudne. Po części wynika to z jakości materiałów, ale głównym powodem jest niedoskonałość narzędzi wyszukiwawczych i służących do tworzenia treści. Przy dodawaniu faktów do nauki użytkownik powinien mieć możliwość przeszukania istniejącej bazy materialów aby zapobiec powielaniu fiszek, które już istnieją. Czas, który poświęciłby na utworzenie nowej fiszki, mógłby wtedy spędzić na ulepszenie istniejącej np. wstawienie ilustracji czy dodanie przykładu użycia w przypadku słowa w języku obcym. Serwis Smart.fm, który pozytywnie wyróżnia się możliwością współtworzenia treści, nie pozwala na wygodne przeglądanie dostępnych materiałów. Można wpisać szukane słowo w pole wyszukiwarki, a wyświetlane kursy posiadają przypisane tagi (etykiety), jednak nie jest widoczna lista tagów, która pozwalałaby na zobaczenie co serwis oferuje (rysunek 5.1). Rysunek 5.1: Prezentacja dostępnych kursów w serwisie Smart.fm[75].

49 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 45 Prymitywna reprezentacja wiedzy We wszystkich aplikacjach poza Anki[19] zarządzanie wprowadzanymi informacjami sprowadza się do zarządzania fiszkami. Jeśli prawidłowo dzielimy informacje na niewielkie jednostki[93] to przy nauce bardziej złożonych niż słówka języka obcego materiałów, na przykład listy elementów czy tekstu wiersza do wyrecytowania z pamięci, powstaje duplikacja informacji pomiędzy fiszkami. Tworzenie takich jednostek wymaga sporej ilości mechanicznej pracy kopiowania, wklejania i wykropkowywania różnych fragmentów w tym samym tekście. Utrudnia to wprowadzanie późniejszych poprawek - zmiana w tekście źródłowym oznacza przeróbkę wszystkich fiszek. Brak obsługi multimediów albo wzorów matematycznych Aplikacje takie jak Anki czy Mnemosyne pozwalają na umieszczanie ilustracji oraz nagrań audio w treści, jednakże wprowadzenie wzoru matematycznego wymaga instalacji systemu składu tekstu TEX. Przeciętny użytkownik komputera może sobie z tym nie poradzić. Pozostałe programy wymienione w tej pracy nie wspierają tworzenia wzorów matematycznych w ogóle[64 72, 74, 76, 99]. Archaiczne algorytmy wyznaczania powtórek Zdecydowana większość istniejących programów ([64 72]) implementuje system Leitnera, który nie nadaje się do nauki dużych ilości materiału. Gdy liczba jednostek materiału jest liczona w dziesiątkach tysięcy a takich rozmiarów bywają bazy słownictwa ludzi uczących się języków ilość powtórek wyznaczanych na dany dzień może być przytłaczająca. Bardziej złożone algorytmy, które uwzględniają więcej danych niż binarne znam odpowiedź/nie znam odpowiedzi, są w stanie precyzyjniej oszacować moment zapomnienia i wyznaczają bardziej odległe i lepiej rozłożone w czasie powtórki. Twórcy niektórych aplikacji nie informują o używanym przez nią algorytmie[74, 75, 99, 100], a użytkownik może chcieć wiedzieć, czy na skutek niedoskonałości algorytmu nie będzie w przyszłości zasypywany ilością powtórek, której nie podoła. Wybór systemu jest decyzją długoterminową, ponieważ nie jest możliwe swobodne przenoszenie przebiegu nauki pomiędzy programami. Inne serwisy z fiszkami nie obsługują powtórek w ogóle[76] lub oferują system Leitnera za dodatkową opłatą[65]. Niewygodny interfejs wydłużający naukę Decydując się na usprawnienie nauki poprzez użycie systemu spaced repetition zgadzamy się poświęcać codziennie pewną ilość czasu na wykonywanie zaplanowanych powtórek. Jest ważne aby czynność ta nie była odbierana przez użytkownika jako

50 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 46 utrapienie, gdyż poskutkuje to porzuceniem metody. Program powinien usprawniać pracę użytkownika, między innymi poprzez usunięcie niepotrzebnych elementów interakcji z trybu nauki Anki robi to doskonale, wymagając tylko 2 kliknięć na jednostkę materiału, lecz istnieją programy, które wymagają wprowadzania odpowiedzi za pomocą klawiatury[99]. Choć takie podejście niewątpliwie ma zalety w postaci weryfikacji poprawnej pisowni czy możliwości automatycznej oceny odpowiedzi przez komputer, użytkownik poświęca więcej czasu na każdą jednostkę materiału, co po pomnożeniu przez liczbę faktów do powtórzenia istotnie wydłuża sesję nauki. Program MentalCase animuje odwracanie fiszki, co wydłuża czas prezentacji. Systemy internetowe nie pobierają multimediów przed wyświetleniem (ang. preloading), w efekcie dźwięk jest odtwarzany z opóźnieniem po wyświetleniu fiszki. Nieprzystępność dla użytkownika Drugą wadą interfejsów jest ich przesadne skomplikowanie, które ogranicza użycie istniejących programów spaced repetition przez mniej obeznanych technicznie użytkowników komputera. Przykładem w tej kategorii może być SuperMemo w wersjach [16] (nie SuperMemo UX[100], które jest całkowicie innym produktem, dystrybuowanym z kursami multimedialnymi i nie udostępniającym wielu funkcji znanych z oryginalnej linii programów). Mnogość opcji SuperMemo została ukryta w trzech trybach interfejsu, dla początkujących, średnio zaawansowanych i zaawansowanych. Niestety nie spełniają one swojej funkcji zbyt dobrze. Opcja przełączania interfejsu nie jest w ogóle widoczna w trybie dla początkujących, który został pokryty grafiką (tzw. skórką ). Do dodatkowych funkcji programu dotrą tylko osoby, które przeczytają plik pomocy załączony do programu. Użytkownik uproszczonego interfejsu może nigdy się nie dowiedzieć co oferuje program. Interfejs podstawowy SuperMemo ma bardzo ograniczoną funkcjonalność i można przypuszczać, że każdy kto szczęśliwie odnalazł w pomocy lub dowiedział się z innych źródeł o istnieniu alternatywnego trybu pracy, przełącza się do niego by mieć dostęp do tworzenia i zarządzania materiałami oraz zmieniania opcji nauki, co zostało uznane za zaawansowane operacje. Zrobiwszy to, oczom użytkownika ukazuje się się interfejs zaawansowany, który może stanowić zaporę przed stosowaniem programu (rysunek 5.2). Stworzony system implementuje zaproponowany w rozdziale 3 model reprezentacji jednostek i kategoryzacji wiedzy, który eliminuje problemy związane z duplikacją w fiszkach oraz pozwala na uporządkowanie treści i wygodne przeglądanie bazy materiałów. Rapid- Study wykorzystuje także opisany w rozdziale 4 nowy algorytm wyznaczania terminów powtórek SSRF. Interfejs użytkownika został zrealizowany z wykorzystaniem technologii

51 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 47 Rysunek 5.2: Interfejs programu SuperMemo pozwalającej na tworzenie aplikacji internetowych mających wygodę obsługi programów instalowanych na komputerze. Funkcjonalność aplikacji obejmuje typowe operacje spotykane w systemach planowanego powtarzania naukę i dodawanie materiału oraz funkcje znane z systemów Wiki[13] takie jak przeglądanie historii zmian kursu i cofanie ich. Językiem interfejsu jest angielski. Dokładna lista wymagań uwzględnionych przy tworzeniu aplikacji została umieszczona w dodatku C. 5.2 Technologie i narzędzia Bogata aplikacja internetowa Bogate aplikacje internetowe (z ang. Rich Internet Application, RIA) są rodzajem aplikacji internetowych, uruchamianych w przeglądarce, wyróżniających się posiadaniem wielu cech stacjonarnych programów komputerowych (ang. desktop application)[101].

52 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 48 Wśród wymagań znajduje się możliwość uruchamiania aplikacji z dowolnego komputera bez potrzeby instalacji oraz wygodny i szybki interfejs użytkownika. Są to cechy charakterystyczne dla współczesnej bogatej aplikacji internetowej. Uruchamianie na komputerze z dowolnym systemem operacyjnym i dowolnej przeglądarce jest osiągane poprzez użycie technologii Flash bądź przenośnego kodu JavaScript. Biblioteki i narzędzia programistyczne RIA (Adobe Flex, OpenLaszlo, Ext JS, SproutCore, Google Web Toolkit) oferują także zbiory gotowych komponentów do tworzenia złożonych interfejsów użytkownika. Aplikacje RIA typowo są oparte na jednoekranowym interfejsie, eliminując potrzebę przeładowywania kompletnych stron HTML przy każdej interakcji m.in. za pomocą asynchronicznych zapytań JavaScript (ang. Asynchronous JavaScript and XML, AJAX). Technologie używane do tworzenia bogatych aplikacji internetowych można podzielić na dwie główne grupy: wykorzystujące wtyczkę instalowaną w przeglądarce (Flash/Flex, Java, Silverlight) i ograniczające się do możliwości oferowanych przez samą przeglądarkę (AJAX, HTML5). Wtyczki Adobe Flash, Java i Microsoft Silverlight są obecnie dostępne na odpowiednio 99%, 80% i 50% komputerów (stan na lipiec 2010 roku)[102]. Ponieważ jednym z założeń jest dostępność z każdego komputera, wybór sprowadza się do rozwiązań bazujących na wtyczce Flash oraz wykorzystujących tylko JavaScript. Porównanie najistotniejszych cech z punktu widzenia projektu[103]: Własność AJAX Flex/Flash Renderowanie W pełni wspierane. Ograniczone (brak tabel HTML HTML, JavaScript, ramek itp.) Odtwarzanie Standard HTML5 który Tak, włącznie z możliwością dźwięku i filmów wprowadza elementy HTML do odtwarzania multimediów nagrywania obrazu i dźwięku z kamery lub mikrofonu. jest obsługiwany przez część przeglądarek. W pozostałym przypadkach potrzebna wtyczka Flash, Quicktime lub Windows Media Player. Licencja i dostępne narzędzia programistyczne Duży wybór narzędzi na licencjach open-source. Platforma kontrolowana przez Adobe. Narzędzia są płatne.

53 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 49 Własność AJAX Flex/Flash Komponenty interfejsu Ograniczony wybór wśród Biblioteka komponentów donika użytkow- bezpłatnych. Konieczność stępna bezpłatnie z Adobe tworzenia własnych. Alternatywa: Flex i możliwość tworzenia biblioteka Ext JS własnych. na licencji komercyjnej lub GPL3 Uruchamianie Każda przeglądarka interpretuje Jednakowe zachowanie we kod we własny sposób. wszystkich przeglądarkach. Ograniczone wsparcie dla wyświetlania kodu HTML przez wtyczkę Flash stało się czynnikiem, który zadecydował o odrzuceniu tej technologii. Istniejące programy spaced repetition, jeśli oferują możliwość formatowania tekstu, wykorzystują HTML do przechowywania danych. Wybranie Flash/Flex utrudniłoby implementację importu materiałów z tych programów do projektowanej aplikacji. Jeśli w pewnym momencie chcielibyśmy dodać funkcję importu kursów e-learning z formatu SCORM[48], w których powszechnie także stosuje się HTML, poprawne wyświetlanie takich materiałów również mogłoby się okazać trudne Biblioteka komponentów interfejsu graficznego Dostępne na wolnej licencji biblioteki AJAX oferują dosyć ubogi wybór gotowych komponentów interfejsu użytkownika, a te dostępne nierzadko sprawiają wrażenie niedopracowanych. Nadają się one dobrze do realizacji tzw. progresywnego ulepszania (ang. progressive enhancement), podeścia w którym standardowy dokument HTML przekształca się do bardziej zaawansowanych komponentów interfejsu poprzez wywołania JavaScript. RIA są implementowane typowo jako jednoekranowe aplikacje akcje użytkownika nie przekierowują przeglądarki na inny adres URL. W takim przypadku całe drzewo elementów HTML, tak zwany Document Object Model (DOM), reprezentujące wszystkie okna dialogowe i elementy interfejsu użytkownika jest zawarte na jednej stronie. Wybierając popularną bibliotekę open-source jquery konieczne byłoby dla każdego elementu interfejsu użytkownika stworzenie elementów HTML oraz wskazanie tego elementu bibliotece jquery, aby zamieniła ten statyczny zbiór znaczników w interaktywny komponent. Wydruk 5.1 pokazuje ilość kodu HTML i JavaScript potrzebnego dla stworzenia jednego komponentu, panelu z zakładkami, który jest widoczny na rysunku 5.3. W średniej wielkości aplikacji liczba znaczników HTML byłaby liczona w dziesiątkach tysięcy.

54 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 50 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <link href= rel= stylesheet type= text/css /> 5 <script src= ></script> 6 <script src= ></script> 7 <script> 8 $(document).ready(function() { 9 $( #tabs ).tabs(); 10 }); 11 </script> 12 </head> 13 <body> 14 <div id= tabs > 15 <ul> 16 <li><a href= #fragment-1 ><span>pierwsza</span></a></li> 17 <li><a href= #fragment-2 ><span>druga</span></a></li> 18 <li><a href= #fragment-3 ><span>trzecia</span></a></li> 19 </ul> 20 <div id= fragment-1 > 21 <p>tresc pierwszej zakladki</p> 22 </div> 23 <div id= fragment-2 > 24 <p>tresc drugiej zakladki</p> 25 </div> 26 <div id= fragment-3 > 27 <p>tresc trzeciej zakladki</p> 28 </div> 29 </div> 30 </body> 31 </html> Wydruk 5.1: Tworzenie interfejsu użytkownika za pomocą jquery Rysunek 5.3: Tworzenie interfejsu użytkownika za pomocą jquery. Alternatywą dla tworzenia interfejsu użytkownika poprzez jednoczesne pisanie kodu HTML i obsługującego go kodu JavaScript jest dynamiczne generowanie HTML przez JavaScript. Ten sam efekt zrealizowany za pomocą tej techniki i biblioteki Ext JS znajduje się na wydruku 5.2 i rysunku 5.4. Należy zwrócić uwagę na brak jakichkolwiek

55 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 51 znaczników w ciele dokumentu (znacznik <body>) są one generowane za pomocą Java- Script. Interfejs programistyczny biblioteki Ext JS jest w pełni obiektowy i komponenty mają hierarchię dziedziczenia. Poprzez ich kompozycje można tworzyć bardzo złożone formularze i okna dialogowe. Klasa Ext.Viewport reprezentuje panel, który rozciąga się na całe okno przeglądarki, a atrybut items zawiera listę komponentów, które powinny być wyświetlone wewnątrz tego panelu. W naszym przypadku jest to komponent z zakładkami. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <link rel= stylesheet type= text/css href= /> 5 <script type= text/javascript src= ></script> 6 <script type= text/javascript src= ></script> 7 <script style= text/javascript > 8 Ext.onReady(function(){ 9 new Ext.Viewport({ 10 layout: fit, 11 items: [new Ext.TabPanel({ 12 activetab: 0, 13 items:[ 14 {title: Pierwsza, html: Tresc pierwszej zakladki }, 15 {title: Druga, html: Tresc drugiej zakladki }, 16 {title: Trzecia, html: Tresc trzeciej zakladki } 17 ] 18 })] 19 }); 20 }); 21 </script> 22 </head> 23 <body> 24 </body> 25 </html> Wydruk 5.2: Tworzenie interfejsu użytkownika za pomocą Ext JS Rysunek 5.4: Tworzenie interfejsu użytkownika za pomocą Ext JS. Podstawową zaletą tego podejścia jest uproszczenie kodu aplikacji poprzez eliminację potrzeby tworzenia znaczników HTML dla każdego elementu interfejsu użytkownika i

56 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 52 wprowadzenie technik programowania obiektowego do definiowania i manipulacji formularzami czy oknami dialogowymi. Wadą jest niewidoczność strony dla wyszukiwarek, które choć są w stanie odczytać treść z wnętrza znaczników HTML umieszczonych w treści strony, nie potrafią interpretować JavaScript i nie odczytają treści z dynamicznie generowanych komponentów. Aby kursy zamieszczone w serwisie były indeksowane należałoby stworzyć równoległą, tekstową wersję podstron, która byłaby czytana przez roboty wyszukiwarek. Gdy człowiek otworzy taką stronę klikając na link na liście wyników z wyszukiwarki kod JavaScript na tej stronie przekieruje go do naszej bogatej aplikacji internetowej. W projektowanej aplikacji interfejs użytkownika wykonano wykorzystując bibliotekę Ext JS w wersji 3.2. Odtwarzanie dźwięku zrealizowano za pomocą biblioteki SoundManager2, a wyświetlanie wzorów matematycznych zapisanych składnią TEX za pomocą narzędzia mimetex[104] Język programowania Po stronie serwera został wykorzystany framework aplikacji internetowych Pylons, który został napisany w języku Python. Wybór Pylons i Pythona jako języka programowania został podyktowany ilością i jakością dostępnych bibliotek, w szczególności bardzo dobrą biblioteką do obsługi danych i mapowania obiektowo-relacyjnego SQLAlchemy[105]. Python jest językiem stosunkowo popularnym w środowiskach naukowych i doczekał się wielu narzędzi takich jak SciPy czy Sage[106] pakiet do obliczeń matematycznych, który jest reklamowany jako realna, dostępna na otwartej licencji alternatywa dla programów Magma, Maple, Mathematica i Matlab. Istnieje także zestaw bibliotek do przetwarzania języka naturalnego NLTK (Natural Language Toolkit)[107], którego użycie jest planowane w następnych wersjach aplikacji. Dzięki pakietowi NLTK będzie możliwe w przyszłości wczytanie artykułu z internetu bądź napisów do filmu i wygenerowanie kursu zawierającego wszystkie słowa i zwroty użyte w artykule bądź w filmie. Python jest interpretowanym, zorientowanym obiektowo językiem programowania wysokiego poziomu ogólnego zastosowania, który został zaprojektowany z myślą o czytelności kodu[108]. Wbudowane struktury danych, rozbudowana biblioteka standardowa rozpowszechniana z interpreterem oraz dynamiczny system typów czynią z Pythona bardzo atrakcyjne narzędzie do szybkiego tworzenia aplikacji (Rapid Application Development, RAD). Ponieważ kod źródłowy napisany w Pythonie nie wymagania kompilacji przez uruchomieniem, cykl tworzenia kodu, testowania i poprawiania błędów jest dużo szybszy niż w przypadku języków ze statycznym systemem typów, takich jak Java czy C++.

57 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 53 Programiści, którzy mieli szanse poznać ten język programowania cenią go za produktywność, którą im daje przy zachowaniu lepszej niż w innych językach dynamicznych takich jak Perl czy Ruby czytelności kodu. Programy napisany w Pythonie są standardowo 3 do 5 razy krótsze niż ich odpowiedniki napisane w Javie i 5 do 10 razy krótsze niż programy napisane w języku C++[109] Wydruki 5.3 i 5.4 pokazują jak wygląda ten sam program napisany w języku Java i Python na przykładzie algorytmu sortowania szybkiego. 1 int partition(int arr[], int left, int right) 2 { 3 int i = left, j = right; 4 int tmp; 5 int pivot = arr[(left + right) / 2]; 6 while (i <= j) { 7 while (arr[i] < pivot) 8 i++; 9 while (arr[j] > pivot) 10 j--; 11 if (i <= j) { 12 tmp = arr[i]; 13 arr[i] = arr[j]; 14 arr[j] = tmp; 15 i++; 16 j--; 17 } 18 }; 19 return i; 20 } void quicksort(int arr[], int left, int right) { 23 int index = partition(arr, left, right); 24 if (left < index - 1) 25 quicksort(arr, left, index - 1); 26 if (index < right) 27 quicksort(arr, index, right); 28 } Wydruk 5.3: Algorytm sortowania szybkiego napisany w języku Java[110] 1 def qsort(arr): 2 if len(arr) <= 1: return arr 3 p = arr.pop() 4 left = [a for a in arr if a < p] 5 right = [a for a in arr if a >= p] 6 return qsort(left) + [p] + qsort(right) Wydruk 5.4: Algorytm sortowania szybkiego napisany w języku Python Argumentem za wykorzystaniem Pythona w projekcie jest także fakt, że dwa dostępne na licencjach open-source programy spaced repetition: Anki i Mnemosyne zostały napisane w

58 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 54 tym języku. Wysunięto propozycję uwspólnienia fragmentów kodu tak aby było możliwe przenoszenie materiałów i przebiegu nauki pomiędzy systemami Baza danych Aplikacja przechowuje dane korzystając z obiektowo-relacyjnego systemu zarządzania bazami danych PostgreSQL. Wybrano PostgreSQL ponieważ oferuje większe możliwości od pozostałych wolnodostępnych systemów m.in. obsługuje wyzwalacze, widoki, dziedziczenie, sekwencje, procedury składowane, kursory oraz definiowanie własnych typów danych[111]. Użyta w aplikacji biblioteka i narzędzie do mapowania obiektowo-relacyjnego SQLAlchemy[105] dostarcza warstwę abstrakcji nad dostępem do danych. Dzięki temu potencjalna migracja na inny system zarządzania bazą danych w przyszłości nie będzie wymagała dużego nakładu pracy Silnik wyszukiwawczy Wśród wymagań funkcjonalnych znajduje się wyszukiwanie kursów, jednostek danego kursu i jednostek ze wszystkich kursów po treści i kategoriach/tagach. Systemy zarządzania bazami danych jak PostgreSQL oferują mechanizmy wyszukiwania pełnotekstowego. Oddzielny silnik wyszukiwawczy został użyty głównie w celu wydajnej implementacji filtrowania po wielu tagach jednocześnie z obliczaniem ilości elementów oznaczonych danym tagiem. Jako uzasadnienie troski o wydajność należy w tym miejscu przypomnieć, że popularne serwisy przechowują kilkadziesiąt milionów fiszek, oznaczonych za pomocą kilkadziesięciu tysięcy tagów[65]. Rozważmy sytuację, gdy użytkownik przegląda kursy biologiczne. Wybiera kategorię Biologia, po czym są mu prezentowane wszystkie kursy oznaczone tym tagiem oraz lista powiązanych tagów, którymi są oznaczone kursy z kategorii Biologia tj. tagi Zoologia, Botanika. Użytkownik może wybrać tag z listy powiązanych tagów, zawężając listę wyświetlanych kursów do tych, które są jednocześnie oznaczone tagiem Biologia i Zoologia. Lista powiązanych tagów może być bardzo długa i powinny być wyświetlone tylko te najpopularniej stosowane. Zapytanie SQL wyznaczające listę tagów powiązanych z tagiem Biologia wraz z ich popularnością znajduje się na wydruku 5.6. Nie może ono zostać zrealizowane przy pomocy samych indeksów lecz wymaga sekwencyjnego przeszukania tabeli. Powodem jest

59 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 55 użycie funkcji agregującej COUNT, która w PostgreSQL zawsze sprawdza istnienie rekordu, także w przypadku wywołania COUNT(*). Ma to związek z implementacją MVCC Multiversion concurrency control, mechanizmu obsługi transakcji w PostgreSQL[111]. 1 CREATE TABLE tags ( 2 id INT NOT NULL PRIMARY KEY, 3 name VARCHAR 4 ); 5 6 CREATE TABLE course_tags ( 7 course_id INT NOT NULL, 8 tag_id INT NOT NULL, 9 PRIMARY KEY (tag_id, course_id) 10 ); INSERT INTO tags VALUES(1, Biologia ); 13 INSERT INTO tags VALUES(2, Zoologia ); 14 INSERT INTO tags VALUES(3, Botanika ); INSERT INTO course_tags VALUES (1, 1); 17 INSERT INTO course_tags VALUES (1, 2); 18 INSERT INTO course_tags VALUES (2, 1); 19 INSERT INTO course_tags VALUES (2, 2); 20 INSERT INTO course_tags VALUES (3, 1); 21 INSERT INTO course_tags VALUES (3, 2); 22 INSERT INTO course_tags VALUES (4, 1); 23 INSERT INTO course_tags VALUES (4, 3); Wydruk 5.5: Uproszczona struktura tabel i przykładowe dane dla zapytania SELECT tag2.name, COUNT(tag2.name) 2 FROM tags tag2 3 JOIN course_tags ct2 on ct2.tag_id = tag2.id 4 JOIN course_tags ct1 on ct1.course_id = ct2.course_id 5 JOIN tags tag1 ON tag1.id = ct1.tag_id 6 WHERE tag1.name = Biologia 7 GROUP BY tag2.name 8 ORDER BY COUNT(tag2.name) DESC Wydruk 5.6: Zapytanie SQL wyznaczające listę powiązanych tagów dla taga Biologia Silniki wyszukiwawcze takie jak Sphinx, Apache Lucene zostały zaprojektowane z myślą o wykonywaniu takich operacji. Apache SOLR, serwer wyszukiwawczy oparty Lucene wspiera tzw. wyszukiwanie wieloaspektowe (ang. faceted search), które jest formą filtrowania po wielu tagach, pogrupowanych w zbiory reprezentujące aspekty wg. których klasyfikujemy treść. Wybór silnika Sphinx zamiast SOLR został podyktowany mniejszymi wymaganiami pamięciowymi. Oba rozwiązania dostarczają narzędzia wyszukiwawcze dla serwisów operujących na dużych bazach danych, także tych w których treść czyli

60 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 56 także indeksy wyszukiwania ulegają ciągłej zmianie. Gdy w PostgreSQL zindeksowanie 850 MB danych trwa 40 minut, Lucene ta sama operacja zajmuje 9 minut, a Sphinxowi 6 minut[112]. Największy serwis, który używa silnika Sphinx to boardreader.com, indeksujący ponad 2 miliardy dokumentów (2 terabajty danych), a najbardziej obciążony: craigslist.org, obsługujący ponad 50 milionów wyszukań dziennie. SOLR, oparty na Lucene, jest używany m.in. przez serwisy Digg, AOL, Reddit. Dane z września 2010[113][114]. 5.3 Architektura systemu Rysunek 5.5 przedstawia architekturę systemu RapidStudy. Platforma została zaprojektowana, aby umożliwić dołączenie dodatkowych programów lub urządzeń klienckich. W tej chwili jedynym dostępnym klientem jest bogata aplikacja internetowa (RIA), działająca w przeglądarce internetowej, ale nic nie stoi na przeszkodzie, aby w przyszłości z serwerem komunikował się telefon komórkowy czy program instalowany na komputerze, korzystający z możliwości, których nie daje przeglądarka. Dzięki temu niewykluczone, że kiedyś będziemy mogli powtarzać słownictwo języka obcego jadąc w autobusie korzystając z multimedialnego telefonu komórkowego, a gdy jesteśmy w domu, migająca ikona w zasobniku systemowym będzie pokazywała liczbę powtórek do zrobienia Aplikacja Aplikacje klienckie, w tym RIA, komunikują się z serwerem za pomocą interfejsu usług sieciowych (ang. web services), który został oparty o wzorzec REST(Representational State Transfer). Wzorzec ten został zaproponowany przez Roya T. Fieldinga w pracy doktorskiej Principled Design of the Modern Web Architecture, a spopularyzowany przez framework aplikacji internetowych Ruby On Rails. Fielding, współautor specyfikacji protokołów HTTP 1.0 i 1.1, zaproponował bezstanowy sposób wymiany informacji w środowisku rozproszonym, wykorzystujący formaty XML i JSON oraz pojęcie zasobu, na którym można operować za pomocą metod protokołu HTTP, typowo GET, POST, PUT i DELETE[115]. W projektowanej aplikacji zasobami są między innymi kursy i jednostki materiału. Kurs jest kolekcją jednostek materiału. Wysłanie do serwera żądania GET /courses/1 zwróci informacje na temat kursu o identyfikatorze 1 w formacie zgodnym z zawartością nagłówka HTTP Accept. Jeśli klient ustawi nagłówek Accept: application/json, gdzie application/json jest typem MIME dla formatu JSON, to serwer przygotuje odpowiedź w notacji obiektów JavaScript (JavaScript Object Notation, JSON). Przesłanie w

61 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 57 Użytkownik Komputer Przeglądarka WWW Telefon komórkowy Program kliencki Serwer baz danych Serwer WWW Apache PostgreSQL Aplikacja System plików Serwer wyszukiwania Sphinx Proces wykonujący zadania asynchroniczne Proces uaktualniający indeksy wyszukiwania Rysunek 5.5: Architektura systemu. tym miejscu text/xml oznaczałoby, że klient oczekuje odpowiedzi w formacie XML. Aplikacja używa formatu JSON do komunikacji, ponieważ może być bezpośrednio używany przez RIA napisane w technologii AJAX, w przeciwieństwie do XML. Wysłanie żądania POST /courses/1/items spowoduje dodanie przesłanej jednostki materiału do kursu, DELETE służy do usuwania jednostki, a PUT do modyfikacji. Wzorzec REST stanowi alternatywę dla usług sieciowych zaimplementowanych za pomocą SOAP czy XML-RPC. Główną jego zaletą jest uproszczenie komunikacji poprzez użycie metod HTTP i adresów URI zamiast definiowania własnych metod wywołań zdalnych. Dzięki zgodności z protokołem HTTP usługi sieciowe typu REST mogą używane poprzez serwery pośredniczące: serwery proxy i cache, zapory sieciowe czy serwery równoważące obciążenie bez potrzeby zmiany sposobu komunikacji. Przekłada się to większe możliwości skalowania architektury opartej na REST[115]. Oprócz usług sieciowych, z których korzysta RIA napisana w JavaScript, serwer wyświetla standardowe strony WWW w formacie HTML. W ten sposób są zaimplementowane formularze rejestracji nowego użytkownika, edycji profilu czy strona główna. W przyszłości w ten sposób będą też wyświetlane opisy kursów, aby mogły być czytane przez roboty indeksujące wyszukiwarek, nie interpretujące kodu JavaScript.

62 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy Serwer Apache Aplikacja został napisany w języku Python z wykorzystaniem frameworka Pylons i biblioteki Python Paste. Biblioteka Python Paste jest opisywana jako framework dla frameworków aplikacji internetowych. Implementuje standard WSGI, definiujący interfejs umożliwiający serwerom internetowym obsługę żądań HTTP przez program napisany w języku Python. Istnieją moduły WSGI do popularnych serwerów internetowych takich jak Apache (mod_wsgi) czy Nginx. W tej chwili wykorzystywany jest wbudowany w Paste Paste wielowątkowy serwer HTTP (Paster), a komunikacja z serwerem Apache, zbierającym wszystkie żądania HTTP, odbywa się poprzez moduł mod_proxy. Niektóre pliki są wysyłane przez Apache z pominięciem serwera napisanego w Pythonie: Pliki graficzne Pliki dźwiękowe Arkusze stylów Pliki z kodem JavaScript W każdej z tej kategorii znajdują się pliki statyczne jak i dane dodawane w trakcie działania aplikacji: wśród plików graficznych i dźwiękowych mamy ilustracje i nagrania, które twórca kursu przesłał na serwer, arkusze stylów należące do szaty graficznej kursu oraz kod JavaScript sterujący prezentacją różnych typów ćwiczeń. W przypadku danych, w relacyjnej bazie danych przechowujemy ścieżkę do pliku statycznego, która jest określana jako wynik funkcji haszującej SHA1 na treści pliku. Przeprowadzone zostały testy porównawcze działania aplikacji, gdy dane te są serwowane przez aplikację w Pythonie lub z jej pominięciem. W przypadku, gdy pliki graficzne i dźwiękowe były przy każdym wyświetleniu pobierane z bazy i wysyłane przez aplikację napisaną w Pylons czas ładowania materiału do nauki był kilkukrotnie dłuższy. Pliki wysyłane z pominięciem aplikacji są dostępne pod inną domeną niż aplikacja. Aplikacja znajduje się w poddomenie www, natomiast pliki statyczne pobierane są poprzez domenę static. Żądania w domenie www także przechodzą przez serwer Apache, który pełni funkcję odwrotnego serwera pośredniczącego (reverse proxy) zapewniając obsługę kompresji GZIP oraz (w przyszłości) równoważenie obciążenia.

63 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy Serwer wyszukiwawczy i proces indeksujący Podczas wyświetlania przeglądania lub wyszukiwania kursów i jednostek materiału aplikacja łączy się z silnikiem wyszukiwawczym Sphinx za pomocą protokołu TCP/IP, przesyła parametry po których przeszukujemy (ciąg znaków lub zbiór tagów), odbiera stronę wyników w postaci identyfikatorów rekordów spełniających kryteria wyszukiwania i zamyka połączenie. Następnie wykonuje zapytanie do bazy danych pobierając kursy lub jednostki materiału o tych identyfikatorach i po przetworzeniu do formatu JSON prezentuje je na ekranie. Gdy treść kursu ulega zmianie indeksy wyszukiwawcze przestają być aktualne i powinien zostać uruchomiony program indeksujący. W chwili projektowania aplikacji Sphinx nie obsługiwał przyrostowego indeksowania zmian w czasie rzeczywistym, ta funkcja została dodana w wersji 1.10 i na dzień dzisiejszy jest jeszcze w stadium testów. Brak przyrostowego indeksowania oznacza, że wprowadzenie zmian wymagania ponownego przetworzenia całego zbioru dokumentów w danym indeksie. Zanim proces indeksowania zostanie zakończony wprowadzone zmiany nie będą widoczne dla użytkownika nowo dodany kurs nie będzie widoczny na liście zanim nie zostanie zindeksowany. Tymczasem czas trwania indeksowania jest proporcjonalny do ilości dokumentów w indeksie i rośnie wraz z wielkością bazy danych. Aby sprawić, żeby czas pomiędzy wprowadzeniem zmian w bazie, a zakończeniem indeksowania i wyświetleniem zmian na ekranie był możliwie najmniejszy i niezależny od wielkości bazy materiałów, należy podzielić indeks na dwa: indeks główny main i indeks pomocniczy delta. Indeks pomocniczy przechowuje zmiany od ostatniej przebudowy indeksu głównego, która ma miejsce raz dziennie w godzinach najmniejszego obciążenia aplikacji. Data i godzina ostatniej przebudowy indeksu głównego są przechowywane w bazie danych, a indeksowane rekordy przechowują czas ostatniej modyfikacji. Po wprowadzeniu zmian do bazy następuje przebudowa indeksu pomocniczego, do którego zostają pobrane wszystkie rekordy zmodyfikowane od czasu ostatniej przebudowy indeksu głównego. Po każdej zmianie indeks pomocniczy wymaga przebudowania. Aby zapobiec sytuacji, że w tej samej chwili dwóch użytkowników wprowadzi zmianę, w efekcie program indeksujący zostanie uruchomiony dwa razy i jedno uruchomienie zakończy się błędem przy próbie nadpisania tego samego indeksu, uaktualnianie indeksu odbywa się asychronicznie poprzez proces działający w tle. W bazie danych znajduje się tabela przechowująca listę indeksów z czasem ostatniej przebudowy i ostatniej dezaktualizacji. Aplikacja po wprowadzeniu zmian zapisuje w bazie danych aktualny czas jako moment dezaktualizacji indeksu. Zewnętrzny proces działający w tle co sekundę sprawdza odpytując bazę danych, czy istnieją jakieś indeksy, dla których godzina ostatniej dezaktualizacji jest późniejsza od godziny ostatniej przebudowy. Jeśli tak, następuje przebudowa tych indeksów

64 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 60 i uaktualnienie godziny ostatniej przebudowy w bazie danych poprzez przypisanie godziny rozpoczęcia indeksowania. Jeśli w trakcie indeksowania nastąpi zmiana w bazie danych, zmiany zostaną wychwycone w ciągu sekundy po zakończeniu poprzedniego indeksowania, o ile nie zostały już przetworzone w trakcie pierwszej przebudowy, co jest możliwe w związku z faktem, że indeksowanie nie jest wykonywane w transakcji Proces wykonujący zadania asynchroniczne Oprócz indeksowania istnieją operacje importu i eksportu danych, które także są wykonywane asynchronicznie ze względu na czas trwania. Użytkownik, który wysyła archiwum ZIP z treścią kursu, ilustracjami i nagraniami audio w celu zaimportowania materiałów do serwisu chciałby widzieć postęp przetwarzania danych z archiwum. Jeśli operacja importu byłaby wykonywana synchronicznie, w ramach obsługi tego samego żądania HTTP w którym przesłano plik ZIP, mogłoby nastąpić automatyczne rozłączenie użytkownika przez przeglądarkę, która uznała, że serwer nie odpowiada, bądź też zabicie wątku po stronie serwera, który stwierdził, że przetwarzanie żądania trwa zbyt długo. Import oraz eksport należą do operacji, które intensywnie odpytują bazę danych przez co w znaczącym stopniu obciążają serwer i spowalniają obsługę innych żądań wysyłanych do aplikacji, dlatego pożądane byłoby także ograniczenie do jednej takiej operacji wykonywanej w danym momencie. Żądania importu czy eksportu danych z aplikacji są kolejkowane w bazie danych. Istnieje proces działający w tle, który w ustalonych odstępach czasu sprawdza, czy jakieś zadanie czeka w kolejce na wykonanie, po czym inicjuje jego wykonanie. Po utworzeniu nowego zadania i dodania go do kolejki, aplikacja zwraca identyfikator zadania, w postaci adresu URL, za pomocą którego można sprawdzić postęp wykonania zadania. Gdy użytkownik importuje jednostki do kursu poprzez interfejs bogatej aplikacji internetowej, RIA co kilka sekund sprawdza stan wykonania zadania, wyświetlając ilość zaimportowanych jednostek materiału. 5.4 Architektura aplikacji Model-Widok-Kontroler Aplikacja działająca na serwerze WWW została napisana w języku Python z wykorzystaniem frameworka Pylons, który jest oparty o wzorzec Model-Widok-Kontroler (ang. Model-View-Controller, MVC).

65 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 61 Model-Widok-Kontrol jest zdaniem M. Fowlera[116] jednym z najczęściej cytowanych i mylnie interpretowanych wzorców projektowych. Powstał jako szkielet stworzony przez Trygve Reenskauga dla Smalltalka w końcu lat Od tamtej pory MVC stał się punktem wyjścia przy projektowaniu systemów w których możemy wyróżnić interfejs użytkownika oraz zmieniające się dane. Wzorzec MVC wprowadza trzy pojęcia: model, widok i kontroler oraz definiuje sposób komunikacji i zależności między nimi. Model Modelem jest obiekt reprezentujący pewną informację o dziedzinie problemu (ang. business domain). M. Fowler[116] pisze o modelu, jako o niewizualnym obiekcie zawierającym dane i zachowanie inne niż należące do interfejsu użytkownika. Warstwa modelu zawiera logikę dziedziny, reguły określające relacje pomiędzy danymi. Komunikacja z bazą danych odbywa się w warstwie modelu. Czasami wprowadza się dodatkową warstwę obiektów dostępu do danych (ang. Data Access Object, DAO). W przypadku opisywanej aplikacji funkcję DAO spełnia biblioteka do mapowania obiektowo-relacyjnego SQLAlchemy[105]. Zaletą wprowadzenia kolejnej warstwy jest możliwość zmiany źródła danych bez konieczności modyfikacji obiektów przechowujących logikę dziedziny. Widok Widok określa sposób prezentacji modelu i interfejs poprzez który użytkownik prowadzi interakcję z aplikacją. Widok nie modyfikuje danych aplikacji bezpośrednio, lecz poprzez obiekt kontrolera. Oddzielenie prezentacji od logiki umożliwia stworzenie kilku kolekcji widoków reprezentujących różne sposoby prezentacji danych. W przypadku omawianego serwisu spaced repetition istnieją dwa interfejsy umożliwiające zalogowanie się do aplikacji: konwencjonalny, poprzez formularz HTML oraz poprzez interfejs usługi sieciowej, gdzie odpowiednikiem HTML jest format JSON, używany przez RIA. Dodanie XML jako alternatywnego formatu danych byłoby tworzeniem kolejnego widoku, ponieważ XML czy JSON są formami prezentacji tych samych danych pochodzących z jednego modelu. Kontroler Zadaniem kontrolera jest pobranie danych wejściowych wprowadzonych przez użytkownika, przekazanie ich do modelu oraz uaktualnienie widoku. Separacja widoku od kontrolera jest mniej istotna. Jak na ironię, w praktycznie żadnej wersji Smalltalka nie

66 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 62 oddzielono widoku od kontrolera[116]. Przykładem sytuacji, w której taki zabieg byłby przydatny jest równoległe wsparcie dla trybu edycji i tylko do odczytu. Kontroler obsługujący tryb tylko do odczytu odrzuciby zmiany, które przychodzą z widoku, podczas gdy druga implementacja kontrolera pozwoliłaby na ich zapisanie. Oddzielenie modelu od kontrolera pozwala uniknąć niespójnego zachowania, gdy dane pochodzą z różnych źródeł, więc wymagają innego przepływu sterowania (innego kodu kontrolera), ale powinny się do nich stosować te same reguły biznesowe np. identyczny sposób sprawdzania poprawności danych. Omawiana aplikacja implementuje dwa sposoby dodawania jednostek materiału: poprzez formularz w interfejsie bogatej aplikacji internetowej oraz poprzez import z pliku. W obu przypadkach logika przy dodawaniu jednostki, taka jak tworzenie nowej rewizji kursu dla każdej zmiany, jest wspólna i umieszczona w obiektach modelu Zależności i komunikacja Schemat interakcji we wzorcu Model-Widok-Kontroler został przedstawiony na rysunku 5.6. Linie ciągłe oznaczają zależność i komunikację bezpośrednią, a przerywane pośrednią, na przykład poprzez wzorzec Obserwator(ang. Observer[117]). Widok Kontroler Model Rysunek 5.6: Wzorzec Model-Widok-Kontroler. Obiekt kontrolera jest zależny od widoku i modelu, a obiekt widoku jest zależny od modelu. Model nigdy nie uaktualnia bezpośrednio widoku, ale widok może odpowiadać na zmiany w modelu w inny sposób: Poprzez obiekt kontrolera, który uaktualniając model, uaktualnia także widok. Tak się dzieje w typowych frameworkach internetowych: kontroler wprowadza zmiany do bazy poprzez obiekty modelu, po czym wyświetla odpowiednią stronę HTML przekazując uaktualnione obiekty modelu. W ten sposób działają strony rejestracji i logowania w rozważanej aplikacji.

67 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 63 Widok może użyć wzorca Obserwator[117] i automatycznie odpowiadać na zmiany modelu. Jendakże także w tym przypadku to kontroler wprowadza zmiany w modelu. Takie rozwiązanie zostało zastosowane w RIA: ten sam obiekt kursu może być wyświetlany jednocześnie na kilku ekranach aplikacji i każdy z ekranów reaguje na zdarzenie modyfikacji kursu odświeżeniem wyświetlanych danych. Widok nie powinien być zależny od kontrolera. Jak już wcześniej było wspomniane, rzadko to wymaganie jest spełnione. Typowo formularze HTML należące do warstwy widoku posiadają informację do jakiego kontrolera przesyłają dane wartość atrybutu action znacznika <form> jest wprowadzona na stałe. Oddzielenie widoku od kontroleru nastąpiłoby gdyby ta wartość była przekazywana przez kontroler. Warianty i detale implementacji MVC w różnych kontekstach zostały opisane w Pattern- Oriented Software Architecture[118] Organizacja logiki dziedziny aplikacji W Pattern Of Enterprise Application Architecture Fowler wyróżnia trzy zasadnicze sposoby organizacji logiki dziedziny (ang. domain logic) w aplikacji[116]: Scenariusz Transakcji, Moduł Tabeli oraz tzw. Model Dziedziny (ang. Domain Model), który został zastosowany w aplikacji. Skrypt transakcji jest najprostszym sposobem przechowywania logiki w aplikacji. Jeśli dla każdej operacji, takiej jak dodawanie, edycja czy import kursu stworzymy listę czynności, które powinny być wykonane i umieścimy je w ramach jednej klasy, a najczęściej w ramach pojedynczej procedury to nieświadomie użyjemy wzorca scenariusz transakcji (ang. Transaction Script. Gdybyśmy napisali aplikację internetową, korzystając z któregoś z frameworków MVC i umieścili całą logikę w kontrolerach, pozostawiając modelom wyłącznie funkcję obiektów dostępu do danych (DAO) to także korzystamy ze wzorca scenariusz transakcji. Wzorzec ten ma jedną wadę: wraz z rozbudową aplikacji i stopniem skomplikowania logiki w niej zawartej pojawia się duplikacja pomiędzy scenariuszami transakcji. Wcześniej przytyczany przykład o funkcjach dodawania pojedynczej jednostki i importu wielu jednostek jednocześnie, które dzielą wspólne reguły, dobrze obrazuje tą sytuację. Odpowiedzią programisty na pojawienie się duplikacji jest próba wyodrębnienia powtarzającego się kodu do procedury albo do osobnej klasy. Gdy logika dziedziny zostanie całkowicie przeniesiona do klas modelu, mamy do czynienia ze wzorcem modelu dziedziny. Odnosząc to do wzorca Model-Widok-Kontroler: gdy w kontrolerach tylko inicjujemy operację na danych, a logika taka jak wybór jednostek materiału do prezentacji

68 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 64 Rysunek 5.7: Wyznaczanie terminu nowej powtórki we wzorcu Scenariusz Transakcji. użytkownikowi czy reguła mówiąca, że usuwając konto użytkownika należy wszystkie jego kursy uczynić publicznie edytowalnymi, aby ktoś inny mógł je rozwijać zostanie umieszczona w obiektach modelu. Diagramy sekwencji 5.7 oraz 5.8 pokazują różnice w przepływie sterowania przy użyciu tych dwóch wzorców projektowych na przykładzie wyznaczania kolejnej powtórki. W pierwszym przypadku ScheduledLUService bezpośrednio steruje przebiegiem całej operacji. Większość logiki opisującej w jaki sposób aplikacja wyznacza powtórki została zawarta w jednej klasie. Choć czynności wyliczania oceny na podstawie odpowiedzi użytkownika oraz wyznaczania daty następnej powtórki są umieszczone w innych klasach to wszystkie interakcje są wykonywane na podstawie scenariusza transakcji zapisanego w klasie ScheduledLUService. Na drugim diagramie przedstawiono sytuację, w której odpowiedzialność za poszczególne czynności wchodzące w skład operacji została podzielona pomiędzy obiekty tworzące warstwę modelu. Rola ScheduledLUService sprowadza się do wywołania jednej metody na obiekcie pobranym wcześniej z bazy oraz wyzwolenia procesu zapisu zmodyfikowanych obiektów do bazy danych. Logika przetwarzania została przeniesiona do modelu. Wzorzec scenariusza transakcji może wydawać się lepszy, dzięki swojej prostocie. Wymaga jednak większego wysiłku przy rozbudowie wraz ze wzrostem złożoności logiki

69 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 65 Rysunek 5.8: Wyznaczanie terminu nowej powtórki we wzorcu Model Dziedziny. Rysunek 5.9: Koszt rozbudowy przy różnej złożoności logiki dziedziny w przypadku wszystkich trzech wzorców organizacji logiki w aplikacji[116].

70 Rozdział 5. Internetowy system planowanego powtarzania RapidStudy 66 dziedziny. Wykres 5.9 przedstawia tą zależność[116]. Z tego powodu, biorąc pod uwagę złożony sposób reprezentacji wiedzy, w programie zastosowano model dziedziny. Został on zaprojektowany z wykorzystaniem zasad projektowania sterowanego dziedziną (ang. Domain-Driven Design)[119]. Schemat struktury bazy danych z wyjaśnieniem implementacji wersjonowania kursów i jednostek, które było potrzebne do realizacji funkcjonalności Wiki rejestrowania i cofania zmian został umieszczony w dodatku D.

71 Podsumowanie W niniejszej pracy zaprojektowano i stworzono nowoczesny system komputerowy wspomagający efektywność procesu nauczania metodą planowanego powtarzania z centralną bazą materiałów. W tym celu został zaproponowany elastyczny model reprezentacji i klasyfikacji wiedzy, który umożliwia wprowadzanie różnego rodzaju treści do systemu i wygodne przeglądanie bazy przez użytkowników. Został także przedstawiony i zaimplementowany całkowicie nowy algorytm planowanego powtarzania, uwzględniający rozkład powtórek oraz trudność materiału i pozwalający utrzymać obciążenie powtórkami na tym samym poziomie, czego nie oferowały wcześniejsze rozwiązania. Powstały system RapidStudy został wykonany z użyciem technologii do budowania bogatych aplikacji internetowych (RIA), dzięki czemu posiada szybki oraz atrakcyjny interfejs użytkownika. Wszystkie istniejące internetowe systemy planowanego powtarzania były do tej pory wykonywane w postaci tradycyjnych stron WWW, co wpływało na komfort używania czynnik bardzo istotny w przypadku aplikacji z którą spędza się dużo czasu, a system planowanego powtarzania do takich należy: powtórki powinno się wykonywać codziennie. Wzrastająca powszechność urządzeń mobilnych, takich jak multimedialne telefony komórkowe, tablety czy netbooki wskazuje jeden z potencjalnych kierunków rozwoju nauczania wspomaganego komputerowo. M-learning wydaje się być naturalnym dopełnieniem e-learningu, a idea nauki w dowolnym miejscu i o dowolnej porze, nie tylko w domu, ale w drodze do pracy czy oczekiwaniu w kolejce do lekarza, dzięki postępowi techniki staje się możliwa do zrealizowania. Elektroniczne fiszki i planowane powtarzanie, jako metoda prosta w realizacji (bo czymże jest odwracanie kartoników na ekranie), doskonale wpisuje się w ograniczone możliwości sprzętowe takich urządzeń. W kwestii systemów planowanego powtarzania warto pomyśleć o integracji z publicznie dostępnymi źródłami wiedzy, takimi jak Wikipedia, słowniki internetowe i bazy leksykalne typu WordNet[120]. Książki w formie elektronicznej (Projekt Gutenberg[121]) mogą być dobrym źródłem przykładów użycia słów w nauce języków obcych, a analiza częstości występowania wyrazów wykonana na zbiorze napisów filmowych mogłaby posłużyć do 67

72 Podsumowanie 68 stworzenia bazy słownictwa używanego na co dzień. Szczególnie obiecujący jest projekt Semantic Web[122] i wizja Internetu jako rozproszonej ontologii, umożliwiającej wydobywanie informacji zawartej w globalnej sieci przez maszyny na to jednak przyjdzie nam jeszcze poczekać. System RapidStudy został umieszczony w Internecie i jest dostępny do testowania. Lokalizacja aplikacji i instrukcja obsługi zostały umieszone w dodatku A.

73 Dodatek A Podstawy obsługi programu Ponieważ instalacja systemu jest procedurą dosyć skomplikowaną, na potrzeby prezentacji tej pracy serwis został umieszczony w Internecie. Aplikacja jest dostępna pod adresem: Zalecaną przeglądarką jest Firefox 3. Mogą wystąpić problemy przy uruchomieniu bogatej aplikacji internetowej (RIA) w programie Internet Explorer, zostaną one usunięte w kolejnych odsłonach serwisu. Dla obsługi dźwięku w trybie nauki jest wymagana wtyczka Macromedia Flash w wersji 9 lub nowszej. Strona główna Po otwarciu adresu witryny w przeglądarce zostaje wyświetlona strona główna serwisu (rysunek A.1). Aby rozpocząć pracę w systemie planowanego powtarzania należy założyć konto użytkownika, korzystając z odnośnika Create an account. Zakładanie konta w systemie Formularz rejestracji nowego użytkownika wymaga podania adresu i hasła. Adres pełni funkcję identyfikatora użytkownika i razem z hasłem służy do logowania. Dodatkowe dane m.in. wyświetlaną nazwę użytkownika można wprowadzić później w ustawieniach konta. Formularz zakładania konta jest chroniony polem CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart), aby uniemożliwić tworzenie fałszywych kont robotom spamującym. Rejestracja się nie powiedzie, jeśli nie zostanie 69

74 Dodatek A. Podstawy obsługi programu 70 Rysunek A.1: Strona główna serwisu RapidStudy. rozpoznany poprawnie przynajmniej jeden wyraz widoczny na obrazku. Zastosowane rozwiązanie recaptcha prezentuje fragmenty tekstu zeskanowane z książek, których nie rozpoznały programy OCR. Rysunek A.2: Formularz zakładania konta w systemie RapidStudy.

75 Dodatek A. Podstawy obsługi programu 71 Przejście do bogatej aplikacji internetowej Po zajestrowaniu i zalogowaniu należy skorzystać z odnośnika Start learning (lub zakładki learning w górnej części strony). Wybranie Start learning spowoduje przejście do trybu nauki w bogatej aplikacji internetowej (RIA). Ponieważ konto zostało właśnie założone zostaniemy przywitani komunikatem, że nie ma żadnego materiału do nauki. Ekran zawierający listę kursów i ilość zaplanowanych na dzień dzisiejszy powtórek będzie zachęcał do przejrzenia dostępnych kursów lub stworzenia nowych poprzez wciśnięcie przycisku Add courses (rysunek A.3) uczyńmy to. Rysunek A.3: Lista subskrybowanych kursów nowego użytkownika w RapidStudy. Przeglądanie dostępnych kursów Otwarta przeglądarka kursów pozwala na filtrowanie kursów po etykietach i ciągu znaków. Po lewej stronie znajdują etykiety (tagi) uporządkowane w grupy z widoczną obok liczbą reprezentującą ilość kursów oznaczonych daną etykietą. Chcąc uczyć się angielskiego zaznaczmy tag english, a spis kursów po prawej stronie okna zostanie ograniczony do materiałów oznaczonych wybraną etykietą (rysunek A.4). Można wybrać kolejną etykietę, zawężając wyniki dalej. Nad listą kursów znajdują się tagi, po których odbywa się w danym momencie filtrowanie. Można usunąć filtr klikając na krzyżyk obok nazwy etykiety.

76 Dodatek A. Podstawy obsługi programu 72 Rysunek A.4: Lista dostępnych kursów oznaczonych etykietą english w RapidStudy. Jest możliwe łączenie filtrowania po wielu tagach z wyszukiwaniem pełnotekstowym w nazwie i opisie kursu: wystarczy wpisać ciąg znaków w polu obok listy wybranych etykiet i wcisnąć klawisz Enter rysunek A.5. Rysunek A.5: Lista dostępnych kursów oznaczonych etykietą english i zawierających tekst flower w RapidStudy. Wybierzmy kurs Flowers in English, który zawiera nagrania dźwiękowe, klikając w jego nazwę.

77 Dodatek A. Podstawy obsługi programu 73 Przeglądanie i subskrypcja kursu Po otwarciu kursu pojawia się mamy możliwość przeczytania jego opisu oraz przejrzenia listy zawartych w nim jednostek materiału (zakładka Course Content ). Lista jednostek posiada takie same możliwości filtrowania jak spis kursów, co może być przydatne przy zarządzaniu większą liczbą faktów (rysunki A.6 i A.7). W tym momencie chcąc dodać kurs do nauki wciskamy przycisk Subscribe. Kurs zostanie do nauki, a użytkownik zostanie przeniesiony do listy subskrybowanych kursów. Rysunek A.6: Otwarty kurs Flowers in English w RapidStudy. Jeśli posiadamy zainstalowaną w systemie operacyjnym obsługę języków wschodnioazjatyckich to warto dodać do nauki dodatkowo kurs Korean Vocabulary, który demonstruje użycie niestandardowego typu jednostek materiału ze zdefiniowanymi wieloma polami, w tym z ilustrację, widoczną jako tło, przykładami zdań oraz nagraniami dźwiękowymi do słowa koreańskiego i przykładów użycia. Można użyć przycisku Wstecz w przeglądarce, aby wrócić do listy kursów. Plan lekcji i rozpoczynanie nauki Po dodaniu kursów lista subskrypcji powinna wyglądać podobnie jak na ilustracji A.8. Obok nazw kursów jest widoczna ilość powtórek i nowych jednostek zaplanowana na dzisiaj, wskaźnik postępu w przerabianiu kursu oraz przyciski służące do wywoływania często wykonywanych czynności.

78 Dodatek A. Podstawy obsługi programu 74 Rysunek A.7: Wyszukiwanie w kursie Flowers in English słowa bławatek w RapidStudy. Przycisk Start learning istnieje zarówno obok nazwy kursu jak i pod listą wszystkich kursów. Drugi uruchamia naukę wszystkich kursów, dla których są zaplanowane jakieś jednostki po kolei i to jest opcja z której się typowo korzysta. Przyciski obok nazw kursów pozwalają na wybranie pojedynczego kursu do powtórzenia. W ten sposób można na przykład uczyć się jednego języka obcego rano, a drugiego wieczorem. Wybierzmy Start learning umieszczony pod listą wszystkich kursów. Rysunek A.8: Lista studiowanych kursów wraz z planem dzisiejszej lekcji w Rapid- Study.

79 Dodatek A. Podstawy obsługi programu 75 Przebieg nauki Lekcja rozpoczyna się od prezentacji pierwszej jednostki materiału (rysunek A.9). Ponieważ to pierwszy dzień pracy z programem, nie mamy wyznaczonych żadnych powtórek i przeszliśmy od razu do nauki nowych faktów, co sygnalizuje obwódka wokół napisu New material nad kartą. Rysunek A.9: Prezentacja pierwszej jednostki materiału w RapidStudy moment udzielania odpowiedzi. Jeśli w przeglądarce jest zainstalowana wtyczka Flash powinniśmy usłyszeć głos lektora wymawiającego słowo carnation. Po próbie przypomnienia tłumaczenia wyrazu na język polski należy przycisnąć Pokaż odpowiedź, co odsłoni odpowiedź i pozwoli na jej ocenę (rysunek A.10). Wybierzmy Fail, informując program, że nie powiodło się przywołanie słowa z pamięci. Wtedy zostanie wyświetlone kolejne pytanie, a na żółtym obszarze po prawej stronie okna pojawią się statystyki właśnie ocenionej jednostki, wyświetlające między innymi datę kolejnej powtórki wyznaczonej przez algorytm SSRF (rysunek A.11) Ponieważ udzieliśmy złej odpowiedzi lub nie podaliśmy jej wcale, ten sam fakt zostanie wyświetlony do powtórzenia wkrótce, bo następnego dnia. Zauważmy, że zwiększył się licznik przy etykiecie Final drill pytanie, które właśnie sprawiło nam problem zostało zakolejkowane do etapu utrwalania, który ma miejsce po zakończeniu nauki nowych elementów.

80 Dodatek A. Podstawy obsługi programu 76 Rysunek A.10: Prezentacja pierwszej jednostki materiału w RapidStudy moment oceniania odpowiedzi. Rysunek A.11: Prezentacja drugiej jednostki materiału w RapidStudy. Termin powtórki poprzedniej jednostki widoczny po prawej stronie.

81 Dodatek A. Podstawy obsługi programu 77 Po wykonaniu wszystkich powtórek użytkownik jest przenoszony do ekranu początkowego z listą subskrybowanych kursów. Dodawanie materiałów Wciśnięcie przycisku Create a new course na ekranie przeglądania bazy kursów spowoduje przejście do formularza tworzenia nowego kursu (rys. A.12). Rysunek A.12: Tworzenie nowego kursu w systemie RapidStudy. Utworzywszy nowy kurs należy przejść do zakładki Course Content i wcisnąć przycisk Add item, a otworzy się wyszukiwarka jednostek, która umożliwia dodanie do kursu fiszki, która już istnieje w bazie (rys. A.13). Chcąc stworzyć nową jednostkę, wybieramy jeden z typów po prawej stronie np. Question with Answer, co spowoduje otwarcie formularza tworzenia nowej jednostki z obsługą wstawiania ilustracji, dźwięków oraz wzorów matematycznych (rys. A.14).

82 Dodatek A. Podstawy obsługi programu 78 Rysunek A.13: Dodawanie jednostki do kursu z bazy istniejących w RapidStudy. Rysunek A.14: Tworzenie nowej jednostki materiału w RapidStudy.

E-learning nauczanie na odległość

E-learning nauczanie na odległość E-learning nauczanie na odległość część 2. Cel prezentacji Przekonanie Państwa, że warto uatrakcyjnić i wzbogacić proces dydaktyczny w szkole o pracę z uczniem na platformie e-learningowej Moodle. część

Bardziej szczegółowo

Scenariusz zajęć. Temat: Obcojęzyczne zasoby Internetu. II etap edukacyjny, zajęcia komputerowe. Treści kształcenia: Cele zoperacjonalizowane:

Scenariusz zajęć. Temat: Obcojęzyczne zasoby Internetu. II etap edukacyjny, zajęcia komputerowe. Treści kształcenia: Cele zoperacjonalizowane: Scenariusz zajęć II etap edukacyjny, zajęcia komputerowe Temat: Obcojęzyczne zasoby Internetu Treści kształcenia: Zajęcia komputerowe: 6. Wykorzystywanie komputera oraz programów i gier edukacyjnych do

Bardziej szczegółowo

Początki e-learningu

Początki e-learningu E-learning Początki e-learningu Początków nauczania na odległość można doszukiwać się w Stanach Zjednoczonych w latach 80. Technikę tą początkowo wykorzystywało tylko kilka uczelni wyższych. Widząc zainteresowanie

Bardziej szczegółowo

E-learning: nowoczesna metoda kształcenia

E-learning: nowoczesna metoda kształcenia E-learning: nowoczesna metoda kształcenia Tworzenie kursów e-learningowych Karolina Kotkowska Plan prezentacji część I E-learning obiektywnie: 2. Definicja 3. Formy 4. Wady i zalety e-szkoleń 5. Mity 6.

Bardziej szczegółowo

OPIS WYMOGÓW JAKOŚCI ŚWIADCZENIA USŁUG e-learnig

OPIS WYMOGÓW JAKOŚCI ŚWIADCZENIA USŁUG e-learnig OPIS WYMOGÓW JAKOŚCI ŚWIADCZENIA USŁUG e-learnig E-learning jako usługa rozwojowa E-learning to jedna z forma zdalnego nauczania (tj. formy wspomagania procesu uczenia się technologiami informacyjno-komunikacyjnymi)

Bardziej szczegółowo

Jak przygotować zajęcia komputerowe dla osób dorosłych w bibliotece?

Jak przygotować zajęcia komputerowe dla osób dorosłych w bibliotece? Jak przygotować zajęcia komputerowe dla osób dorosłych w bibliotece? Cz. 3. Opracowanie programu zajęć Przygotowując program zajęć dla osób dorosłych możemy skorzystać z następujących zasad: Łączymy to,

Bardziej szczegółowo

Rozwiązania e-learningowe jako narzędzia rozwoju kompetencji zawodowych. Paweł Czerwony Global New Business Manager

Rozwiązania e-learningowe jako narzędzia rozwoju kompetencji zawodowych. Paweł Czerwony Global New Business Manager v Rozwiązania e-learningowe jako narzędzia rozwoju kompetencji zawodowych Paweł Czerwony Global New Business Manager Funmedia Nasza historia Rynki i produkty Liczba użytkowników Kursy online Fakty Dot.

Bardziej szczegółowo

MODUŁ E-learning nauczanie przez Internet

MODUŁ E-learning nauczanie przez Internet MODUŁ E-learning nauczanie przez Internet Czas trwania zajęć: 1 moduł, 12 jednostek lekcyjnych, razem 540. Cele zajęć: Cele operacyjne: UCZESTNICY: mm. zapoznają się terologią nn. rozpoznają różne typy

Bardziej szczegółowo

Numer i nazwa obszaru: 5 Wdrażanie nowych, innowacyjnych sposobów nauczania i oceniania, w celu podnoszenia efektywności kształcenia w cyfrowej szkole

Numer i nazwa obszaru: 5 Wdrażanie nowych, innowacyjnych sposobów nauczania i oceniania, w celu podnoszenia efektywności kształcenia w cyfrowej szkole Numer i nazwa obszaru: 5 Wdrażanie nowych, innowacyjnych sposobów nauczania i oceniania, w celu podnoszenia efektywności kształcenia w cyfrowej szkole Temat szkolenia: Gryfikacja i inne innowacyjne metody

Bardziej szczegółowo

Projekt: Współpraca i dialog. Opis szkoleń językowych planowanych do realizacji w ramach projektu

Projekt: Współpraca i dialog. Opis szkoleń językowych planowanych do realizacji w ramach projektu Projekt: Współpraca i dialog Opis szkoleń językowych planowanych do realizacji w ramach projektu Gdańsk, wrzesień 2013 Spis Treści SPIS TREŚCI...2 SZKOLENIA JĘZYKOWE...3 JĘZYK ANGIELSKI...4 Szkolenia językowe

Bardziej szczegółowo

Platformy e-learningowe nowe możliwości wzbogacania oferty dydaktycznej w bibliotece akademickiej. Seminarium PolBiT Warszawa, 18-19.03.

Platformy e-learningowe nowe możliwości wzbogacania oferty dydaktycznej w bibliotece akademickiej. Seminarium PolBiT Warszawa, 18-19.03. Platformy e-learningowe nowe możliwości wzbogacania oferty dydaktycznej w bibliotece akademickiej Seminarium PolBiT Warszawa, 18-19.03.2010 Wybrane pola zastosowań e-learningu typowe indywidualne bądź

Bardziej szczegółowo

DLA SEKTORA INFORMATYCZNEGO W POLSCE

DLA SEKTORA INFORMATYCZNEGO W POLSCE DLA SEKTORA INFORMATYCZNEGO W POLSCE SRK IT obejmuje kompetencje najważniejsze i specyficzne dla samego IT są: programowanie i zarządzanie systemami informatycznymi. Z rozwiązań IT korzysta się w każdej

Bardziej szczegółowo

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW KARTA KURSU Nazwa Nazwa w j. ang. Przetwarzanie dokumentów XML i zaawansowane techniki WWW XML processing and advanced web technologies Kod Punktacja ECTS* 3 Koordynator dr Maria Zając Zespół dydaktyczny:

Bardziej szczegółowo

K A T E D R A IN F O R M A T Y K I I M E T O D K O M P U T E R O W Y C H UNIWERSYTET PEDAGOGICZNY W KRAKOWIE

K A T E D R A IN F O R M A T Y K I I M E T O D K O M P U T E R O W Y C H UNIWERSYTET PEDAGOGICZNY W KRAKOWIE 1. Kierunek: Informatyka 2. Obszar kształcenia: X nauki ścisłe 3. Sylwetka absolwenta: Studia pierwszego stopnia na kierunku Informatyka przygotowują absolwentów w zakresie treści matematycznych niezbędnych

Bardziej szczegółowo

Ogólne kryteria oceniania z przedmiotu zajęcia komputerowe w klasie czwartej.

Ogólne kryteria oceniania z przedmiotu zajęcia komputerowe w klasie czwartej. Ogólne kryteria oceniania z przedmiotu zajęcia komputerowe w klasie czwartej. Ocenę celującą otrzymuje uczeń, który zyskał wiedzę i umiejętności obejmujące pełny zakres programu, a w szczególności: Potrafi

Bardziej szczegółowo

Objaśnienia oznaczeń w symbolach K przed podkreślnikiem kierunkowe efekty kształcenia W kategoria wiedzy

Objaśnienia oznaczeń w symbolach K przed podkreślnikiem kierunkowe efekty kształcenia W kategoria wiedzy Efekty kształcenia dla kierunku studiów FIZYKA - studia II stopnia, profil ogólnoakademicki - i ich odniesienia do efektów kształcenia w obszarze nauk ścisłych Kierunek studiów fizyka należy do obszaru

Bardziej szczegółowo

I. Raport wykonywalności projektu

I. Raport wykonywalności projektu Spis treści: " I. " Raport wykonywalności projektu..." str. 2 " II. " Glosariusz projektu... " str. 4 " III. " Diagramy relacji encja-związek..." str. 6 " IV. " Diagramy przepływu danych..." str. 7 " V.

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Dokumentacja Administratora portalu. aplikacji. Wirtualna szkoła

Dokumentacja Administratora portalu. aplikacji. Wirtualna szkoła Dokumentacja Administratora portalu aplikacji Wirtualna szkoła aktualna na dzień 20.12.2012 Wykonawca: Young Digital Planet SA 2012 Strona 2 z 15 Spis Treści Wirtualna szkoła SYSTEM ZARZĄDZANIA NAUCZANIEM...

Bardziej szczegółowo

World Wide Web? rkijanka

World Wide Web? rkijanka World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest

Bardziej szczegółowo

KIERUNKOWE EFEKTY KSZTAŁCENIA

KIERUNKOWE EFEKTY KSZTAŁCENIA WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Kierunek studiów: INFORMATYKA Stopień studiów: STUDIA II STOPNIA Obszar Wiedzy/Kształcenia: OBSZAR NAUK TECHNICZNYCH Obszar nauki: DZIEDZINA NAUK TECHNICZNYCH Dyscyplina

Bardziej szczegółowo

Program nauczania przedmiotu uzupełniającego Praktyczne zastosowania informatyki

Program nauczania przedmiotu uzupełniającego Praktyczne zastosowania informatyki II Liceum ogólnokształcące im. Marii Skłodowskiej Curie w Piotrkowie Trybunalskim Praktyczne zastosowanie informatyki program nauczania Agnieszka Pluczak, Paweł Bąkiewicz 205/206 Program nauczania przedmiotu

Bardziej szczegółowo

Założenia programowe

Założenia programowe Założenia programowe Nauczanie języków obcych w szkole jest ograniczone czasowo (wymiarem godzin lekcyjnych) i tematycznie (programem nauczania) i z przyczyn oczywistych skupia się często na zagadnieniach

Bardziej szczegółowo

AKADEMIA DLA MŁODYCH. Osiąganie celów. moduł 3 PODRĘCZNIK PROWADZĄCEGO. praca, życie, umiejętności. Akademia dla Młodych

AKADEMIA DLA MŁODYCH. Osiąganie celów. moduł 3 PODRĘCZNIK PROWADZĄCEGO. praca, życie, umiejętności. Akademia dla Młodych Osiąganie moduł 3 Temat 3, Poziom 1 PODRĘCZNIK PROWADZĄCEGO Akademia dla Młodych Moduł 3 Temat 3 Poziom 1 Zarządzanie czasem Przewodnik prowadzącego Cele szkolenia Efektywność osobista pozwala Uczestnikom

Bardziej szczegółowo

Placówka z certyfikatem PN-EN ISO 9001:2009 i akredytacją Łódzkiego Kuratora Oświaty

Placówka z certyfikatem PN-EN ISO 9001:2009 i akredytacją Łódzkiego Kuratora Oświaty 96-100 Skierniewice, Al. Niepodległości 4 tel. (46) 833-20-04, (46) 833-40-47 fax. (46) 832-56-43 www.wodnskierniewice.eu wodn@skierniewice.com.pl Placówka z certyfikatem PN-EN ISO 9001:2009 i akredytacją

Bardziej szczegółowo

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access.

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access. Konspekt do lekcji informatyki dla klasy II gimnazjum. Opracowała: Mariola Franek TEMAT(1): Baza danych w programie Microsoft Access. Cel ogólny: Zapoznanie uczniów z możliwościami programu Microsoft Access.

Bardziej szczegółowo

Monika Góral, Krzysztof Grynienko, Monika Jasińska, Piotr Kryszkiewicz

Monika Góral, Krzysztof Grynienko, Monika Jasińska, Piotr Kryszkiewicz Powtórzenie wiadomości o układach równań { { 2x + 3y = 5 6x + 9y = 15 x + 2y = 7 2x y = 1 { 4x + 2y = 8 5x + 3y = 9 { 4x + y = 2 5x 3y = 11 2x + 3y = 5 6x + 9y = 15 4x + 2y = 8 5x + 3y = 9 { MATEMATYKA

Bardziej szczegółowo

Wykorzystanie nowych mediów w procesie kształcenia jako przykład innowacji dydaktycznej

Wykorzystanie nowych mediów w procesie kształcenia jako przykład innowacji dydaktycznej Wykorzystanie nowych mediów w procesie kształcenia jako przykład innowacji dydaktycznej mgr Sylwia Polcyn-Matuszewska Uniwersytet im. Adama Mickiewicza w Poznaniu Informacja o autorce: mgr Sylwia Polcyn-Matuszewska

Bardziej szczegółowo

Inteligentne Multimedialne Systemy Uczące

Inteligentne Multimedialne Systemy Uczące Działanie realizowane w ramach projektu Absolwent informatyki lub matematyki specjalistą na rynku pracy Matematyka i informatyka może i trudne, ale nie nudne Inteligentne Multimedialne Systemy Uczące dr

Bardziej szczegółowo

Dla Wielkopolskiego Związku Pracodawców

Dla Wielkopolskiego Związku Pracodawców Dla Wielkopolskiego Związku Pracodawców SuperMemo World Sp. z o.o. Poznań, 30.01.2014 W odpowiedzi na zapytanie dotyczące kursów SuperMemo World, przesyłam dedykowaną Państwu ofertę wraz z informacjami

Bardziej szczegółowo

Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami.

Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami. Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami. Zagadnienie tematyczne (blok tematyczny): Internet i sieci (Podr.cz. II, str.37-69) Podstawa programowa: Podstawowe zasady

Bardziej szczegółowo

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych KARTA PRZEDMIOTU Nazwa przedmiotu/modułu: Nazwa angielska: Kierunek studiów: Poziom studiów: Profil studiów Jednostka prowadząca: Programowanie aplikacji internetowych Web application development edukacja

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie. SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

ZARZĄDZANIE I INŻYNIERIA PRODUKCJI

ZARZĄDZANIE I INŻYNIERIA PRODUKCJI ZARZĄDZANIE I INŻYNIERIA PRODUKCJI STUDIA PIERWSZEGO STOPNIA PROFIL OGÓLNOAKADEMICKI Załącznik nr 2 Odniesienie efektów kierunkowych do efektów obszarowych i odwrotnie Załącznik nr 2a - Tabela odniesienia

Bardziej szczegółowo

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Spis treści: 1 WSTĘP... 3 2 DOSTĘP DO SYSTEMU... 3 3 OPIS OGÓLNY SEKCJI TŁUMACZENIA...

Bardziej szczegółowo

PRZEDMIOTOWY SYSTEM OCENIANIA Z ZAJĘĆ KOMPUTEROWYCH

PRZEDMIOTOWY SYSTEM OCENIANIA Z ZAJĘĆ KOMPUTEROWYCH PRZEDMIOTOWY SYSTEM OCENIANIA Z ZAJĘĆ KOMPUTEROWYCH dla uczniów klas IV oraz PRZEDMIOTOWY SYSTEM OCENIANIA Z INFORMATYKI dla uczniów klas V-VI Szkoły Podstawowej nr 6 im. Janusza Korczaka w Jastrzębiu-

Bardziej szczegółowo

Warszawa, dnia 1 lipca 2015 r. Poz. 43 DECYZJA NR 206 KOMENDANTA GŁÓWNEGO POLICJI. z dnia 24 czerwca 2015 r.

Warszawa, dnia 1 lipca 2015 r. Poz. 43 DECYZJA NR 206 KOMENDANTA GŁÓWNEGO POLICJI. z dnia 24 czerwca 2015 r. DZIENNIK URZĘDOWY KOMENDY GŁÓWNEJ POLICJI Warszawa, dnia 1 lipca 2015 r. Poz. 43 DECYZJA NR 206 KOMENDANTA GŁÓWNEGO POLICJI z dnia 24 czerwca 2015 r. zmieniająca decyzję w sprawie programu kursu specjalistycznego

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Załącznik 1. Nazwa kierunku studiów: FIZYKA Poziom kształcenia: II stopień (magisterski) Profil kształcenia: ogólnoakademicki Symbol

Załącznik 1. Nazwa kierunku studiów: FIZYKA Poziom kształcenia: II stopień (magisterski) Profil kształcenia: ogólnoakademicki Symbol Efekty kształcenia dla kierunku studiów FIZYKA TECHNICZNA - studia II stopnia, profil ogólnoakademicki - i ich odniesienia do efektów kształcenia w obszarze nauk ścisłych Kierunek studiów fizyka techniczna

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY SZÓSTEJ W ZAKRESIE WIADOMOŚCI I UMIEJĘTNOŚCI UCZNIÓW

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY SZÓSTEJ W ZAKRESIE WIADOMOŚCI I UMIEJĘTNOŚCI UCZNIÓW EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY SZÓSTEJ W ZAKRESIE I UCZNIÓW Ocena celujący bardzo dobry dobry dostateczny dopuszczający Zakres wiadomości wykraczający dopełniający rozszerzający podstawowy

Bardziej szczegółowo

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r.

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r. Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r. Stworzenie platformy internetowej na potrzeby projektu. 1 Wykonanie portalu internetowego na potrzeby e-usługi, obejmującego

Bardziej szczegółowo

Spis treści. Wstęp... 15. Rozdział 1. Wprowadzenie do e-learningu... 19

Spis treści. Wstęp... 15. Rozdział 1. Wprowadzenie do e-learningu... 19 Spis treści Wstęp... 15 Treść książki... 16 Adresaci książki... 16 Struktura książki... 17 Trzecie wydanie książki... 17 Rozdział 1. Wprowadzenie do e-learningu... 19 Przykłady e-learningu... 20 E-learning

Bardziej szczegółowo

Program Zawsze razem. Gimnazjum Nr 1. Konstantynów Łódzki ul. Łódzka 5/7. www.gimkonst.pl. Program. Zawsze razem. Andrzej Różycki Marzec 2011

Program Zawsze razem. Gimnazjum Nr 1. Konstantynów Łódzki ul. Łódzka 5/7. www.gimkonst.pl. Program. Zawsze razem. Andrzej Różycki Marzec 2011 Gimnazjum Nr 1 Konstantynów Łódzki ul. Łódzka 5/7 www.gimkonst.pl Program Zawsze razem Andrzej Różycki Marzec 2011 1 Spis treści 1. Wstęp... 3 2. Założenia... 3 3. Zakres... 4 4. Treść programu... 5 5.

Bardziej szczegółowo

Poznań, 30.01.2014. Szanowni Państwo,

Poznań, 30.01.2014. Szanowni Państwo, Poznań, 30.01.2014 Szanowni Państwo, Z myślą o Potrzebach Państwa Firmy w SuperMemo Language Center przygotowaliśmy dla ofertę składającą się z autorskich rozwiązań, wspierających efektywną naukę języków

Bardziej szczegółowo

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 21 maja 2012 Historia dokumentu

Bardziej szczegółowo

Temat: Wykorzystywanie zasobów przez ucznia

Temat: Wykorzystywanie zasobów przez ucznia Scenariusz zajęć II etap edukacyjny, zajęcia komputerowe Temat: Wykorzystywanie zasobów przez ucznia Treści kształcenia: Zajęcia komputerowe: 1. Wykorzystywanie komputera oraz programów i gier edukacyjnych

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie mgr Piotr Gaś, dr hab. inż. Jerzy Mischke Ośrodek Edukacji Niestacjonarnej Akademii Górniczo-Hutniczej w Krakowie Samokontrola postępów w nauce z wykorzystaniem Internetu Wprowadzenie W każdym systemie

Bardziej szczegółowo

Rozkład materiału do zajęć z informatyki. realizowanych według podręcznika

Rozkład materiału do zajęć z informatyki. realizowanych według podręcznika Rozkład materiału do zajęć z informatyki realizowanych według podręcznika E. Gurbiel, G. Hardt-Olejniczak, E. Kołczyk, H. Krupicka, M.M. Sysło Informatyka, nowe wydanie z 007 roku Poniżej przedstawiamy

Bardziej szczegółowo

Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka

Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka Test kwalifikacyjny obejmuje weryfikację efektów kształcenia oznaczonych kolorem szarym, efektów: K_W4 (!), K_W11-12, K_W15-16,

Bardziej szczegółowo

KRYTERIA I ZASADY OCENIANIA Z MATEMATYKI. zgodne z Wewnątrzszkolnymi Zasadami Oceniania w Zespole Szkół przy ul. Grunwaldzkiej 9 w Łowiczu.

KRYTERIA I ZASADY OCENIANIA Z MATEMATYKI. zgodne z Wewnątrzszkolnymi Zasadami Oceniania w Zespole Szkół przy ul. Grunwaldzkiej 9 w Łowiczu. KRYTERIA I ZASADY OCENIANIA Z MATEMATYKI zgodne z Wewnątrzszkolnymi Zasadami Oceniania w Zespole Szkół przy ul. Grunwaldzkiej 9 w Łowiczu. Nauczanie matematyki w szkole podstawowej w klasach IV VI odbywa

Bardziej szczegółowo

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Szymon Klimuk Nr albumu: 187408 Praca magisterska na kierunku Informatyka Monitorowanie

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z INFORMATYKI KLASA CZWARTA

WYMAGANIA EDUKACYJNE Z INFORMATYKI KLASA CZWARTA EDUACYJNE Z INFORMATYI LASA CZWARTA OPRACOWANO NA PODSTAWIE PROGRAMU likplik. Informatyka w klasach IV-VI szkoły podstawowej I PODRĘCZNIA O NR DOP. 58/09/S Przewidziane w Programie nauczania likplik treści

Bardziej szczegółowo

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW INFORMATYKA. STUDIA PIERWSZEGO STOPNIA - PROFIL OGÓLNOAKADEMICKI

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW INFORMATYKA. STUDIA PIERWSZEGO STOPNIA - PROFIL OGÓLNOAKADEMICKI EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW INFORMATYKA. STUDIA PIERWSZEGO STOPNIA - PROFIL OGÓLNOAKADEMICKI Umiejscowienie kierunku w obszarze kształcenia: Kierunek studiów informatyka należy do obszaru kształcenia

Bardziej szczegółowo

II. Kontrola i ocena pracy ucznia.

II. Kontrola i ocena pracy ucznia. II. Kontrola i ocena pracy ucznia. Formy kontroli A. Kontrola bieżąca (sprawdza postępy uczniów, zachęcając ich do dalszej systematycznej pracy, pozwala na uzupełnienie braków w wiedzy i skorygować błędy).

Bardziej szczegółowo

Księgarnia internetowa Lubię to!» Nasza społeczność

Księgarnia internetowa Lubię to!» Nasza społeczność Kup książkę Poleć książkę Oceń książkę Księgarnia internetowa Lubię to!» Nasza społeczność SPIS TREŚCI Drodzy Uczniowie!........................................... 5 Rozdział 1. Bezpieczne posługiwanie

Bardziej szczegółowo

Szkolenie biblioteczne w formie e-learningu

Szkolenie biblioteczne w formie e-learningu Anna Gruca anna.gruca@bg.agh.edu.pl Biblioteka Główna Akademii Górniczo-Hutniczej Szkolenie biblioteczne w formie e-learningu w Bibliotece Głównej Akademii Górniczo-Hutniczej Szkolenie biblioteczne w formie

Bardziej szczegółowo

3.1. Na dobry początek

3.1. Na dobry początek Klasa I 3.1. Na dobry początek Regulamin pracowni i przepisy BHP podczas pracy przy komputerze Wykorzystanie komputera we współczesnym świecie Zna regulamin pracowni i przestrzega go. Potrafi poprawnie

Bardziej szczegółowo

Tworzenie interaktywnych pomocy dydaktycznych z wykorzystaniem TIK i inne innowacyjne metody w nauczaniu różnych przedmiotów w szkole podstawowej

Tworzenie interaktywnych pomocy dydaktycznych z wykorzystaniem TIK i inne innowacyjne metody w nauczaniu różnych przedmiotów w szkole podstawowej Tworzenie interaktywnych pomocy dydaktycznych z wykorzystaniem TIK i inne innowacyjne metody w nauczaniu różnych przedmiotów w szkole podstawowej KATARZYNA SKARACZYŃSKA MARTA WOJDAT Technologie informacyjno-komunikacyjne

Bardziej szczegółowo

LearnIT project PL/08/LLP-LdV/TOI/140001

LearnIT project PL/08/LLP-LdV/TOI/140001 LearnIT project PL/08/LLP-LdV/TOI/140001 Biuletyn Wydanie 7 Lipiec 2010 Drogi czytelniku, Prezentujemy z przyjemnością siódme wydanie biuletynu LearnIT. W tym wydaniu chcielibyśmy poinformować Cię o przebiegu

Bardziej szczegółowo

Praca w sieci z serwerem

Praca w sieci z serwerem 11 Praca w sieci z serwerem Systemy Windows zostały zaprojektowane do pracy zarówno w sieci równoprawnej, jak i w sieci z serwerem. Sieć klient-serwer oznacza podłączenie pojedynczego użytkownika z pojedynczej

Bardziej szczegółowo

Ja i moje zainteresowania tworzenie własnej strony internetowej

Ja i moje zainteresowania tworzenie własnej strony internetowej Ja i moje zainteresowania tworzenie własnej strony internetowej 1. Cele lekcji a) Wiadomości Uczeń: - potrafi wyjaśnić pojęcie strona WWW, - zna sposoby tworzenia stron internetowych. b) Umiejętności Uczeń

Bardziej szczegółowo

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA.

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

Zasady Wykorzystywania Plików Cookies

Zasady Wykorzystywania Plików Cookies Zasady Wykorzystywania Plików Cookies Definicje i objaśnienia używanych pojęć Ilekroć w niniejszym zbiorze Zasad wykorzystywania plików Cookies pojawia się któreś z poniższych określeń, należy rozumieć

Bardziej szczegółowo

Postępy edukacji internetowej

Postępy edukacji internetowej Postępy edukacji internetowej na przykładzie działań Centralnego Instytutu Ochrony Pracy Państwowego Instytutu Badawczego dr inż. Małgorzata Suchecka inż. Artur Sychowicz Centralny Instytut Ochrony Pracy

Bardziej szczegółowo

z poradni pedagogicznej

z poradni pedagogicznej Kryteria oceniania zajęć komputerowych w klasach kształcenia zintegrowanego dla dzieci z opiniami z poradni pedagogicznej Zajęcia z informatyki są ćwiczeniami praktycznymi, które łączą zabawę z nauką,

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Zastosowania Robotów Mobilnych

Zastosowania Robotów Mobilnych Zastosowania Robotów Mobilnych Temat: Zapoznanie ze środowiskiem Microsoft Robotics Developer Studio na przykładzie prostych problemów nawigacji. 1) Wstęp: Microsoft Robotics Developer Studio jest popularnym

Bardziej szczegółowo

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c Wymagania edukacyjne w technikum ADMINISTROWANIE BAZAMI DANYCH kl. 4c Lp. 1 2 4 5 Temat Zasady dotyczące zarządzania projektem podczas prac związanych z tworzeniem bazy oraz cykl życiowy bazy Modele tworzenia

Bardziej szczegółowo

Podręcznik Administratora Szkoły

Podręcznik Administratora Szkoły Projekt systemowy 'Fascynujący Świat Nauki i Technologii' nr POKL.09.01.02-16-001/13 jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego. Projekt systemowy Fascynujący

Bardziej szczegółowo

Przedmiotowy system oceniania z informatyki

Przedmiotowy system oceniania z informatyki Przedmiotowy system oceniania z informatyki 1. Cel. 2. Założenia ogólne. 3. Zakres aktywności a ocena. 4. Ocena bieżąca. 5. Ocena semestralna. 6. Kryteria wymagań klasy II do III 7. Szczegółowy opis wymagań

Bardziej szczegółowo

E-Podręcznik w edukacji. Marlena Plebańska

E-Podręcznik w edukacji. Marlena Plebańska E-Podręcznik w edukacji Marlena Plebańska e-podręczniki 62 e-podręczniki, 14 przedmiotów, 2500 zasobów edukacyjnych dostępnych z poziomu tabletu, komputera, telefonu, czytnika książek, otwarta licencja,

Bardziej szczegółowo

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4 Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Przedmiotowy system oceniania i wymagania edukacyjne dla klasy I III z informtyki

Przedmiotowy system oceniania i wymagania edukacyjne dla klasy I III z informtyki Przedmiotowy system oceniania i wymagania edukacyjne dla klasy I III z informtyki Przedmiotem oceniania są: - wiadomości, - umiejętności, - postawa ucznia i jego aktywność. Formy aktywności podlegającej

Bardziej szczegółowo

Już wkrótce matura 2008, czyli jak przygotować się do egzaminu?

Już wkrótce matura 2008, czyli jak przygotować się do egzaminu? Scenariusz 3 Już wkrótce matura 2008, czyli jak przygotować się do egzaminu? Scenariusz zajęć dla uczniów klas maturalnych, przeznaczony na godzinę wychowawczą. Cele lekcji: Uczeń powinien: zapoznać się

Bardziej szczegółowo

Sposoby sprawdzania osiągnięć edukacyjnych uczniów

Sposoby sprawdzania osiągnięć edukacyjnych uczniów 1 Sposoby sprawdzania osiągnięć edukacyjnych uczniów Dla uczniów zainteresowanych przygotowywane są ćwiczenia trudniejsze, aby mogli wykazać się swoimi umiejętnościami i wiedzą. Uczniom mającym trudności

Bardziej szczegółowo

Przedmiotowy system oceniania z informatyki

Przedmiotowy system oceniania z informatyki Przedmiotowy system oceniania z informatyki Przedmiotowy system oceniania został skonstruowany w oparciu o następujące dokumenty: Rozporządzenie MEN z dnia 7 września 2004 roku w sprawie zasad oceniania,

Bardziej szczegółowo

Program modułu multimedialnego mgr Urszula Galant. PROGRAM MODUŁU MULTIMEDIALNEGO DLA UCZNIÓW KLAS IV VI SP im. Szarych Szeregów w Płochocinie

Program modułu multimedialnego mgr Urszula Galant. PROGRAM MODUŁU MULTIMEDIALNEGO DLA UCZNIÓW KLAS IV VI SP im. Szarych Szeregów w Płochocinie PROGRAM MODUŁU MULTIMEDIALNEGO DLA UCZNIÓW KLAS IV VI SP im. Szarych Szeregów w Płochocinie 1 I. WSTĘP Wraz z powszechną komputeryzacją większości dziedzin życia codziennego oraz szybkim rozwojem sprzętu

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Tester oprogramowania 2014/15 Tematy prac dyplomowych Tester oprogramowania 2014/15 Tematy prac dyplomowych 1. Projekt i wykonanie automatycznych testów funkcjonalnych wg filozofii BDD za pomocą dowolnego narzędzia Jak w praktyce stosować Behaviour Driven

Bardziej szczegółowo

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Techniki algorytmiczne realizowane przy pomocy grafiki żółwia w programie ELI 2,0. Przedmiot: Informatyka

Bardziej szczegółowo

Przedmiotowy system oceniania MATEMATYKA Miejskie Gimnazjum nr 3 im. Jana Pawła II

Przedmiotowy system oceniania MATEMATYKA Miejskie Gimnazjum nr 3 im. Jana Pawła II Przedmiotowy system oceniania MATEMATYKA Miejskie Gimnazjum nr 3 im. Jana Pawła II Przedmiotem oceniania są: - wiadomości, - umiejętności, - postawa ucznia i jego aktywność. Cele ogólne oceniania: - rozpoznanie

Bardziej szczegółowo

PRZEDMIOTOWY SYSTEM OCENIANIA Z JĘZYKA ANGIELSKIEGO KLASY I-III

PRZEDMIOTOWY SYSTEM OCENIANIA Z JĘZYKA ANGIELSKIEGO KLASY I-III PRZEDMIOTOWY SYSTEM OCENIANIA Z JĘZYKA ANGIELSKIEGO KLASY I-III 1 I. Cele nauczania przedmiotu Nadrzędnym celem nauczania w klasach 1-3 jest opanowanie przez uczniów podstaw języka angielskiego w stopniu

Bardziej szczegółowo

Nowy interfejs w wersji 11.0 C8 BETA

Nowy interfejs w wersji 11.0 C8 BETA Nowy interfejs w wersji 11.0 C8 BETA Copyright 2012 COMARCH Wszelkie prawa zastrzeżone Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione.

Bardziej szczegółowo

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

Pytanie: Odpowiedź: Pytanie: Odpowiedź: . Pytanie: Odpowiedź: Pytanie: element multimedialny lub interaktywny Odpowiedź: Pytanie:

Pytanie: Odpowiedź: Pytanie: Odpowiedź: . Pytanie: Odpowiedź: Pytanie: element multimedialny lub interaktywny Odpowiedź: Pytanie: W pozycji Dodatkowe informacje pkt. 1 a) czytamy: przygotowanie elektronicznej (edytowalnej) wersji dokumentu, stanowiącego podział treści na ekrany zgodnie z treściami kształcenia dostarczonymi od Zamawiającego

Bardziej szczegółowo

Realizacja modelu nauczania hybrydowego. jasinski.ukw.edu.pl

Realizacja modelu nauczania hybrydowego. jasinski.ukw.edu.pl Realizacja modelu nauczania hybrydowego na przykładzie platformy b-learningowej dla studentów filologii germańskiej Arkadiusz Jasinski jasinski.ukw.edu.pl Na początku był e-learning czyli model nauczania

Bardziej szczegółowo

Elementy planowania zajęć akademickich w Internecie

Elementy planowania zajęć akademickich w Internecie Elementy planowania zajęć akademickich w Internecie Anna K. Stanisławska-Mischke, UJ Maria Wilkin, UW 2. słowa o nas Anna K. Stanisławska-Mischke: od 2006 w Centrum Zdalnego Nauczania Uniwersytetu Jagiellońskiego,

Bardziej szczegółowo

e-book Jak się uczyć? Poradnik Użytkownika

e-book Jak się uczyć? Poradnik Użytkownika e-book Jak się uczyć? Poradnik Użytkownika Copyright Edgard, Warszawa 2010 Audio Kurs O serii Audio Kursy to kursy językowe wydawnictwa Edgard składające się z książki oraz płyt audio CD lub z nagraniami

Bardziej szczegółowo

Wstęp do poradnika metodycznego 5. 2. Przykładowy rozkład materiału 13 I rok nauczania...13 II rok nauczania...13 Rozkład materiału:...

Wstęp do poradnika metodycznego 5. 2. Przykładowy rozkład materiału 13 I rok nauczania...13 II rok nauczania...13 Rozkład materiału:... Spis treści Wstęp do poradnika metodycznego 5. Oprogramowanie wykorzystywane w podręczniku 7 Środowisko... 7 Narzędzia... 8. Przykładowy rozkład materiału 3 I rok nauczania...3 II rok nauczania...3 Rozkład

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

ABC e - learningu. PROJEKT PL35 KOMPETENTNY URZĘDNIK WYśSZA JAKOŚĆ USŁUG W WIELKOPOLSCE

ABC e - learningu. PROJEKT PL35 KOMPETENTNY URZĘDNIK WYśSZA JAKOŚĆ USŁUG W WIELKOPOLSCE ABC e - learningu Termin e-learning (z ang. learning nauka, wiedza, poznanie) oznacza nauczanie na odległość przy wykorzystaniu najnowocześniejszych technik informatycznych. Dydaktyka wspomagana jest za

Bardziej szczegółowo

Blok Matematyczny programu Klucz do Uczenia Si. Projekt dla poradni psychologiczno-pedagogicznych

Blok Matematyczny programu Klucz do Uczenia Si. Projekt dla poradni psychologiczno-pedagogicznych Blok Matematyczny programu Klucz do Uczenia Si Projekt dla poradni psychologiczno-pedagogicznych Ostatnie lata pokazują, że coraz więcej dzieci ma trudności w opanowaniu umiejętności matematycznych Według

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Transformacja wiedzy w budowie i eksploatacji maszyn

Transformacja wiedzy w budowie i eksploatacji maszyn Uniwersytet Technologiczno Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy Wydział Mechaniczny Transformacja wiedzy w budowie i eksploatacji maszyn Bogdan ŻÓŁTOWSKI W pracy przedstawiono proces

Bardziej szczegółowo