Projekt programu wspomagającego nauczanie - dla telefonów komórkowych z Javą.

·        Co to ma być?

Program będzie się składał z dwóch (lub trzech) części:

1.      Edytor baz danych – program działający na komputerze PC służący do tworzenia plików z bazami informacji, których chcemy się nauczyć. Każda taka baza to plik zawierający kolekcję pytań i odpowiedzi (oczywiście poprawnych). Tak stworzone bazy danych będzie można wgrywać do komórki z programem uczącym.

2.      Program uczący – program działający na telefonie komórkowym z Javą, którego działanie polega na zadawaniu pytań użytkownikowi według określonych zasad. Kolejne powtórki są planowane na określone dni tak, aby maksymalizować stosunek ilości zapamiętanych informacji do poświęcanego czasu.

3.      (opcjonalnie)  Edytor baz danych w wersji na komórkę – być może zrobię możliwość wstawiania pytań i odpowiedzi nie w postaci tekstu, ale nagrań dźwiękowych i wtedy sensownym byłoby napisanie takiego edytora na komórce (bo znika problem powolnego wklepywania literek na komórce), ale to może nie wszędzie działać ze względu na ograniczenia pamięciowe.

·        Plan pracy

1.      Stworzenie biblioteki do komunikacji z użytkownikiem i do obsługi plików na komórce i przetestowanie jej.

2.      Napisanie programu uczącego bez konkretnego algorytmu powtórek (bo to będzie największa część programu) tak aby działał dla dowolnego algorytmu (będzie interface Algorytm { … })

3.      Napisanie edytora baz danych (w Javie).

4.      Napisanie uproszczonego algorytmu implementującego ten interfejs (np. każący powtórzyć każdą jednostkę dokładnie trzy razy z dwudniowymi odstępami czasu).

5.      Przetestowanie programu na różnych telefonach.

6.      Napisanie algorytmu powtórek.

7.      Testowanie i ulepszanie algorytmu (może będzie parę do wyboru przez użytkownika).

8.      Stworzenie przykładowych baz danych.

·        Klasy programu uczącego (wersja wstępna)

W katalogu programu będą dwa rodzaje plików:

1.      Pliki baz danych (.data)

2.      Pliki z stanem nauki dla poszcz. baz danych (.state)

o       LearningMIDLet – Główna klasa programu

§         void start()

§         ...

o       interface Algorithm

§         ...

o       Calendar – tu będą pamiętane powtórki i tu będzie algorytm wpisywał planowane powtórki na przyszłe dni.

§        

o       Interface – zbiór procedur wyświetlających coś lub pytających użytkownika o coś

§         void message(String s)

§         bool yesOrNo(String question)

§         UserAnswer itemQuestion(Item i) – pyta; czeka na dowolny klawisz mierząc time1; wyświetla popr. odp.; czeka na cyfre od 1 do 6 mierząc time2; zwraca czasy i wciśniętą cyfrę.

§        

o       UserAnswerco odpowiedział użytkownik i w jakim czasie

§         int time1

§         int time2

§         int answerliczba z zakresu 1 - 6

o       Itemjednostka przechowująca pytanie i (poprawną) odpowiedź.

§         Question question

§         Answer answer

§         void Edit()

o       Questionpytanie (niekoniecznie zwykły tekst – może to być nagranie dźwiękowe)

o       Answerodpowiedź (tak jak wyżej)

o       i inne …