МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ХЕРСОНСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ФІЗИКИ, МАТЕМАТИКИ ТА ІНФОРМАТИКИ
ЗАТВЕРДЖУЮ
до захисту в ДЕК
ПЕРШИЙ ПРОРЕКТОР УНІВЕРСИТЕТУ
__________ професор О.В.Мішуков
ЛУБЧАК ОЛЕКСАНДР МИХАЙЛОВИЧ
____________
АЛГОРИТМИ ГЕНЕРАЦІЇ ХОДУ РОЗВ’ЯЗАННЯ ШКІЛЬНИХ АЛГЕБРАЇЧНИХ ЗАДАЧ ТА ЇХ РЕАЛІЗАЦІЯ ЗАСОБАМИ АЛГЕБРАЇЧНОГО ПРОГРАМУВАННЯ
8.080201 Інформатика
Випускна робота освітньо-кваліфікаційного рівня «Магістр»
ПОГОДЖЕНО
Декан факультету Науковий керівник
____________ доцент В.І.Кузьмич __________ проф. О.В.Львов
____________ 2010 р. __________ 2010 р.
Завідувач кафедри інформатики Рецензент:
_________ проф. О.В.Співаковський __________ доцент Плоткін Я.Д.
_________ 2010 р. __________ 2010 р.
Херсон – 2010
ЗМІСТ
Вступ……..………………………………………………………………..…4
Розділ 1. Характеристика ПЗНП (на прикладі МСНП ПМК Терм)……...6
1.1. Поняття та призначення ПЗНП......……………………..…………...…6
1.2. Загальні вимоги до ПЗНП.…………………………………………….12
1.3. Програмні модулі та сценарії роботи в МСНП ПМК Терм………...14
1.4. Постановка задачі генерації ходу розв’язання шкільних алгебраїчних задач…………………………………………………………………………21
Розділ 2. Технології реалізації МСНП.....………………………………...24
2.1. Огляд технологій реалізації системи…………………………...…….24
2.2. Технології алгебраїчного програмування………………………...….26
Розділ 3. Алгоритми генерації ходу розв’язання НАЗ та їх реалізація у виді алгебраїчних функцій……………………………….………...……...34
3.1. Модель навчальної задачі………………………………………….….34
3.2. Алгоритми розв’язання та методи зведення НАЗ..………………….41
3.3. Реалізація алгоритмів розв’язання у виді алгебраїчних функцій......48
Висновки……....…………………………………………………………...54
Список використаних джерел……………..…………………………….56
Додаток 1………………………………………………..………………….64
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ
МСНП
Математична система навчального призначення
НАЗ
Навчальна алгебраїчна задача
НДІІТ
Науково-дослідний інститут інформаційних технологій
ПЗ
Програмний засіб
ПЗНП
Програмний засіб навчального призначення
ПМ
Програмний модуль
ПМК
Програмно-методичний комплекс
ППЗ
Педагогічний програмний засіб
РМ
Робоче місце
СРЗ
Середовище розв'язання задач
ВСТУП
Одночасно з розвитком інформаційних технологій відбувається їх послідовне впровадження у різні сфери життєдіяльності людини. Не стала виключенням сфера освіти. Ефективна інтеграція інформаційних технологій у процес навчання потребує реалізації умов для пошуку та обробки потрібної інформації. Такі умови надають педагогічні програмні засоби (ППЗ), які ілюструють застосування інформаційних технологій в навчальному процесі.
При створенні ППЗ особливої актуальності набувають загальні наукові, методологічні та технологічні проблеми, пов’язані з організацією процесів створення, супроводження і ефективного використання програмних засобів навчального призначення.
Особливо проблеми постають при створенні програмних засобів з математики. Вони полягають в тому, що для учня важлива побудова ходу рішення задачі, а не просто отримання відповіді. Тому програмний засіб повинен надавати учню чи студенту можливість побудови ходу рішення самостійно, перевіряючи кожен крок розв’язку, мати можливість отримати підказку для наступного кроку рішення, а також перегляд повного ходу розв’язання задачі. ППЗ також має позбавити користувача від рутинної роботи пов’язаної із елементарними обчисленнями чи переписуванням великих формул, які значно збільшують час на виконання задачі.
Особливо важливою для учня є можливість перегляду повного ходу розв’язання задачі. Саме для цього призначений ПМ Експерт, який дає можливість учню побачити не тільки відповідь, а й послідовні, дискретні кроки, виконання яких призводить до отримання відповіді.
Актуальність. Впровадження функції покрокового розв’язання надасть можливість для розширення функціональності середовищ “Розв’язувач” та “Середовище розв’язання” ПМК Терм 7-9, що робить їх більш конкурентоздатними.
Тому метою дипломної роботи є створення програмного модуля “Експерт”, у якому реалізовані алгоритми генерації ходу розв’язання стандартних алгебраїчних задач шкільного курсу алгебри 7-9 класів у виді алгебраїчних функцій.
Об'єкт дослідження – алгоритми розв’язання навчальних математичних задач.
Предмет дослідження – реалізація алгоритмів генерації ходу розв'язання шкільних алгебраїчних задач засобами алгебраїчного програмування.
Гіпотеза дослідження. Алгоритми розв’язку стандартних шкільних алгебраїчних задач можуть бути розширені до алгоритмів генерації ходу розв’язання задач та ефективно реалізовані засобами алгебраїчного програмування.
Завдання:
Ознайомитися з структурою та функціональністю алгебраїчних модулів математичних систем навчального призначення “ПМК Терм 7-9” та “Аналітична геометрія”.
Вивчити математичні методи генерації ходу розв’язання шкільних алгебраїчних задач.
Реалізувати алгоритми генерації ходу розв'язання шкільних алгебраїчних задач у вигляді функцій APS.
Розробити програмний модуль “Експерт”.
Структура роботи. Робота складається зі вступу, трьох розділів, висновків та списку використаних джерел.
РОЗДІЛ 1
ХАРАКТЕРИСТИКА ПЗНП (НА ПРИКЛАДІ МСНП ПМК ТЕРМ)
Поняття та призначення ПЗНП
Значна кількість традиційних комп'ютерних курсів математики базується на ідеях програмованого навчання, хоча й використовує сучасні апаратні та програмні можливості обчислювальної техніки та нові методи представлення знань. Найбільш розвиненою і розробленою як з методичної, так і з технічної точок зору за такого підходу виявляється лекційна частина курсу [7, 8]. Проблема адекватної підтримки практичних занять з математики менш розроблена. Математична практична діяльність учня полягає в розв’язуванні математичних задач. Відомі системи комп'ютерної алгебри (або математичні системи) – Derive, Mathematica, Maple, MathCad тощо – значною мірою вирішують задачу підтримки професійної математичної діяльності, пов'язаної із символьними обчисленнями і чисельними розрахунками. Вони надають користувачам можливості розв’язання широкого кола математичних задач. Навчальна математична діяльність, однак, має певну специфіку.
Комп’ютерна навчальна програма – це педагогічний програмний засіб, який забезпечує досягнення заданої дидактичної мети при навчанні.
Комп’ютерне навчальне середовище – це педагогічний програмний засіб, який забезпечує досягнення педагогічних цілей шляхом керування процесом пізнання навколишнього світу.
Педагогічні програмні засоби являють собою технологічне забезпечення навчального процесу, засноване на використанні комп’ютерних та телекомунікаційних технологій. До педагогічних програмних засобів відносяться:
комп’ютерні учбові середовища;
комп’ютерні навчальні програми;
автоматизовані навчальні системи;
електроні підручники;
експертно-навчальні системи;
авторські інструментальні середовища;
контролюючі програми;
комп’ютерні імітатори технологічного устаткування;
демонстраційні програми;
навчальні функції професіональних програмних засобів. [40]
Метою учня є побудова ходу розв’язання математичної задачі, а не одержання відповіді. Тому математичні системи навчального призначення повинні підтримувати саме хід розв’язування математичної задачі.[38]
Основне призначення системи «Teрм 7-9» – комп'ютерна підтримка практичних занять і лабораторних робіт з математики – тобто активної математичної діяльності користувача (учня, студента).
У процесі такого роду діяльності учень використовує теоретичні знання, набуті на попередніх етапах навчання, для розв’язання практичних задач.
Концепція підтримки діяльності вчителя
Будь-яка розвинена математична система повинна забезпечувати ефективне проведення навчального процесу в цілому, підтримуючи взаємодію вчителя й учня.
Перший аспект такої підтримки – перевірка правильності ходу розв’язування задачі. Для вчителя цей вид підтримки повинен полягати у перевірці системою правильності ходу розв’язування задачі на кожному кроці, тим самим виключаючи можливість припущення помилок учнем. Задача вчителя полягає в тому, щоб перевірити раціональність дій учня під час розв’язання задачі (у режимі самостійної роботи).
Другий аспект підтримки вчителя – автоматичне тестування знань учнів безпосередньо під час його роботи. Система повинна здійснювати перевірку знань, елементарних перетворень (наприклад, основних математичних правил та формул) саме в той момент часу, коли учень їх виконує.
Третій аспект – надання вчителю системи навчальних матеріалів, які заздалегідь сплановані відповідно до вимог стандартів, для проведення всього циклу уроків. У вчителя також повинна бути можливість модифікації наданих матеріалів. Наприклад, Задачник посібника повинен містити завдання для кожного уроку відповідно до програми, причому за вчителем залишається право модифікації цих завдань.
Нарешті, учитель повинен мати можливість використовувати систему при викладанні нового матеріалу безпосередньо на уроках (як електронний підручник).[25]
Концепція підтримки діяльності учня
Один з найважливіших аспектів підтримки роботи учня – перевірка правильності ходу розв’язання задачі. Зокрема, вирішуючи алгебраїчну задачу, учень перетворює математичні вирази. Будь-яка помилка, допущена в перетвореннях, приводить у результаті до неправильної відповіді. Цей факт виявляється учнем занадто пізно: або при порівнянні отриманого результату з відповіддю, або при одержанні низької оцінки за контрольну роботу. Уникнути цього можна, якщо програмний засіб здійснюватиме перевірку правильності перетворень на кожному кроці розв’язування.
Другий, не менш значущий аспект підтримки, – автоматизація рутинних дій учня, пов’язаних з обчисленнями. Наприклад, учню 7-го класу алгоритми арифметичних дій над цілими та раціональними числами знайомі досить добре. Складність полягає в тому, що він змушений витрачати навчальний час на виконання рутинних (для його рівня розвитку) обчислень, спрямованих на отримання відповіді. Отже система має давати можливість автоматизувати розв’язання елементарних кроків задач для учня відповідного класу.
Третій аспект – надання учню зручного способу користування навчальною, навчально-методичною та довідковою інформацією. Доступні у системі інструменти та засоби мають бути представленні для користування учню в зрозумілій та послідовній формі. Математична система навчального призначення також повинна надавати учневі відповідний математичний інструментарій: калькулятор, засоби побудови графіків і таке інше.[25]
Концепція комп’ютерної підтримки математичної діяльності
Математична діяльність користувача полягає в:
побудові математичних об’єктів;
розпізнанні властивостей математичних об’єктів;
перетворенні математичних об’єктів.
Математична діяльність здійснюється у рамках визначеної предметної області, яка описується конструктивно та аксіоматично. Це означає, що:
математичні об’єкти задані в предметній області в якості математичних конструкцій;
властивості математичних об’єктів задані аксіоматично;
перетворення об’єктів задані у вигляді списку припустимих (елементарних) перетворень.
Математична діяльність направлена на розв’язання деякої математичної задачі як основної семантичної одиниці. Хід розв’язання являє собою послідовність кроків на кожному з яких користувач:
розпізнає деяку властивість математичного об’єкту, який заданий в задачі;
перетворює цей об’єкт.
Таким чином, розв’язання задачі є послідовністю, яка має вигляд:
де Si – математичні об’єкти, а Ti – елементарні перетворення над цими об’єктами.[26]
Концепція комп’ютерної підтримки предметно-орієнтованої навчальної практичної діяльності
Комп’ютерна підтримка предметно-орієнтованої практичної діяльності полягає у наданні користувачу (учню або вчителю) набору засобів та інструментів, які автоматизують і верифікують процес розв’язання практичної задачі. Ця підтримка може здійснюватися на кількох рівнях, які характеризують ступінь розвиненості інтелекту даної предметно-орієнтованої системи:[35]
Рівень 0. Спеціалізоване середовище, орієнтоване на предметну діяльність (реалізація адекватного подання об’єктів предметної галузі в описі ходу рішення практичної задачі), забезпечене спеціальними інструментами і методичними посібниками (для математики – калькулятор, геометричні інструменти, підручник, задачник, довідник формул і т. ін.).
Рівень 1. Система, яка здійснює формальний (наприклад, синтаксичний) аналіз об’єктів та процедури, що автоматизують їх перетворення у ході рішення практичної задачі.
Рівень 2. Система, яка здійснює семантичний аналіз перетворень об’єктів предметної галузі (покрокова перевірка правильності розв’язання задачі).
Рівень 3. Система семантичного і методичного аналізу всього ходу рішення практичної задачі (перевірка правильності ходу рішення задачі як з формальної, отримання правильної відповіді, так і з методичної, побудова прийнятного ходу рішення, точок зору).
Підкреслимо, що, незалежно від рівня, система повинна бути забезпеченою повним комплектом методичної підтримки. Наприклад, для математики це – підручник, задачник, довідник з формулами, робочий зошит учня, збірник контрольних робіт та тестів, методичні рекомендації вчителю.
Таким чином, архітектурно ПЗ МСНП є програмно-методичним комплексом (ПМК), що складається з декількох незалежних, але взаємодіючих програмних додатків. Цей ПМК повинен забезпечувати ефективне ведення навчального процесу в цілому, підтримуючи взаємодію вчителя й учня – головна необхідність для реалізації повноцінного навчального процесу.
Сучасна інформаційна технологія підтримки навчального процесу – це ПМК, що забезпечує всі аспекти навчання – від подання нового матеріалу, підтримки практичної роботи, до перевірки знань учня.
У широкому розумінні, ПЗНП являє собою комплект навчальних, контролюючих, моделюючих та інших програм, розташованих на комп’ютері, у яких реалізовано основний науковий зміст навчальної дисципліни. ПЗНП часто доповнює звичайний підручник, а особливо ефективний у тих випадках, коли він:
забезпечує практично миттєвий зворотний зв'язок;
допомагає швидко знайти необхідну інформацію (у тому числі контекстний пошук), пошук якої в звичайному підручнику ускладнений;
істотно заощаджує час при багаторазових звертаннях до гіпертекстових пояснень;
дозволяє ефективно та в найбільш підходящому для конкретного індивідуума темпі, перевірити знання з конкретного розділу;
забезпечує підтримку практичної роботи в максимально можливому обсязі. [30]
ПЗМП можуть бути як незалежними програмно-методичними комплексами, так і клієнтськими додатками, що керуються веб-сервером.
Загальні вимоги до ПЗНП
У час інформаційних технологій вже ні в кого немає сумнівів, що освіта також має піддатися інформатизації, що несе за собою зміну парадигми педагогічної науки, зміну структури та змісту освіти в цілому. Нові методи навчання, які основані на активних, самостійних формах надбання знань та роботі з інформацією, поступово кількісно витіснять демонстраційні та ілюстративно-пояснювальні методи, які широко використовуються традиційною методикою навчання, що, в свою чергу, орієнтована в основному на колективне сприйняття інформації. Паралельно цьому йде процес використання програмних засобів і систем навчального призначення (пакетів ПЗНП) для підтримки традиційних методів навчання. При цьому програмним засобам (системам), які використовуються в навчальних цілях, передаються в якійсь мірі навчальні функції традиційної методики навчання, тому кожна програма повинна будуватися відповідно до дидактичних принципів навчання, які визначають дидактичні вимоги до ППЗ. Разом з загальними методами викладання, треба враховувати специфічні особливості та методики викладання кожного навчального предмету окремо, враховуючи своєрідність та особливість відповідної науки.
Відомо, що розробка ПЗ, яке використовуються в навчальних цілях, представляє собою дуже складний процес, який потребує колективної праці не тільки вчителів, методистів, програмістів, але й психологів, гігієністів, дизайнерів. Оскільки в результаті завершення розробки продукту, ПЗНП має відповідати методичним, дидактичним, психологічним вимогам.
Перерахуємо основні типи вимог до ПЗНП: [43]
педагогічні вимоги (дидактичні; методичні; обґрунтування вибору тематики учбового курсу; перевірка на педагогічну доцільність використання та ефективність використання);
технічні вимоги;
ергономічні вимоги;
естетичні вимоги;
вимоги до оформлення документації.
Нам, як розробникам ПЗ, цікаві технічні вимоги. Програмно-технічні вимоги до ПЗНП визначають вимоги, що забезпечують:
стійкість до помилкових та некоректних дій користувача;
мінімізацію часу на дії користувача;
ефективне використання технічних ресурсів;
відновлення системної області пам’яті перед завершенням роботи програми;
захист від несанкціонованих дій користувача;
можливість ведення особистої інформації (зошит);
відповідність функціонування ПЗНП до опису в експлуатаційній документації.
Львов М.С. у своїх працях виділяє такі загальні методологічні вимоги до програмного продукту навчального призначення:
система інформаційної підтримки навчання має відповідати формі організації навчального процесу;
система інформаційної підтримки має бути орієнтована на всіх учасників навчального процесу;
система інформаційної підтримки має бути орієнтована на всі етапи навчального процесу;
система інформаційної підтримки повинна бути предметно-орієнтованою.
Також, з точки зору розробника ПЗ, нам цікаві вимоги до інтерфейсу ПЗНП. Коротко розглянемо деякі з них.
Основні вимоги до інтерфейсу ПЗНП
Вимоги, прикладені до інтерфейсу користувача навчальних програм, більш критичні ніж для інших ПЗ. Це обумовлене, у першу чергу тим, що на екрані комп'ютера користувальницький інтерфейс й навчально-методичне наповнення програми повинні представляти єдине ціле, при цьому самі елементи оформлення й навігації не повинні відволікати увагу учня від основного матеріалу [19]. Важливі не тільки форма, кольори, інтуїтивна зрозумілість піктограм, але й загальна кількість рівноцінних елементів на екрані. Наприклад, якщо число однакових кнопок навігаційної панелі не перевищує 6-7, користувач здатний швидко «зафіксувати» їх у пам'яті й звести користування ними до автоматизму. Інтерфейс ПЗНП повинен бути відносно простим, інтуїтивно зрозуміли та не потребувати від користувача будь-якої підготовки чи спеціальних знань.
Програмні модулі та сценарії роботи в МСНП ПМК Терм
Основний вид діяльності користувача в МСНП ПМК Терм – розв’язання математичної задачі. Цей процес представляє собою послідовність кроків, на кожному з яких користувач виконує деяке перетворення математичного об'єкта – моделі математичної задачі. Таким чином, основним програмним модулем є спеціальний модуль – Середовище розв’язання (задач). Основні функції цього модуля – перевірка правильності перетворень, виконаних користувачем, або автоматичне виконання перетворення за командою користувача. [29]
Список припустимих перетворень математичних об’єктів надано у модулі Довідник, звідки користувач на кожному кроці обирає потрібне перетворення.
Редагування і перетворення алгебраїчних виразів підтримуються спеціалізованим Математичним редактором.
Джерелом задач є Задачник – модуль системи, в якому представлені всі типи задач, що підтримуються Середовищем розв’язання.
Розв'язані задачі зберігаються в Зошиті користувача. Перелічені вище програмні модулі безпосередньо підтримують процес розв’язування задачі. Робота користувачів в системі персоніфікована. Кожен користувач має декілька власних Зошитів.
Важливим модулем системи є Навчальний посібник. У посібнику представлено теоретичний матеріал з алгебри за 7-9 класи загальноосвітньої школи.
Виклад цього матеріалу доповнюється програмним модулем Вправи. Мета кожної вправи в цій системі – усне розв’язування нескладних задач з даної теми. Система перевіряє правильність відповіді.
Нарешті, ПМК містить програмні модулі (математичні інструменти) – Розв’язувач і Графіки. Модуль Розв’язувач призначений для розв’язання (тобто отримання відповіді) стандартних задач з алгебри. Модуль Графіки по суті є розв’язувачем задач аналітичної геометрії. Відмінністю цього модуля є те, що розв’язування цих задач супроводжується відповідними графічними побудовами.
На схемі 1.1 [29] зображено загальну об’єктну модель програмних модулів МСНП ПМК Терм, їх взаємодію та сценарії роботи.
Для реалізації ПМ Експерт, нам особливо цікавими будуть програмні модулі Середовище розв’язання та Розв’язувач. Також слід звернути увагу на Довідник, так як він містить усі перетворення, що доступні користувачу в цих програмних модулях. Далі розглянемо ці модулі більш детально.
Середовище розв’язання
Середовище розв’язання (СРЗ) є основним модулем МСНП «Терм.7-9». СРЗ – це потужний інструмент, за допомогою якого користувач може розв’язувати алгебраїчні задачі за 7-9 класи відповідно.
При розв’язувані нової задачі, користувач може вибрати один з режимів розв’язування: автоматичний; режим перевірки кроку розв’язання; змішаний. Розв’язуючи задачу в автоматичному режимі, користувач вибирає з Довідника те перетворення, яке він хоче виконати, а комп’ютер виконує це перетворення. У режимі перевірки кроку
Схема 1.1. Загальна об'єктна модель МСНП ПМК Терм
розв’язання користувач самостійно виконує крок розв’язування задачі, а комп’ютер перевіряє правильність виконання цього кроку.
Хід розв’язання алгебраїчної задачі – це послідовність кроків, на кожному з яких здійснюється перетворення виразу. Кожен крок розв’язання – це застосування одного з можливих перетворень до алгебраїчного виразу, що представляє розв’язувану задачу. Результат перетворення – новий вираз. Таким чином, користувач має змогу розв’язувати задачі, крок за кроком виконуючи елементарні перетворення над поточним виразом.
Процес розв’язування задачі користувач здійснює за допомогою Довідника та Математичного редактора.
На схемі 1.2 зображена модель взаємодії Середовища розв’язання з Довідником та Математичним ядром системи безпосередньо на етапі розв’язання конкретної задачі.
Схема 1.2. Взаємодія Середовища розв’язання з іншими модулями при розв’язанні задачі
Учень, розв’язуючи задачу, вибирає перетворення із спису доступних в Довіднику, після чого, Середовище розв’язання викликає відповідну функцію з Математичного ядра, яка реалізовує вибране перетворення, передаючи йому поточний вираз. Математичне ядро здійснює необхідні перетворення над вхідним виразом, та повертає отриману після перетворення відповідь Середовищу розв’язання. Після чого користувач бачить результати обраного перетворення. Така взаємодія повторюється доки користувач не закінчить розв’язання. По суті Середовище розв’язання є зручним інтерфейсом для взаємодії користувача з математичним ядром. Таким чином, з технічної точки зору, основними функціями Середовища розв’язання є:
відобразити доступні для користувача перетворення з Довідника;
викликати з Математичного ядра обране користувачем перетворення;
відобразити отриманий від Математичного ядра результат;
надати користувачу можливість самостійно виконати перетворення (у режимі перевірки кроку розв’язання);
надіслати на перевірку виконане користувачем перетворення.
На рисунку 1.1 зображений зовнішній вид Середовища розв’язання у автоматичному режимі.
Рисунок 1.1. Загальний вигляд ПМ Середовище розв’язування
Розв’язувач
Програмний модуль Розв’язувач призначено для розв’язання типових задач, які вивчаються в курсі алгебри у 7-9 класах загальноосвітньої школи. З точки зору функціональності цей модуль є модулем комп’ютерної алгебри. Результатом розв’язування кожної задачі є відповідь, тобто результат обчислень. Однак, коло розв’язуваних задач за допомогою Розв’язувача менше, ніж у Середовищі розв’язання задач.
Незважаючи на те, що цей модуль не використовується безпосередньо в процесі розв’язування задач, його можна використовувати як обчислювач у процесі вивчення інших дисциплін (наприклад, фізики) або для розв’язування математичних задач, що виникають на практиці.
Розв’язувач взаємодіє з Довідником та математичним ядром аналогічно як і Середовище розв’язання. На схемі 1.3 показана взаємодія модуля Розв’язувач з Довідником та математичним ядром.
Схема 1.3. Взаємодія Розв’язувача з іншими модулями при розв’язанні задачі
Користувач, розв’язуючи задачу, вибирає дію із списку доступних в Довіднику, після чого, Розв’язувач викликає відповідну функцію з Математичного ядра, яка розв’язує вибрану задачу, передаючи йому поточний вираз. Математичне ядро розв’язує отриману задачу та повертає відповідь у Розв’язувач. Відмінність Розв’язувача від Середовища розв’язання в тому, що ми отримуємо від Математичного ядра відповідь (розв’язану задачу), а не чергове перетворення над виразом.
На рисунку 1.2 зображений зовнішній вид Розв’язувача.
Довідник
Програмний модуль Довідник відіграє в МСНП ПМК Терм дуже важливу роль. Він містить усі перетворення, якими можна користуватися в Середовищі розв’язання, розв’язуючи задачу в автоматичному режимі. Кожне з перетворень реалізовано у вигляді довідки, яка містить таку інформацію:
Рисунок 1.2. Загальний вигляд ПМ Розв’язувач
Перетворення: назва перетворення та формула (формули), якою (якими) визначається перетворення.
Текст: коментар до перетворення, який виводиться у текстовий рядок ходу розв’язання на кожному кроці.
Як це зробити: стисла інструкція про порядок виконання перетворення (дії) при активній роботі з довідником.
Математичне пояснення: довідка, яка містить пояснення щодо використання перетворення при розв’язанні задач.
Головною функцією Довідника, з технічної точки зору, є відображення функціональних можливостей Математичного ядра, тобто всіх перетворень та задач, які воно може виконати. Користувачу залишається лише вибрати необхідне йому перетворення та натиснути кнопку Виконати.
На рисунку 1.3 зображений зовнішній вид Довідника.
Рисунок 1.3. Загальний вигляд ПМ Довідник
Постановка задачі генерації ходу розв’язання шкільних алгебраїчних задач
Математичні системи навчального призначення (МСНП), як і професійні математичні системи (ПМС), такі, як Maple, Mathematiсa, Mathcad, Mathlab, Derive використовують технології символьних перетворень та методи комп’ютерної алгебри. Однак вони мають свою специфіку. Якщо ПМС призначені для розв’язання математичних задач, то МСНП мають підтримувати хід розв’язання таких задач. Ця специфіка відома як принципи чорного та білого ящиків (схема 1.4).
Схема 1.4. Принцип чорного та білого ящиків (ПМС та МСНП)
Підтримка ходу розв’язання, як зазначалося вище, може здійснюватися у декількох режимах. Зокрема, це режими автоматичного виконання кроку розв’язання (автоматичний режим) та режим перевірки правильності кроку розв’язання (режим перевірки).
Але для повного розуміння учнем розв’язання деякої задачі, необхідно додати для користувача ще один режим – режим повного ходу розв’язання. Адже як для учня, так і для вчителя важливим є сам хід розв’язання, який приведе до отримання правильного результату.
Метою нашого дослідження є створення ПМ Експерт, в якому реалізована підтримка повного ходу розв’язання, за допомогою алгоритмів генерації ходу розв’язання задачі з конкретної тематики.
Сформулюємо постановку задачі отримання ходу розв’язання:
Дано:
стандартна задача (математичний вираз) шкільного курсу алгебри 7-9 класів;
Знайти:
хід розв’язання вхідної задачі стандартними (шкільними) алгоритмами.
Для повного розуміння наведемо приклад:
Дано:
Знайти:
хід розв’язання задачі.
Відповідь:
Перенесемо праву частину рівняння в ліву, отримаємо:
Приведемо подібні доданки, отримаємо:
Знайдемо дискримінант квадратного рівняння:
Дискримінант більше нуля, отже рівняння має два різні корені
Знайдемо корені рівняння:
Відповідь:
Отже, як видно з прикладу, результатом виконання задачі має бути не просто відповідь, а повний хід розв’язання задачі.
РОЗДІЛ 2
ТЕХНОЛОГІЇ РЕАЛІЗАЦІЇ МСНП
2.1. Огляд технологій реалізації системи
Проектування та реалізація МСНП здійснюється за технологіями розроблення середніх та великих програмних систем. Перш за все це стосується обґрунтованого вибору моделі процесу розробки [12]. Ми розглянемо це обґрунтування на прикладі МСНП для середньої школи – ПМК Терм 7-9.
Вибір моделі процесу розробки зумовлений наступними чинниками: [18]
специфікою вимог користувача, яка полягає у відносній незалежності основних підсистем, модулів та компонентів системи;
наявністю перших версій програмних модулів та програмних компонентів загального призначення;
наявністю перших версій таких CASE-засобів, як редактори окремих типів електронних дидактичних матеріалів (електронних підручників, задачників тощо).
Зауважимо, що перелічені чинники є типовими для проектування процесу розробки розподілених програмних систем. Тому рішення про вибір моделі процесу розробки можна рекомендувати як типове.
Зважаючи на сказане вище було обрано гібридну[10] модель процесу розробки.
Вибір системних платформ та середовищ реалізації
На ринку педагогічних програмних засобів домінують такі системні платформи: MS Windows, MacOC, Unix [6]. Таким чином, є об’єктивні підстави для використання таких кросплатформених середовищ реалізації, як Java. Однак на практиці такі рішення можна приймати лише за умов реалізації програмних проектів “з нуля”. Наш проект істотним чином використовує технології, розроблені раніше, для виконання проектів, замовлених під ОС MS Windows. Аналіз показав, що критичними з цієї точки зору є технології алгебраїчного програмування (APS), реалізовані під ОС MS Windows. Отже, центральною проблемою при побудуванні кросплатформених МСНП цієї архітектури є проблема реалізації кросплатформених технологій алгебраїчного програмування.
На першому етапі процесу розробки МСНП ПМК Терм 7-9 при проектуванні використовувався інструментальний засіб “MS Visual Project 2002”. Практика показала доцільність його використання при одночасному виконанні одного проекту на платформі Microsoft. Для одночасного розроблення декількох програмних продуктів за умови кросплатформеності більш прийнятним є використання відкритої системи SVN (Subversion).
Загальні проблеми повторного використання програмних модулів та компонентів
Програмні компоненти МСНП класифіковано як
програмні модулі;
програмні компоненти загального призначення.
Програмні модулі, у свою чергу, класифіковано як
програмні модулі, призначені для повторного використання без змін змісту та функціональності;
програмні модулі, призначені для повторного використання зі зміною змісту;
програмні модулі, призначені для повторного використання зі зміною функціональності. [58]
Отже, для реалізації МСНП були обрані такі технології:
Мова C++ та бібліотека класів MFC, для реалізації інтерфейсу та основної логіки системи;
Microsoft Visual Studio .Net 2003 – як інтегроване середовище розробки програмного забезпечення;
APS – система алгебраїчного програмування, для створення математичного ядра.
Нам цікавою є система алгебраїчного програмування (APS), що, як показує практика її використання у проектах НДІІТ при ХДУ, найкраще підходить для реалізації алгоритмів генерації ходу розв’язання задач. Далі розглянемо алгебраїчне програмування та APS детальніше.
2.2. Технології алгебраїчного програмування
Алгебраїчне програмування – це програмування, основане на переписуванні. Алгебраїчне програмування є розширенням функціонального програмування і застосовується при вирішенні задач комп'ютерної алгебри (таких як проблема слів у кінцево визначених алгебрах, алгоритми поповнення Кнута-Бендікс або Бухбергера), а також завдань, пов’язаних з операційною семантикою мов програмування (що виконують алгебраїчні специфікації компонентів програмного забезпечення, визначення операційних семантик мов програмування, розробка інтерпретаторів і прототипів компонентів програмного забезпечення та ін.). [24]
На відміну від традиційного підходу, орієнтованого на використання канонічних систем правил переписування з «очевидною» стратегією їх застосування, в АПС можливе сполучення будь-яких систем правил переписування і різноманітних стратегій переписування. Такий підхід значно розширює можливості технік переписування, оскільки зростає їх гнучкість та виразність. АПС інтегрує чотири основні парадигми програмування таким чином, що основна частина програми може бути написана у вигляді систем переписування, імперативне і функціональне програмування використовуються для визначення стратегій, логічна парадигма реалізується на базі переписування, що використовує вбудовану процедуру уніфікації. [39]
У структурі АПС можна виділити три способи структуризації використовуваних елементів:
основні типи системних об'єктів;
базові обчислювальні механізми;
допустимі мовні конструкції, об'єднані в сімейство мов APLan.[39]
Система алгебраїчного програмування організована таким чином, що користувач має одночасний доступ до всіх рівнів програмування, починаючи з мови конкретної предметної області і закінчуючи рівнем розширення мови Cі, яке називається L2C. Таким чином досягається ефективний розподіл складності програмної системи, що розробляється за різними рівнями. Підтримується еволюційність процесу програмування, починаючи з виконуваної алгебраїчної специфікації, через оптимізацію перетворення, до ефективної програми на мові Сі. Найвищий і спеціалізований рівень утворюють конструкції, пов'язані з деякою конкретною предметною областю. Вони мають локальний характер, але також активно використовуються в інших предметних областях. Це пов'язано з тим, що в базовій мові APLan немає типів даних. Строго кажучи, існує єдиний тип даних – алгебраїчний терм. У той же час є можливості для використання строгого типізування, наприклад, при програмуванні в об'єктно-орієнтованому розширенні APLan.
У багатьох предметних областях побудова розв’язання прикладної задачі вимагає перетворень математичних об'єктів. Типова ситуація полягає в наступному: математична модель деякого об'єкта задається у вигляді конструктивного математичного об'єкта, а предметна область описується переліком припустимих перетворень математичних об'єктів. Розв’язання прикладної задачі полягає в тому, щоб, послідовно перетворюючи об'єкт за допомогою припустимих перетворень, привести його до необхідного (простого) виду.
Наприклад, математичною моделлю об'єкта є система лінійних рівнянь, конструктивно задана розширеною матрицею системи. Припустимі перетворення – елементарні перетворення рядків матриці. У задачі потрібно знайти точне рішення даної системи.
Задачі такого роду природно розв’язувати методами алгебраїчного програмування.
APS – це алгебраїчна система програмування (Algebraic Programming System), яка була розроблена в інституті кібернетики ім.Глушкова. Автором ідеї є професор Олександр Летічевський.
APS є першою системою яка використовує окремо поняття «стратегія» з системою правил переписування. APS – це одна з систем переписуючих термів, яка має процедурну частину, самомодифікацію, динамічне створення процедур та системи правил переписування, можливості додавати нові мовні вирази. [15]
Системи правил переписування
У APS системи правил переписування мають наступний синтаксис:
<Система переписуючих правил>:: = rs (<список змінних>)
(<Список правил розділених комою>)
<Правило >::=< просте правило> | <умовне правило>
<Просте правило >::=< алгебраїчне вираз> =
<Алгебраїчне вираз>
<Умовне правило >::=< умова >->(< просте правило>)
<Змінна >::=< ідентифікатор>
Стратегії переписування в APS базуються на двох основних внутрішніх процедурах – applr і appls. Оператор applr (t, R) намагається застосувати одне з правил системи R до терму t. Якщо застосовних правил немає, то змінна yes отримує значення 0; в іншому випадку застосовується перше правило, яке може бути застосоване і змінна yes приймає значення 1. Застосування простого правила звичайне: терм зіставляється з лівою частиною правила, і якщо зіставлення успішне, то відбувається заміна терма правою частиною правила і підстановка змінних. Потім отриманий терм приводиться до канонічної форми за допомогою правил, подібних правилами обчислення значення терма, але без підстановки значень імен. Застосування умовних правил здійснюється таким чином: спочатку здійснюється зіставлення (matching). Якщо воно успішне, то умова приводиться до базової канонічної формі шляхом обчислення функції CAN. Якщо в результаті виходить 1, то застосування правила триває звичайним чином, в іншому випадку – скасовується. [23]
У новій версії APS семантика застосування умовних правил переписування дещо змінена: тепер при обчисленні умови змінні метчінга захищаються від приведення до канонічної форми. Як показує практика, така семантика більш зручна, а узгодження зі старою семантикою можна домогтися явним викликом функції CAN.
Рівності як правила переписування
Відношення рівності в математиці використовується у формулюваннях тотожностей, співвідношень у визначеннях, рівняннях. В алгебраїчному програмуванні знак рівності використовується у так званих правилах переписування для позначення припустимого перетворення математичного об'єкта.
Приклад 2.1.
Правило переписування: x + 0 = x
Математичний об'єкт: 2*A + 0
Результат переписування: 2*A
Приклад 2.2.
Правило переписування: (a*x = b) = (x = b/a)
Математичний об'єкт: 2*y = a + 4
Результат переписування: y = (a + 4)/2
Правила переписування можуть бути застосовні до одних об'єктів і незастосовні до інших об'єктів. У випадку, коли правило незастосовне до об'єкта, у результаті його застосування об'єкт не перетвориться. Таким чином, незастосовність правила інтерпретується як тотожне перетворення об'єкта «на місці». Відзначимо, що в обох випадках на застосування правила переписування витрачається час.
Для опису зразка – лівої частини правила переписування, крім змінних, які грають роль формальних параметрів, використовуються ще й константи, що позначають самі себе. Оскільки позначення констант потрібно відрізняти від позначення змінних – формальних параметрів, правило переписування потрібно доповнити відповідною інформацією.
Іноді зразок – ліва частина правила переписування, містить кілька входжень однієї й тієї ж змінної. У цьому випадку відповідні підвирази є фактичними параметрами перетворюваного виразу, та порівнюються синтаксично.
Повторення порівняння закінчується у випадку, коли:
Одне із правил системи застосовано до даного об'єкта. Результат застосування системи до даного об'єкта є результат застосування цього правила до об'єкта.
Жодне із правил системи незастосовне. Результатом застосування системи до даного об'єкта у цьому випадку є даний об'єкт.
Системи правил переписувань
Для того, щоб технології переписування стали ефективним інструментом алгебраїчного програмування, окремі правила переписування потрібно поєднувати в так звані системи правил переписувань (rewriting rules systems). [39]
Приклад 2.3. Система правил переписувань, що визначає властивості 0 і 1 для спрощення алгебраїчних виразів:
rsOneZero:=rs(x) (
x*1 = x,
1*x = x,
x+0 = x,
0+x = x,
x*0 = 0,
0*x = x
);
Наведена система правил переписування застосовує властивості 0 та 1 до деякого алгебраїчного виразу.
Стратегії переписувань
Однієї тільки можливості об'єднання правил переписування у системи недостатньо для того, щоб зробити технологію переписувань ефективним інструментом алгебраїчного програмування. Справді, система переписувань приклада 2.3 містить всі співвідношення, що спрощують вираз за властивостями нуля й одиниці. Однак для того, щоб спростити вираз, цю систему потрібно застосувати неодноразово, причому не тільки до всього виразу, але й до усіх його підвиразів. [