Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Автоматизированная обработка результатов опроса в среде GNU/Linux (часть 1)


Автор: Владимир Царьков
Дата публикации: 09.06.2011

В статье рассказано о том, как в среде GNU/Linux с помощью языка программирования Perl, программ script и calc реализовать автоматизированную обработку результатов опроса, целью которого является выяснение уровня готовности студентов вуза к самообразованию. Предлагаемый подход к созданию автоматизированной среды обработки результатов опроса, в первую очередь, может оказаться полезным педагогам, психологам и социологам, интересующимся возможными путями облегчения анализа экспериментальных данных средствами свободных компьютерных программ.

Постановка задачи

Автор данной статьи, занимаясь научной деятельностью в области педагогики, столкнулся с отсутствием доступных для широкого использования опросников, выявляющих уровень готовности студентов вуза к самообразованию на базе оценки психологического состояния испытуемых, а не только на их энциклопедической подкованности. В результате, опросник пришлось придумывать самому. При этом, разумеется, возникла задача как можно меньшими силами и с наименьшим количеством ошибок статистически обработать результаты опроса.

Учитывая, что такая задача часто встаёт перед педагогами, психологами и социологами, было решено написать цикл статей, в котором все желающие могли бы найти описание подходов к решению данной задачи средствами свободных компьютерных программ.

Инструментарий для решения задачи

Язык Perl применяется при автоматизации великого множества разнообразных процессов обработки данных. Подойдёт он и для решения нашей задачи. Помимо всего прочего, Perl широко используется программистским сообществом, а также входит в набор стандартных программ абсолютного большинства дистрибутивов GNU/Linux.

Немаловажным аргументом в пользу применения Perl, как средства для решения поставленной задачи, является и то, что он относительно прост для изучения. Более того, про Perl написано много книг, часть из которых легко найти в Интернет.

Решающим же аргументом для нас стало то, что Perl является свободной компьютерной программой: его можно неограниченно использовать, копировать, модифицировать (язык программирования - это тоже программа) и распространять результаты модификации. Более детально, о том, какие программы называются свободными см.: [3].

Помимо всего прочего нам потребуется командный интерпретатор (для Perl нужна среда, в которой он будет работать). Остановим свой выбор на Bash (см.: [4]).

Для ввода текста программы подойдёт редактор vim, однако, для неопытных пользователей, gedit может показаться более удобным.

Заманчиво было бы сразу попытаться cвязать программу на Perl с системой управления базами данных (СУБД). Разумеется, структурированные запросы к реляционной базе данных позволили бы усилить доступный пользователю аппарат статистического анализа результатов опроса. Однако, применение СУБД требует настройки дополнительного программного обеспечения (как в среде разработки программы, так и в среде её использования), а также ознакомления с языком запросов Structured Query Language, в случае использования реляционных СУБД (например, MySQL). Потому было принято решение, в текущей статье, рассказать о том, как автоматизировать процесс обработки результатов опроса без СУБД. Практика применения СУБД будет описана в последующих публикациях.

Объект автоматизации

Объектом автоматизации, в нашем случае, будет процесс статистической обработки ответов студентов на вопросы опросника.

Особенность опросника, заключающаяся в необходимости оценки психологического состояния респондентов, потребовала от нас ввести несколько типов вопросов, каждый из которых соотносился бы с одним и более факторами готовности студента вуза к самообразованию. К этим факторам мы причисляем: психологический, социально-психологический, социально-экономический и дифференциально-психофизиологический.

Алгоритм автоматизированной обработки результатов опроса

Опросник содержит три раздела (с двумя вариантами ответа на вопрос, тремя вариантами и четырьмя). Для удобства решено реализовать обработку результатов опроса по каждому из разделов в отдельной программе (q1-short.pl; q2-short.pl; q3-short.pl).

Были составлены две версии опросника: детальная и краткая. Мы будем рассматривать программный код для обсчёта краткой версии, так как он (с точки зрения программирования) пока ничем не будет отличаться от детальной, кроме как меньшим объёмом.

Итак, первым шагом нашего алгоритма является запуск программы, соответствующей нужному разделу опросника.

Далее (второй шаг), в ответ на запрос ЭВМ в виде текстового сообщения, содержащего строку "Question НОМЕР_ВОПРОСА:", пользователь вводит латинскую букву ("a", "b", "c" или "d"), соответствующую выбранному респондентом ответу на вопрос.

После того, как пользователь ввёл все ответы респондента на вопросы, программа автоматически производит расчёты и выводит числовые значения, описывающие уровень готовности студента вуза к самообразованию (третий шаг).

Для получения общего представления об уровне готовности каждого отдельного студента к самообразованию, в качестве меры центральной тенденции, мы используем "среднее арифметическое".

Недостатки предлагаемого подхода

Временный отказ от использования СУБД при обработке результатов опроса (в рамках данной статьи) вынуждает пока что не затрагивать тему автоматизации процесса определения мер изменчивости и корреляции экспериментальных данных.

Все желающие обрушиться с критикой на автора статьи могут сделать это по электронной почте. Кроме шуток, я буду рад вопросам, конструктивной критике и предложениям по содержанию данной статьи. Всё это принимается по адресу lipetsk-gnu-lug at bk period ru. Пишите!

Решение задачи автоматизированной обработки результатов опроса средствами Perl

Далее представлен программный код для решения поставленной ранее задачи. Непосредственно в тексте статьи мы разместим код обработчика ответов респондентов на вопросы с тремя альтернативными вариантами ответов (архив с остальным программным кодом, распространяемым согласно GNU General Public Licenese, находится здесь в архиве).

Как видно из представленного выше кода, в зависимости от того, какую латинскую букву ("a", "b" или "c") введёт пользователь, программа отправляет на вход функции feval() соответствующие числовые значения. В заключительной части кода программы вычисляется процент готовности респондента к самообразованию. 100% - максимальная готовность; 0% - минимальная.

Использование предлагаемой программы ускоряет процесс обсчёта результатов опроса (по сравнению с полностью ручным обсчётом), а также снижает риск вычислительных ошибок "по невнимантельности".

Надеюсь, читателям-гуманитариям удалось ухватить основную идею рассмотренного выше программного кода.

Пример сессии работы с предлагаемой программой

Запустим нашу программу в командном интерпретаторе Bash.

perl q2-short.pl

Далее представлен пример стандартной сессии работы с программой.

Question 1: a

Question 2: a

Question 3: c
=====================
The result is: 3 out of 3
The percentage is: 100
B = 2 out of 2
Psychological factor: 100 percent
C = 1 out of 1
Socio-economical factor: 100 percent
Overall result in the second part of questionary is: 100 percent

Вспомогательные программы для комфортной обработки опросника

Вывод, генерируемый q1-short.pl, q2-short.pl и q3-short.pl, можно сохранить в текстовых файлах. Этого легко добиться, применяя программу script из пакета util-linux.

К примеру, для того, чтобы сохранить вывод программы q2-short.pl, подойдёт следующая команда.

script -c "perl q2-short.pl" m1-o2

Вывод будет записан в файл отчёта m1-o2, имя которого может значить, что он содержит данные об ответах первого по списку студента из вуза m, отвечавшего на вопросы из второй части опросника (там, где можно выбирать из трёх вариантов).

Любопытной идеей также является программная реализация анализа содержимого файлов отчётов.

Для попутных мелких вычислений удобно использовать программу calc из пакета apcalc (подробнее см.: [2]).

Вместо заключения

В последующих публикациях планируется детально осветить процесс автоматизированной обработки экспериментальных данных с использованием СУБД в среде GNU/Linux. Будут затронуты вопросы определения мер изменчивости и корреляции экспериментальных данных.

Литература для самообразования

  1. Гласс Дж., Стэнли Дж. Статистические методы в педагогике и психологии. М.: Издательство "Прогресс", 1976. 496 с.
  2. Морган Б. Быстрые и удобные вычисления в командной строке. URL: http://rus-linux.net/lib.php?name=/MyLDP/consol/calculating.html (дата обращения: 07.06.2011).
  3. Определение свободной программы. URL: http://www.gnu.org/philosophy/free-sw.ru.html (дата обращения: 07.06.2011).
  4. Руководство по Bash для начинающих. Глава 1: Командная оболочка и скрипты Bash. http://rus-linux.net/nlib.php?name=/MyLDP/BOOKS/Bash-Guide-1.12-ru/bash-guide-01.html (дата обращения: 07.06.2011).
  5. Часто задаваемые вопросы о Perl/CGI. URL: http://www.opennet.ru/base/faq/perl_cgi_faq.txt.html (дата обращения: 07.06.2011).
  6. man calc
  7. man script