Русский   English
ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

На момент написання статті дипломний проект не був закінчений. Остаточне завершення червень 2018 року. Повний текст роботи та матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.

Зміст

Вступ

У сучасному світі велике значення має контроль знань студентів, працівників і тощо. В даному контексті контроль розуміється як система науково обґрунтованої перевірки результатів знань

Є безліч форм контролю – іспит, залік, атестація, контрольна. Але в епоху розвитку інформаційного суспільства, Інтернет технологій, глобальної комп’ютеризації актуальними стають різноманітні системи тестування, які можуть замінити традиційні методи контролю та викладання. Такі комп’ютерні системи тестування набагато зручніше використовувати з системі освіти.

Тест дозволяє провести перевірку знань опитавши всіх учасників по питань потрібного матеріалу в таких самих умовах. Це значно підвищує обгрунтованість, об’єктивність і нераспливчатость оцінки в порівнянні, скажімо, з іспитом.

1. Актуальність теми

В даний час в багатьох навчальних закладах широко використовуються рейтингові системи оцінки знань студентів, які спрямовані на підвищення ефективності процесу навчання. Для отримання рейтингової оцінки необхідно пройти кілька етапів контролю (поточний, проміжний, рубіжний, підсумковий) [5].

Найбільш популярною формою проміжного і рубіжного контролю є комп’ютерне тестування, що дозволяє дати об’єктивну оцінку знань студентів по досліджуваної дисципліни, при цьому знизити неоднорідність пропонованих вимог і підвищити продуктивність праці викладача.

Комп’ютерна система тестування, звичайно, дуже зручна для застосування її в процесі навчання, але в переважній більшості дані системи розроблені для непрограммірующіх користувачів за принципом питання відповідь.

Для перевірки практичних умінь і навичок студента використовується завдання, тобто тестове завдання, для відповіді на який необхідно провести певні інтелектуальні дії, пов’язані з вирішенням завдання. При цьому виникає складність оцінки наданих відповідей у випадках, коли ця відповідь може бути неоднозначним: фрагмент коду на мові програмування, структурна схема цифрового пристрою, програма HDL і інші. Складність полягає в наступному:

  1. Наявність не передбачуваної кількості варіантів правильної відповіді (в разі завдання програмування програмний код може бути написаний багатьма різними способами, кожен з яких може бути вірним).
  2. Значні витрати часу та інтелектуальних зусиль на експертну перевірку відповіді.

Перший пункт не дозволяє використовувати традиційні типи тестових завдань при комп’ютерному тестуванні, а другий – стимулює знаходження нових методів автоматизації перевірки задач за допомогою комп’ютерних засобів. Тому з’являється необхідність розробки способів вирішення завдань, які могли б стати основою автоматичної перевірки.

При автоматизації перевірки рішення задач виникає проблема організації обчислювальної системи для проведення одночасного тестування знань групи студентів, адже в такому випадку обчислювальних можливостей однієї ЕОМ в окремих випадках уже не вистачає. Тому необхідно провести відповідні розрахунки та дослідження для визначення доцільності вибору тієї чи іншої структури обчислювальної системи в залежності від вимог системи тестування.

Крім того, при проведенні тестування знань як дистанційно, так і локально, важливим є забезпечення рівня безпеки (авторизація, захист бази тестів і тощо), а також організація роботи як зі студентами, так і з викладачами.

Таким чином, робота, спрямована на розробку нових способів тестування знань і розробку на їх основі систем тестування знань, є актуальною.

2. Мета і завдання дослідження

Створення моделі системи тестування на базі web-технологій є вкрай перспективною і актуальним завданням. Метою даного дипломного проекту є створення системи комп’ютерного тестування знань за допомогою засобів web-розробки і створення програми для роботи тестової системи. У конкретному випадку передбачається реалізація захисту від копіювання інформації, списування при контролі знань, реалізація системи вирішення завдань.

Перед створенням моделі подібної програми тестування потрібно визначити набір функцій і вимог. Перелічимо основні функції, вимоги, характеристики системи тестування:

Варто так само згадати вимоги до тестовим завданням:

Розглянемо пункти гнучке управління системою тестування , висока безпека, захищеність . Це базові параметри і присутність їх необхідно. Перший пункт вирішується, наприклад, створенням банку питань, які будуть вибиратися звідти випадковим чином, а так само перемішуванням варіантів відповіді. Тому навіть в тому випадку, якщо деякі студенти отримають одні і ті ж питання (причому порядковий номер у них буде напевно різний), то номери правильних варіантів відповіді у них теж будуть різними. Другий пункт означає створення рівних для всіх умов проходження контролю знань, неможливість списування [3].

Існує безліч різних систем інтернет тестування, що володіють як достоїнствами, так і недоліками. Основна проблема полягає в тому, що немає універсальної системи інтернет – тестування, позбавленої основних недоліків і володіє достоїнствами своїх аналогів. якщо об’єднати переваги конкуруючих систем в один програмний продукт, то вийде дуже гнучка система, що дозволяє вирішувати величезний набір завдань.

В ході розробки даного програмного засобу були виявлені наступні особливості системи інтернет тестування, які необхідно врахувати в даному продукті:

  1. Реалізація можливості повернення до пропущених питань. Найчастіше користувачі пропускають складні питання і в першу чергу відповідають на прості, однак, повернутися до пропущених питань уже не можуть.
  2. Реалізація гнучкої системи категорирования тестів. коли користувач заходить на сайт інтернет тестування, то найчастіше не враховується при виборі цікавить його розділу. Категоріювання з дисциплін, спеціальностей і групам може значно скоротити час пошуку потрібного тесту.
  3. Різним викладачам необхідні різні настройки для тестування. Наприклад, дозволити користувачам продовжити тестування, якщо вони його закрили, випадково або навмисно. Дозволити користувачам пропускати питання, якщо вони складні, і дозволити повертатися до пропущеним питань. Також заборонити переходити до наступного питання поки не буде дана правильна відповідь на поточне питання (для пробних тестів). Щоб виключити появу однотипних тестів необхідно реалізувати сортування питань у випадковому порядку або ж, навпаки, відключити сортування питань у випадковому порядку, якщо необхідний однаковий порядок питань в тесті.
  4. Особливу увагу потрібно приділити можливості використання одного і того ж питання в різних тестах. Щоб викладач не витрачав час на створення аналогічно питання для іншого тесту, якщо теми для різних дисциплін перетинаються.

В даний час вироблено чотири основних форми тестових завдань, які є основою для складання тестів з будь-яким навчальним дисциплінам:

  1. Завдання закритої форми. Інструкція: обвести кружком, або зазначити хрестиком, галочкою потрібний варіант відповіді. Варіативність завдань закритої форми вельми велика, але в основі завжди лежить один і той же принцип: випробуваному пропонується вибрати відповідь на завдання з декількох запропонованих, причому тільки один з них є правильним.
  2. Завдання відкритої форми. Інструкція: доповнити. На відміну від завдань закритої форми тут не пропонується варіантів відповіді, а робиться пропуск смислової одиниці в будь-якого затвердження, причому передбачається, що заповнити цей пропуск можна строго однозначно.
  3. Завдання на відповідність. Інструкція: встановити відповідність. Тут необхідно встановити відповідність між смисловими одиницями в правому і лівому стовпчиках, причому, справа іноді варіантів дається більше, ніж зліва, тобто свідомо передбачається, що якісь з них є в даному випадку неправильними.
  4. Завдання на встановлення правильної послідовності. Інструкція: встановити правильну послідовність. Досить складна форма, що перевіряє глибокі і міцні знання навчального матеріалу. Сенс її полягає у встановленні послідовності будь-яких подій, дій, термінів і тощо У порожніх квадратиках треба розставити цифри.

Існують різні різновиди і модифікації тестових завдань, проте всі вони грунтуються на цих чотирьох формах.

Варто відзначити позитивні сторони тесту на конкретному прикладі. Наприклад, якщо при оцінці результатів за кожне правильно виконане завдання ставиться одиниця, а в іншому випадку нуль, то рівень знань з проблематики даного тесту буде виражений в певній сумі балів. Розставивши здавали за зростанням або спаданням, ми отримаємо структурований ряд рівня знань по даній дисципліні. Якщо така перевірка проводиться регулярно протягом всього вивчення предмета, в кінці викладач матиме досить чітке уявлення про рівень знань даного курсу. Створюється своєрідний рейтинг учнів з досліджуваної дисципліни. За підсумками виконання всіх тестових завдань видно прогалини в знаннях кожного, що дозволяє скласти індивідуальну програму для додаткових занять.

Завданням даного дипломного проекту є створення комп’ютерної програми яка буде об’єднувати в собі кілька різновидів тестових завдань включаючи завдання.

3. Огляд досліджень і розробок

Основна спрямованість програм для проведення тестування знань в області програмування є перевірка рішення задач на різних олімпіадах.

Більшість таких програм реалізуються з використанням серверів і представлені у вигляді сайтів з різними завданнями з програмування на популярних мовах, таких як: C ++, C, Pascal, Delphi, і тощо.

Вивчивши різні матеріали по цій темі, я пропоную розглянути найпоширеніші програми та інтернет ресурси для проведення тестування знань.

Ejudge – це система для проведення різних заходів, в яких необхідна автоматична перевірка програм. Система може застосовуватися для проведення олімпіад і підтримки навчальних курсів. Інтерфейс учасника представлений на рисунку 1[15].

Інтерфейс учасника Ejudge

Рисунок 1 – Інтерфейс учасника Ejudge

Можливості:

  1. Обмеження турнірів по часу.
  2. Одночасне проведення кількох турнірів.
  3. Автоматична реєстрація учасників турніру.
  4. Багатомовний веб-інтерфейс.
  5. Захищене виконання програм.

Мови:

  1. C/C++,GCC (+ valgrind), Clang.
  2. Pascal/Delphi, Free Pascal, Pascal ABC.NET, Borland Kylix.
  3. Java/C#, Oracle Java, GNU Java, Mono C#.
  4. Basic, Free Basic, Mono Visual Basic.
  5. Python, Ruby, Python2, Python3, Ruby.
  6. PHP, Go, Haskel, Prolog, Fortran, Kumir, Make, Perl, Asm.

Переваги Ejudge:

  1. Стабільно працює.
  2. Високий рівень безпеки.
  3. Підтримуються всі сучасні мови програмування.
  4. Велика кількість параметрів, що можливостей.

Недоліки:

  1. Чи не зручний турнірний і адміністраторський інтерфейс.
  2. Чи не зручна установка і настройка.

Cyber Judge – відносно нова система автоматичного тестування, призначена для проведення змагань з регламентом Всеросійських олімпіад школярів з інформатики. Особливістю даної системи є можливість не тільки автоматичного, а й ручного тестування рішень, що є істотним для ROI, так як за правилами, тестування відбувається в присутності учасників. Дана система підтримує перевіряючі програми, написані за допомогою Testlib, але не сумісна з NPC2 за форматом конфігураційних файлів. Таким чином, перенесення завдань з однієї системи в іншу, зводиться до зміни конфігураційних файлів завдання. Дана система знаходиться в стадії модифікації, і в майбутньому, можливо, буде підтримувати проведення дистанційних змагань [15].

Ural State University Problem Set with Online Judge System – архів задач і система проведення дистанційних олімпіад. Дана система популярна в Росії та Китаї. Дистанційні олімпіади зазвичай проводяться одночасно з очними олімпіадами Уральського Державного Університету. Про проведення змагання учасники попереджаються по e-mail, приблизно за тиждень до його початку. зазвичай в змаганнях такого роду беруть участь 200-300 команд. Для підрахунку результатів застосовуються правила ACM ICPC. Для учасників доступний стандартний набір мов програмування: C, С ++ і Pascal (Delphi). На жаль, дана система автоматичного тестування допускає тільки тестування заду з однозначним відповіддю (вихідні дані, сформовані програмою учасника, порівнюються з еталонними)[15].

Codewars – це інтерактивний збірник задач з програмування, вирішуючи які ви набиваєте свій скилл в тій чи іншій мові. Стартова сторінка даного збірника задач виглядає досить таки простий у використанні (Рисунок 2).

Стартова сторінка Codewars

Рисунок 2 – Стартова сторінка Codewars

Різноманітні завдання, досягнення, тести, перегляд найбільш кращих рішень, обговорення, ранги – все це робить сервіс дуже зручним і цінних для тих хто хоче вирішити завдання на тій чи іншій мові.

Зараз сервіс підтримує такі мови: ruby, python, javascript, java, haskell, C #, coffescript і clojure. На рисунку 3 представлений вид простий завдання з Codewars.

Подання завдань в Codewars

Рисунок 3 – Подання завдань в Codewars

Valladolid Programming Contest Problem Set – найстаріший архів олімпіадних завдань. На даний момент, є одним з найпопулярніших сервісів такого роду в Інтернет. Містить сотні завдань з тестами. На жаль, все спілкування з тестирующей системою відбувається по e-mail, що є істотним недоліком для деяких 6 користувачів. Ще одним недоліком даної системи є використання тільки операційної системи Linux, і відповідних мов програмування (GNU C, GNU C ++, Free Pascal), що істотно звужує кількість можливих учасників. Для кожного завдання підводиться статистика – рейтинг складності (Відношення кількості правильних рішень задачі до загальної кількості спроб здати цю задачу), що дозволяє учасникам вибирати посильні для них завдання. Архів активно поповнюється завданнями з різних змагань, як очних, так і проводяться через Інтернет [15].

CodeChef – платформа для програмістів змагань, підтримувана індійським розробником ПО Directi . Що такого видатного в цій платформі? По-перше, перед змаганнями можна гарненько потренуватися, вибравши один з шести рівнів складності. По-друге, платформа пропонує вибір з майже 30 мов програмування, якими можна користуватися при вирішенні задач.В месяц проводится около 2-3 соревнований с ограничением по времени. Деякі з них – командні, і перед реєстрацією потрібно приєднатися до однією з команд або створити свою, що не так вже й складно, адже в CodeChef 125 тисяч учасників. Приклад подання завдань представлений на рисунку 4 [14].

Подання завдань в CodeChef

Рисунок 4 – Подання завдань в CodeChef

PC 2 (Рrogramming Сontest Сontrol, оголошений PC-квадрат або іноді просто PC-Два для стислості) являє собою систему, програмне забезпечення, призначене для підтримки операцій змагання з програмування в різних обчислювальних середовищах. PC 2 дозволяє учасникам (Команди) представити програми по мережі, щоб їх міг оскаржити суддя. судді можуть перекомпіліровать представлену програму, виконати його, переглянути вихідний код і / або результати виконання, і відправити відповідь назад в команду. система також підтримує режим автоматизований суддівський , де суддівство виконується за допомогою програмного забезпечення, а не людських суддів [15]

PC 2 був розроблений в Університеті штату Каліфорнія, Сакраменто (CSUS) і доступна на World Wide Web. Сама остання версія, V9, написана на Java (з використанням Eclipse) і призначений для роботи на будь-якій платформі Java 1.5 (або вище), включаючи Windows, (98 / ME / 2000 / XP / Vista / 7), Mac OS X (10.4+) і різних систем Unix на базі, включаючи Solaris, Linux і FreeBSD[6].

Проаналізувавши дані системи тестування в області програмування можна сказати що окремо дані програми є компетентними у своїй галузі, але кожна з них містить в собі рішення тільки одного типу питання. Тобто кожна програма спрямована на вирішення однотипних завдань. Так як в своїй роботі я поставила за мету пошук програми яка включає в себе тестування з різними типами питань. Доцільно буде розглянути окремо систему АТР.

Advanced Testing Package – багатоцільова система інтерактивного тестування, розроблена для автоматизації контролю знань [4].

ATP відрізняється від аналогічних систем перш за все легкістю при налаштуванні і використанні, а також підтримкою обміну по FTP-протоколу та інтеграцією з зовнішнім програмним забезпеченням (компиляторами), що дозволяє автоматизувати процес перевірки питань-завдань.

Розробляється c 1998 (організацією Hard Club з 2000 року); з 2003 року – в співробітництво з компанією Aldec, Inc. Версія пакета з підтримкою мов VHDL і Verilog з 2004 року поширюється на території США і Європи [4].

Основні області застосування

  1. для керівників відділів розробки – тестування рівня знань інженерів в Відповідність предметних областях, підтримка його відповідно до останніми технологіями, що дозволяє розробляти проекти на високому якісному рівні;
  2. при прийомі фахівців на роботу – перевірка кваліфікації майбутніх працівників;
  3. у вищих і середніх навчальних закладах – автоматизоване проведення контрольних опитувань, заліків та іспитів, а також тестування компетенції учнів з профілюючих предметів, що дає їм можливість більш глибокого розуміння індустріальних стандартів, знання яких будуть необхідні їм в майбутньому.

Основні можливості

  1. створення бази питань по будь-якій темі практично без обмеження на її обсяг;
  2. використання чотирьох основних типів питань: однозначну відповідь ;, одиночний вибір ;, множинний вибір ;, однозначна послідовність ; ( хронологія ;);
  3. чотири додаткових типи питань: С ++, VHDL і Verilog - програми, а також експерт ;;
  4. досить гнучкі настройки по обмеженню часу, кількості підказок, допущених помилок, а також за оцінкою відповідей користувача;
  5. настроюється система підрахунку балів при проведенні опитування;
  6. захист бази питань від несанкціонованого доступу і зміни;
  7. надання повного звіту по проведеним опитуванням і розміщення його в необхідному місці (Як на окремій машині, так і на host-машині локальної мережі).

База питань містить всю інформацію, необхідну для проведення опитування. Файл в форматі * .at4, що містить одну конкретну базу питань, готується в редакторі. Потім такий файл може бути завантажений програмою-аналізатором, яка на його основі проводить опитування [8].

База питань, крім списку питань, що задаються користувачеві, включає: тему, властивості і коментарі.

Тема – це текст, що характеризує тематику всіх питань, що містяться в базі. База може взагалі не мати теми, але це небажано.

Властивості бази питань являють собою параметри, які використовуються аналізатором при проведенні опитування, такі, як обмеження часу, кількості підказок, помилок, систему оцінок, кількість поставлених користувачеві питань, пароль і тощо. Властивості новоствореної бази встановлюються редактором автоматично за замовчуванням. Детальний опис властивостей бази і способи їх завдання Ви можете подивитися в розділі Редактор> Властивості бази питань;.

Коментарі – це додаткова текстова інформація, що характеризує базу питань, така, як автор бази, дата створення, версія і тощо. Коментарі не є обов’язковими.

Перелік запитань є основою будь-якої бази питань. Кожне питання складається з власне тексту питання, списку варіантів відповіді з відміткою вірного (вірних) варіантів, а також індивідуальних властивостей. ATP4 підтримує 4 основних типи питань: Однозначну відповідь ;, Одиночний вибір ;, Множинний вибір ; і Однозначна послідовність ; ( Хронологія ;), а також 4 додаткових: VHDL-програма, Verilog-програма, C ++ програма, і Експерт ;.

На рисунку 5 представлена структура пакета ATP 4 [9].

Структура пакета ATP 4

Рисунок 5 – Анімація структура пакета ATP 4
(анімація: 21 кадрів, циклічне повторення, 255 кілобайт)

4. Підхід до вирішення поставленого завдання

Необхідно розробити WEB-систему тестування студентів з наступними можливостями:

  1. Категоріювання сторінок сайту за різними термінами. З можливістю для викладачів створити свої категорії сортування і включати в них терміни.
  2. Створення тесту. З можливостями: сортування питань у випадковому порядку за бажанням викладача, відображення результатів і правильних відповідей, виведення оцінки по завершенню тестування (розрахунок оцінки відбувається в залежності від набраного відсотка).
  3. Створення питання з вибором кількості правильних варіантів відповіді. З можливістю розміщення відповідей у випадковому порядку і з можливістю додавання даного питання в уже існуючий тест.
  4. Створення питання з рукописним відповіддю. Викладач сам перевіряє відповідь студента.
  5. Використання групової політики доступу для забезпечення безпеки. студент, незареєстрований користувач, адміністратор і викладач.
  6. Мета – метою цього документа є перевірка, аналіз та визначення рівня знань .. Ця система – прикладна програма, яка повинна бути корисна для користувачів в тому, що вони зможуть пройти тест онлайн.
  7. Призначення максимальної кількості балів за кожну повністю вірну відповідь.

Діаграма прецедентів даного програмного продукту представлена на рисунку 6.

Диаграмма прецедентов

Рисунок 6 – Анімація діаграма прецедентів
(анімація: 15 кадрів, циклічне повторення, 207 кілобайт)

Даний програмний продукт призначений для проходження тестування онлайн. Нами було виділено 2 типу користувачів, які можуть працювати в системі. Рядовий користувач і адміністратор. Рядовий користувач має початковий рівень підготовки, адміністратор знайомий з системою і управляє їй.

Адміністратор даного сайту має певні права, які представлені на рис. 6 у вигляді прецедентів:

  1. управління питаннями;
  2. управління користувачами;
  3. управління результатами.

Висновок

В ході роботи було проаналізовано безліч систем інтернет тестування, виявлено безліч плюсів і мінусів подібних систем. Надалі буде розроблений програмний продукт відповідає всім висунутим вимогам і включає в себе:

  1. Створення тесту з гнучкими настройками.
  2. Створення різних типів питання.
  3. Використання групової політики доступу.
  4. Призначення максимальної кількості балів за кожну повністю вірну відповідь.

Список источников

  1. Журнал: Труды Санкт-Петербургского государственного университета. [Электронный ресурс]. – Режим доступа: http://cyberleninka.ru/....
  2. Аванесов В. С. Композиция тестовых заданий. М.: Центр тестирования, 2002 – 239 с.
  3. Компьютерное тестирование в образовании. [Электронный ресурс]. – Режим доступа: http://slmini.narod.ru/....
  4. Проект ATP [Электронный ресурс]. – Режим доступа: http://hardclub.donntu.ru....
  5. Компьютерные системы тестирования знаний студентов на различных этапахоценки успеваемости [Электронный ресурс]. – Режим доступа: https://cyberleninka.ru....
  6. Система тестирования знаний по программированию PC2 [Электронный ресурс]. – Режим доступа: http://pc2.ecs.csus.edu/....
  7. Зинченко Ю. Е., Корченко А. А., Масюк А. Л. Автоматизированное решение задач при проведении тестирования /Сборник научных трудов 8-й Международной конференции «ВИРТ-2004» Украинской ассоциации дистанционного образования. – Харьков – Ялта: УАДО, 2004.
  8. Зинченко Ю. Е., Масюк А. Л., Корченко А. А. Универсальный тестирующий комплекс на базе систем ATP и Online-Testing /Научно-практическая конференция «Современные технологии проектирования систем на микросхемах программируемой логики (ПЛИС)» – Харьков, 2003.
  9. Масюк А. Л., Корченко А. А., Масюк Л.Н., Зинченко Ю. Е. Тестирование знаний по VHDL на базе пакета ATP-VHDL /Образование и виртуальность – 2002. Сборник научных трудов 6-й Международной конференции Украинской ассоциации дистанционного образования – Харьков – Ялта, 2002.
  10. Масюк А. Л., Масюк Л. Н., Зинченко Ю. Е. Тестирование знаний по VHDL на базе пакета ATP4 /Материалы научн.-метод. конф. «Информационные технологии и проблемы дистанционного обучения в высшем техническом образовании». – Донецк: ДонНТУ 2002 – С 18-20.
  11. Е. С. Полат, М. Ю. Бухаркина, М. В. Моисеева; Под ред. Е. С. Полат Теория и практика дистанционного обучения: Учеб. пособие для студ. высш. пед. учебн. заведений /М.: Издательский центр «Академия», 2004 – 416 с.
  12. Московский институт радиотехники, электроники и автоматики. Доклад на тему «Обзор существующих платформ и систем управления контентом в целях обеспечения учебного процесса». Докладчик: Кригоузов Илья Сергеевич. Москва, 2011 г.
  13. CodeChef [Электронный ресурс]. – Режим доступа: https://www.codechef.com...
  14. Автоматическое тестирование решений на соревнованиях по программированию. [Электронный ресурс]. – Режим доступа: https://elibrary.ru/...