-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recenzja #1
base: master
Are you sure you want to change the base?
Recenzja #1
Conversation
Nie obraziłbym się na opis mówiący mi na co fajnie byłoby zwrócić uwagę albo co jest już do recki wystawione. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pobieżny przegląd za nami, oto co potrzebuję by móc przeglądnąć to poważnie:
- rozgraniczenia między treścią zadań a silnikiem quizu
- stabilniejszej formulaiczności (np. przez DRY)
Rozgraniczenie
Wyjaśnię od razu. Obecnie w jednym pliku jest wszystko: treść pytania, możliwe odpowiedzi, czas na zadanie i na eksperymenty, prawidłowa odpowiedź, weryfikacja zadania, drukowanie na ekran, demonstracje JShella itp. Jeśliby natomiast dostarczyć funkcję drukującą pytanie i możliwe odpowiedzi oraz informującą o czasie jaki na odpowiedź przysługuje, to już w tym momencie mnóstwo SOUTów spada, bo zastępuje je wywołanie funkcji. I ja nie patrzę na silnik quizu ORAZ na pytanie NARAZ, tylko przepatruję osobno silnik quizu a osobno pytanie. Formulaiczność jest potrzebna uczącym się ponieważ rutyna wspomaga naukę umożliwiając koncentrację na nowym materiale lub praktykowanie dopiero co poznanego materiału.
Notacja pytań
Od razu zaproponuję tu kilka notacji pytań:
- zwykły plik .txt, z ustalonym formatem
- plik .properties
- plik .json (miałaś go jako txt, nie wiem czemu go tu nie widzę, zwłaszcza, że chyba już do niego miałaś parser?)
Idealnie byłoby, aby quiz z prymitywów mógł być modyfikowany (dodawanie czy zmiana pytań) przez operację na pliku tekstowym (obojętne czy .properties, .json czy .txt, ale preferowanie: jednym na temat, czyli np. prymitywy mają własny plik, słowa kluczowe czy tablice - własne pliki). Można o tym myśleć jako o bazie pytań.
Pytanie powinno mieć treść, przykładowe odpowiedzi, poprawną odpowiedź, czas jaki na nie dajemy. Może mieć coś ekstra, np. czas na wypełnienie ćwiczenia pomocniczego, mającego pomóc w odpowiedzi na pytanie właściwe, zapoznanie się z jakąś funkcją która może pomóc, czy przeczytanie rezultatu polecenia Jshell jakie wykonaliśmy. To co pytanie musi mieć wiąże się z następną kwestią.
Formulaiczność:
- chciałbym by zadawanie pytań było proste i wymagało albo wywołania funkcji w pętli albo wołania funkcji z listą
- oczekiwanie na pytanie powinno być odpowiednio wycyrklowane, z maksymalnym czasem nie przekraczającym minuty (nie chcemy by ktoś szczególnie długo szukał po necie, chcemy by całe quizy miały z góry określony czas - na Akademii nie ma zbyt wiele czasu na powtórki i raczej wolimy by nasz uczeń nie wychodził z JShella).
- ponieważ może być, że nie będzie odpowiedzi, niech domyślnie odpowiedź będzie "czas minął, 0 pkt!". W ten sposób unikamy problemu, że odpowiedź na poprzednie pytanie jest bieżącą odpowiedzią. Czyli przechodząc między pytaniami resetujemy zmienną odpowiedź do wartości domyślnej.
- powinny być zarezerwowane wartości odpowiedzi, które będziemy wykorzystywać do sterowania quizem, np. odpowiedź !pauza pauzuje czas (na chwilę, by np. uczeń mógł wyjść do toalety) a odpowiedź !koniec kończy quiz, a !punkty pisze ile mamy obecnie punktów itp. Można też pomyśleć o innym systemie komend - chcę po prostu dać uczniom pewne możliwości sterowania quizem, lub zostawić sobie furtkę na ich implementację potem.
Silnik
Silnik quizu to wszystkie funkcje, jakie pomagają w przeprowadzaniu quizu. Tam powinna kryć się logika zadawania pytań, weryfikacji odpowiedzi, ewentualne komendy.
try{ | ||
Thread.sleep(time); | ||
} catch (InterruptedException e){ | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
serr przynajmniej mogłoby tu być. Jest coś takiego jak spurious wakeup, co może wybudzić uśpiony wątek spoza aplikacji zatem nawet jak Ty nie planujesz go budzić lub mu przerywać, to się może zdarzyć.
System.out.println("An array is a container object that holds a fixed number of values of a single type."); | ||
System.out.println("The length of an array is established when the array is created. "); | ||
System.out.println("Each item in an array is called an element, and each element is accessed by its numerical index."); | ||
System.out.println(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Zamiast takich rzeczy może chociaż \n
w poprzedniej linii?
/list mixString | ||
Thread.sleep(5000); | ||
System.out.println(); | ||
System.out.println("And we will test it for this calls:"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This calls znaczy To woła. Testowanie dla "tych wywołań" będzie brzmiało "these calls".
- learning to attach jar - load classes with json converter
@LIttleAncientForestKami |
No description provided.