Генерація дидактичних матеріалів з математики

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

IV Гомельська науково-практична конференція школярів з математики, її додатків та інформаційних технологій "Пошук"
Навчально-дослідна робота
«Генерація дидактичних матеріалів з математики»

Учениці

11 / А класу
ГУО ЗОШ № 22 м. Гомеля

Прохоренко Олени Олександрівни

Науковий керівник -
Горський Сергій Михайлович, вчитель математики Державної установи освіти ЗОШ № 22 м. Гомель
Гомель, 2009

Зміст
Введення
1 Опис роботи програми
1.1 Запуск програм
1.2 Опис файлу шаблону
2 Використання постобработчіков
Висновок
Список використаних джерел
Додаток 1

Введення

На даний момент деякі викладачі вже намагалися залучити комп'ютер до складання самостійних робіт, контрольних робіт, домашніх завдань. Найбільш формалiзуються, і параметрізуемие завдання ставляться до таких предметів як математика, фізика, хімія. У літературі наведено приклади генерації завдань з математики для квадратних рівнянь, з геометрії на обсяги і поверхні тіл обертання, з хімії на концентрації розчинів, з фізики на рішення трикутників (вектори сил в механіці). Однак в описаних прикладах кожна робота створюється окремою програмою, вид параметризованих формул "вшитий" у програмний код і недолік даного підходу відзначається навіть самими авторами [2].
У даній роботі викладається метод генерації довільних завдань з рішеннями, що дозволяє уникнути колосальних трудовитрат по верстці і складання завдань, а також демонструється програма генерації завдань з математики, які відповідають умовам різний і рівноцінності. Відмінність запропонованого методу від методів, реалізованих, у вже існуючі програми полягає в тому, що користувачу надається механізм створення параметризованих завдань і апарат для їхнього клонування (створення кількох варіантів). Тобто клонованої завдання не зобов'язані підходити під певний тип, а число варіантів задається в зовнішньому файлі-сценарії або визначається через умови, що накладаються на параметри.
Слід зауважити, що в більшості існуючих програм пропонується генерувати тільки завдання для подальшого їх роздрукування. Наявність окремого надрукованого варіанту при проведенні контрольної чи самостійної роботи має ряд переваг перед відсутністю такого: наприклад, вирішується проблема списування - кожен учень змушений обробляти свої дані. Є і свої недоліки - вчителю потім потрібно перевірити не 2 варіанти, а 25-30.
Розроблена мною програма усуває цей недолік, оскільки вона дозволяє включати в текст завдання і рішення, і відповідь, які виносяться в окремий файл.
Так само програма підтримує написання тестів, з перемішуванням варіантів відповідей у ​​кожному варіанті тесту і дозволяє проводити вибір між різними однотипними, але різними за шаблоном завданнями.
Оскільки програма працює з текстовими файлами, то вона дозволяє
- Складати шаблони файлів в різних форматах, близьких до plain text (LaTeX, MathML + HTML),
- Проводити обробку іншими засобами, такими як MatLab, Mathematica і ін
- При створенні спеціалізованої мови розмітки, завдання, які генеруються даною програмою, можуть бути використані в інтерактивному режимі, реалізуючи не тільки функції перевірки певної теми, але для реалізації режиму «підказки», для диференціації завдань для учнів (якщо учень не вирішив це завдання, запропонувати легшу).
Дана програма широко використовується для підготовки контрольних і самостійних робіт у 5-7 класах ГУО ЗОШ № 22 м. Гомеля.

1 Опис роботи програми
Програма, яка є скриптом, написана на мові програмування Python 2.4. Дана мова є вільно поширюваним інтерпретатором, а вільно поширювана програма py2exe дозволяє створити з скрипта програму для систем сімейства Windows. Текст скрипта наведений у додатку 1.

1.1 Запуск програми

Для запуску програми необхідно в командному рядку набрати команду ex2. кількість варіантів ім'я файлу шаблону ім'я файлу. Після виконання програми з'явиться файл ім'я файла.txt містить текст згенерованих варіантів і файл ім'я файлу answ.txt містить відповіді до файлів.

1.2 Опис файлу шаблону

Файл шаблону є звичайним plain-text файлом, що містить рядки з маркерами на початку рядка.
Маркер code означає, що після нього йде ініціалізація змінних використовуються в тексті шаблону.
Маркер отв. Означає, що рядок, що містить маркер переходить у файл з відповідями.
Маркер choice означає, що із завдань та відповідей, розділених символом `слід вибрати випадковим чином тільки один.
Маркер test означає, що варіанти відповідей для тіста, розділені символом `слід перемішати, правильний варіант повинен бути позначений символом!. У файл із завданням переноситися всі варіанти відповідей, а у файл з відповідями номери правильних.
При ініціалізації змінних можна використовувати всі арифметичні операції (/ - ділення, * - множення), всі математичні функції в американській нотації, такі спеціальні функції:
· Abs (x) - модуль числа,
· Pow (x, y [, m]) - зведення x до степеня y за модулем m,
· Math.sqrt (x) - квадратний корінь з x,
· Round (n [, z]) - округлення чисел до заданого знаку після (до) точки,
· Random.random () - випадкове число з діапазону [0; 1),
· Random.randrange ([start,] stop [, step]) - видає випадкове число з діапазону [start, stop) з інтервалом step (за замовчуванням step = 1, start = 0),
· Умовний оператор if умова: оператор
· Del мінлива видаляємо змінну
· S.replace ('щось', 'чимось') заміна в рядку s "щось" "чимось".
Приклад файлу шаблону
code a = random.randrange (100) +10
code b = random.randrange (100) +10
code c = random.randrange (100) +10
2. Знайдіть невідомий член пропорції x: {a} = {b}: {c}.
При необхідності відповідь округлите.
отв 2.
test {c * b / a} `{c * c / b}`! {a * b / c} `{a / b / c}
Даний шаблон генерує наступне завдання:
2. Знайдіть невідомий член пропорції x: 17 = 97:63.
При необхідності відповідь округлите.
1) 26 2) 40 3) 0 4) 359

2. Використання постобработчіков
У випадку, коли складене завдання містить більш складні з точки зору математики проблеми, програма для його генерації буде досить громіздкою. Значно полегшити процес генерації завдань дозволить система комп'ютерної алгебри Mathematica фірми Wolfram Research, Inc. Цей програмний продукт є визнаним світовим лідером серед безлічі комп'ютерних інструментів, що використовуються в наукових досліджень і в педагогічному процесі. За допомогою цієї системи легко здійснювати широкий спектр символьних перетворень, в тому числі і в сфері математичного аналізу (диференціювання, інтегрування). Вона дозволяє розв'язувати рівняння, знаходити межі, будувати різноманітні графіки та багато іншого.
Mathematica дозволяє користувачеві писати програми на її вбудованій мові, підтримуючи при цьому різні стилі програмування - як функціональний, так і процедурний. У даній замітці не зачіпаються питання програмування власне в середовищі Mathematica. Нас буде цікавити можливість взаємодії цієї програми з файлами, що містять команди розмітки TeX. У такі файли (а також, у файли, що містять програми на мовах C або Fortran) можна вставляти вираження системи Mathematica, обмежуючи їх, ліворуч і праворуч комбінацій знаків <* і *> . Одержаний файл обробляється системою Mathematica, яка замінює укладену між цими символами вираз на результат його обчислення.
Файл, що містить команди розмітки мови TeX та функції системи Mathematica, повинен мати розширення mtex. При обробці такого файлу командою Splice [], що сформувався результат буде автоматично збережений в файл з розширенням tex .
Наприклад, нехай файл task 2. mtex містить наступний фрагмент тексту:
Розглянемо нерівність
$ \ Dfrac {<* u = (3x-5) (x +4); v = (x +4) (x-5); PolynomialRemainder [u,-v, x] *>}
{<* Expand [-v] *>}
\ Leqslant <*- PolynomialQuotient [u,-v, x ]*>.$ fill $(*)$
\ Bigskip
і еквівалентним йому
$ \ Dfrac {(3x-5) (x +4)} {(x +4) (x-5)} \ geqslant 0. $ Fill $(**)$
Тоді після виконання команди Splice ["task 2. Mtex"] автоматично
створений файл task 2. tex вже буде містити результат виконання функцій системи Mathematica:
Розглянемо нерівність
$ \ Dfrac {40 + 10 \, x}
{20 + x - {x ^ 2}}
\ Leqslant 3. $ Fill $(*)$
\ Bigskip
і еквівалентним йому
$ \ Dfrac {(3x-5) (x +4)} {(x +4) (x-5)} \ geqslant 0. $ Fill $(**)$
У даному прикладі використовувалися такі функції системи Mathematica:
Expand [ v ] - розкриває дужки у виразі v ;
PolynomialRemainder [ u , v , x ] - обчислює залишок від ділення многочлена u ( x ) на многочлен v ( x ) ;
PolynomialQuotient [ u , v , x ] - знаходить частка від ділення цих многочленів.
Результат обробки даного файлу програмою TeX показаний на врізку.

Висновок
Існує потреба в створенні інтерактивних систем, де завдання діалогу з учнем і перевірка рішення лягає на комп'ютер. Діалогове взаємодія забезпечує наступні аспекти навчання: безперервний контроль діяльності учня, діагностування, управління системою з боку самого учня.
Тому я надалі планую написати програму, що реалізовує зазначені можливості.

Список використаних джерел

1. Г. Россум, Мова програмування Python. / Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откідач, М. задка, М. Левіс, С. Монтаро, Е.С. Реймонд, А.М. Кучлінг, М.-А. Лембург, К.-П.Йі, Д. Ксіллаг, Х.Г. Петрілло, Б.А. Варсав, Дж.К. Ахлстром, Дж. Роскінд, Н. Шеменор, С. Мулендер .- 2001 - 454 c.
2. Шестаков А.П., Генерація дидактичних матеріалів з математики, / / ​​http://comp-science.narod.ru

Додаток 1

# -*- Coding: cp1251 -*-
#
# Запуск:
# Назва програми колічество_варіантов файл_шаблона
# Файл_заданій
#
import re
import random
import math
import sys
import string
n = int (sys.argv [1]) # зчитуємо кількість варіантів
templet = sys.argv [2] # зчитуємо ім'я файлу шаблону
output = sys.argv [3] # зчитуємо ім'я файлу виводу завдань
problems = open (output + '. txt', 'w') # відкриваємо файл завдань для
# Запису
answers = open (output + '_answ.txt', 'w')
pattern = r "\ {(.+?) \}" # створюємо регулярний вираз
exdivssion = re.compile (pattern)
for i in range (1, n +1): # цикл за кількістю варіантів
task = open (templet, 'r') # відкриваємо шаблон
problems.write ('Варіант' + str (i) + '\ n')
answers.write ('Варіант' + str (i) + '\ n')
for line in task:
if line.find ('code')> -1: # ініціалізація змінних в
шаблоні
line = line.replace ('code','')
exec line
else:
k = exdivssion.findall (line) # заміна вираження його
значенням
for element in k:
line = line.replace (element, str (eval (element)))
line = line.replace ('{','') # косметичне видалення
# Фігурних дужок
line = line.replace ('}','')
if line.find ('отв')> -1:
line = line.replace ('отв','')
answers.write (line)
elif line.find ('test')> -1: # обробка варіантів
тестового завдання
line = line.replace ('test','')
line = line.replace ('\ n','')
test = line.split ("`")
random.shuffle (test)
for i in range (0, len (test)):
if test [i]. find ('!')>- 1:
test [i] = test [i]. replace ('!','')
problems.write (str (i +1) + ')' + test [i] + '')
answers.write (str (i +1) + '\ n')
else:
problems.write (str (i +1) + ')' + test [i] + '')
problems.write ('\ n')
elif line.find ('choice')> -1: # обробка варіантів
# Вибору
line = line.replace ('choice','')
line = line.replace ('\ n','')
variant = line.split ("`")
num = 2 * random.randrange (round (len (variant) / 2))
problems.write (variant [num] + '\ n')
answers.write (variant [num +1] + '\ n')
else:
problems.write (line)
problems.write ('\ n \ n')
answers.write ('\ n \ n')
task.close
problems.close
answers.close
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
25.1кб. | скачати


Схожі роботи:
Використання дидактичних ігор на уроках математики
Методика використання дидактичних ігор на уроках математики в початковій школі
Використання дидактичних ігор для розвитку уваги на уроках математики в 5 класах
Розробка тестів і дидактичних матеріалів з предмета Надзвичайні ситуації природного характеру
Використання дидактичних ігор для розвитку пізнавального інтересу на уроках математики в 5 класі
Генерація поліномів
Генерація матриць
Генерація комбінаторних об`єктів
Принципи дидактики в навчанні математики Цілі та зміст навчання математики в середній загальноосвітній
© Усі права захищені
написати до нас