19 февруари 2006

Нов семестър, нов проект

Започва летният семетър и обикновено през него ми се налага да водя разни лекции и упражнения, както и да изпитвам студенти. Въпреки, че не съм много привърженик на тестовата система, защото тя помага да се оценява знание, а не начин на мислене, през тази година хората, които сме ангажирани да се занимаваме със съответния курс, решихве да въведем и приличен тестов елемент. Съставянето на тестове като цяло май е досадна работа и затова се напънах да направя програмка, чрез която да ни се улесни работата. Идеята е следната разделяме материала на няколко секции и за всяка секция измисляме набор от въпроси, които въвеждаме в програмата. След което, ако ни трябва тест с 50 въпроса, казваме от всяка секция по колко въпроса искаме, програмката си избира случайни и после на така избраните случайни въпроси им се разместват отговорите, така че верният отговор да присъства почти еднакво наброй пъти на всяка от възможните позции. Така се получава балансиран тест и се гарантира, че ако изпитвания заложи да отговаря по еднакъв начин на всички въпроси, то не може да даде повече от 1/n (n е броя на възможните отговори) верни отговора. Ако изискването за тройка е 60% успеваемост, то тази стратегия не води до нищо. Резултата от програмката е LaTeX файл, който остава да се компилира. Другото положително нещо, което идва е, че всеки студент може получи индивидуален тест и така да се минимизира ефекта от преписването.

Разработването на тази програмка, колко и тривиално да изглежда, дори и за мое учудване ми отне доста време. Това е една от другите причини, поради която не бях писал от доста време в блога. Използвах Qt4 библиотеката, която дава възможност програмката да се компилира и използва на няколко платформи. Засега впечатленията ми от Qt4 са положителни. Цялата схема за разделяне на данните от интерфейса в така наречения модел-изглед подход ми харесва. Обаче има и доста неща за додялкване. Така например ми се наложи да наследя един изглед само за да мога да прихвана един сигнал за промяна на избран елемент. Не ми стана ясно защо базовия клас не го излъчваше. Така или инчае в момента в програмката, която съм направил има някаква базова функционалност, която има накъде да се разширява, така че ако на някой ще му от от полза такова нещо и му липсва функционланст да пише, когато имам време ще я добавя.

Няма коментари: