ThesisPDF Available

Динамично генериране и оптимално управление на потоци от дейности и ресурси за провеждане на електронното обучение

Authors:
ПЛОВДИВСКИУНИВЕРСИТЕТПАИСИЙХИЛЕНДАРСКИ
ФАКУЛТЕТПОМАТЕМАТИКАИИНФОРМАТИКА
КАТЕДРАКОМПЮТЪРНАИНФОРМАТИКА
ГЕОРГИПЕТРОВПАШЕВ
ДИНАМИЧНОГЕНЕРИРАНЕИОПТИМАЛНОУПРАВЛЕНИЕ
НAПОТОЦИОТДЕЙНОСТИИРЕСУРСИЗАПРОВЕЖДАНЕ
НАЕЛЕКТРОННОТООБУЧЕНИЕ
АВТОРЕФЕРАТ
НАДИСЕРТАЦИОНЕНТРУДЗАПРИСЪЖДАНЕ
НАОБРАЗОВАТЕЛНАИНАУЧНАСТЕПЕНДОКТОР
пообластнависшеобразование
4.Природнинауки,математикаиинформатика
професионалнонаправление
4.6.Информатикаикомпютърнинауки
докторскапрограмаИнформатика
Наученръководител:
проф.д.м.н.ГеоргиАтанасовТотков
Рецензенти:
проф.д‐рКънчоЙордановИванов
проф.д‐рИванКойчев
Пловдив
2017година
2
Дисертационният труд е обсъден и насочен за защита пред научно жури,на
заседание на катедра Компютърна информатика при Факултета по математика и
информатиканаПловдивскияуниверситетПаисийХилендарски“,на27.10.2016г.
МатериалитепозащитатасанаразположениенаинтересуващитесевДекана‐
танаФакултетапоматематикаиинформатика,НовасграданаПУПаисий Хилендар‐
ски(бул.България№236),всекиработенденот8:30до17часа.
Защитата на дисертационния труд ще се състои 16.02.2017г.от12:30 часа в
ЗаседателнатазаланаПУПаисийХилендарски(Ректорат,ул.ЦарАсен№24).
Автор:ГеоргиПетровПашев
Заглавие:ДИНАМИЧНОГЕНЕРИРАНЕИОПТИМАЛНОУПРАВЛЕНИЕНA
ПОТОЦИОТДЕЙНОСТИИРЕСУРСИЗАПРОВЕЖДАНЕНА
ЕЛЕКТРОННОТООБУЧЕНИЕ
3
Abstract
GEORGIPETROVPASHEV
DYNAMICGENERATIONANDOPTIMALMANAGEMENTOFFLOWSOF
ACTIVITIESANDRECOURCESFORELEARNING
Inthecontextofelearningthelevelofpersonalizationisameasurementforlearn
ingqualityandeffectiveness.Inotherwords:elearningpathsshouldvary,dependingon
learninggoals,knowledge,motivationandindividuallearningstyles.
Astudentcanpassthecoursethroughoneormorelearningpaths.Personalized
learningcontentismoresuitableandcomprehensibleinacontextofpersonallearning
goalsandachievements.
Supportofdifferentaspectsofpersonalizationandadaptationsoflearninginstru
mentsisnotintherequiredabstractionlevel:toooftendependsondistinctmethodsof
combiningLOsinordertobuildLearningPaths(LPs)for“passingthrough”anecourseand
achievingofLearningGoals.TheselectionofLOsquiteoftenisbuiltonrathersimplified
principles,doesn’tmeettherequirementsformodellingandfollowingmorecomplexe
learningstrategies.
Goalsofthedissertationresearch
Theprimarygoaloftheresearchistoresearch,proposeandtestmodels,method
ologiesandsoftwareinstruments,suitableforthecreationofadaptiveelearningsystems
(AelSs)withalargesetofpossibleapplications.
Thefollowingresearchquestionsfulfilltheprimarygoal:
Question1.Researchonmethodologiesandtoolsforprovidingadaptivee
learning,includingcomparativeanalysisofAeISs,
Question2.Creationofageneralizedmodel,architectireandaprototypeofa
softwaresystemwhichprovidesadaptiveelearning(withinaninstitutionalinformational
infrastructure),aswellasamethodologyfortheirapplication;
Question3.IntroductionandtestingofconceptualandcomputermodelsforAslS
withdifferentapplications;
Question4.Design,creationandtestingofsoftwareinstrumentsforadaptivee
learning.

4
СЪДЪРЖАНИЕ
ABSTRACT.........................................................................................................................3
СПИСЪКНАИЗПОЛЗВАНИТЕСЪКРАЩЕНИЯ...................................................................5
УВОД................................................................................................................................6
ГЛАВА1.ОБЗОР...............................................................................................................7
1.1.Същностнаадаптивнотое‐обучение.............................................................7
1.2.Изводи.................................................................................................................8
ГЛАВА2МОДЕЛИНАПРОЦЕСИ,МЕТОДИКИИАСЕО....................................................9
2.1.Основнипонятия................................................................................................9
2.2.Моделнаадаптивенпроцесзаобучение.......................................................11
2.3.Основнимодели................................................................................................12
2.4.МетодиказаизгражданенарамканаАСЕО.................................................15
ГЛАВА3.АРХИТЕКТУРАНАРАМКААСЕО.....................................................................16
3.1.ОбщаархитектуранарамкаАСЕО................................................................16
3.2.Техническо‐приложенизгледнаархитектурнарамканаАСЕО..................17
3.3.МодулОбучаванвкурс.................................................................................19
3.4.Генераторнапресонализираниучебнипътища...........................................20
3.5.Генераторнатестовиединици.....................................................................22
3.6.Рамказаработнипотоци...............................................................................23
ГЛАВА4.РЕАЛИЗАЦИЯНАРАМКААСЕО......................................................................24
4.1.Рамказаизпълнениенаработнипотоци......................................................24
4.2.МодулОбучаванвкурс.................................................................................29
4.3.Генераторнаперсонализираниучебнипътища...........................................30
ГЛАВА5.ИЗГРАЖДАНЕНАПРОТОТИПИВЪРХУРАБОТНАРАМКААСЕО.....................33
ЗАКЛЮЧЕНИЕ................................................................................................................34
БИБЛИОГРАФИЯ............................................................................................................38
5
Списъкнаизползванитесъкращения
XML............................................................................................ExtendableMarkupLanguage
АМП.............................................................................Аспектзамногомернопространство
АОС............................................................................Автоматизиранасистемазаобучение
АСЕО...............................................................Адаптивнасистемазаелектроннообучение
АТ...............................................................................................................Акумулативентест
АТЕ........................................................................................Акумулативнатестоваединица
ГПИ..............................................................................Графиченпотребителскиинтерфейс
ЗО.............................................................................................................Заявказаобучение
ИПО.........................................................................................Изучаванапредметнаобласт
МП.................................................................................................................МрежанаПетри
ПО..............................................................................................................Предметнаобласт
СеО....................................................................................СистемазаЕлектроннообучение
УД...................................................................................................................Учебнадейност
УО.......................................................................................................................Учеб е н о б е к т
УП...........................................................................................................................Учебенпът
УЦ...........................................................................................................................Учебнацел
SA.......................................................................................................................... Метазнание
6
Увод
Вконтекстанае‐обучението,равнищетонаперсонализацияемярказакачест‐
воиефективностзаобучението. Казано по друг начин, учебните пътища е целе‐
съобразнода серазличават единотдруг набазатана поставениучебницели,позна‐
ния,мотивация и индивидуални стилове на учене на обучаваните.Набазатанатези
персоналнихарактеристики, обучаван може да преминекурсапоединилиповече
учебни пътища.Акоеперсонализирано, учебното съдържание е по‐подходящо и
разбираемо за обучавания в контекста на неговите лични цели и постижения.Под‐
дръжкатана различни аспекти на персонализация иадаптация на съответните инст‐
рументинеенажеланоторавнищенаабстракциямногочестозависиотконкретния
начин,покойтосепредполага,чеучебнитеобекти(УО)щесекомбиниратзапостроя‐
ванена учебен път (УП)запреминаванепрез е‐курс, или запостиганенаучебните
цели.ПодборътнаУОзавключваневУПобикновенопочиванапрекаленоопростени
принципи, не е съобразен с необходимостта от моделиране или следване на по‐
сложнистратегиизаобучение.
Целизадачи
Основнацелнадисертационното изследване е дасепредложат, изследват и
апробират модели, методи и софтуерни инструменти, подходящи за създаване на
адаптивнисистемизаелектроннообучение(АСеО)сразличнопредназначение.
Изпълнениетонапоставенатацелпредполагарешаваненачетиризадачи:
Задача1. Проучваненаконцепции исредстваза осигуряванена адаптивное‐
обучение,вкл.провежданенасравнителенанализнаконкретниАСеО;
Задача2. Създаванена общмодел,архитектураипрототипнасофтуерна сис‐
темазаосигуряваненаадаптивное‐обучение(врамкитенаинституционална инфор‐
мационнаинфраструктура),кактоинаметодиказатяхнотоприлагане;
Задача3.Въвежданеиапробираненаконцептуалниикомпютърнимоделиза
АСеОсразличнопредназначение;
Задача 4. Проектиране, реализация и тестване на софтуерни инструменти за
адаптивное‐обучение.
Структуранадисертацията
ВГлава 1.ОбзорсаразгледаниОсновнипонятия;Методики и модели свър
занисадаптивнотоеобучение; Съществуващи реализации на АСЕО,на които е
приведенакласификация.Вкраянагл.1саформираницелизаАСЕО.
ВГлава2.евъведенМоделнаадаптивенпроцес,дефинирани сарелевант‐
ни модели като модели в Изучавана предметна област (ИПО),Моделнаработен
поток,инстанциянаработенпоток,съобщение;Моделнааспектипр.модели.Пред‐
ставенаеиМетодиказаизгражданенаАСЕО,базирананаМоделнаАСЕО.
В Глава3.са представени логически изгледи технически изгледнаОбща
архитектурнарамка на АСЕО.Моделираниса архитектурно и важни компоненти от
логическияизгледкатомодулиОбучаван в курс“,Преподавател“,Учебнидейнос‐
ти“,Администрация“,Администриране на курс“,Генератор на персонализирани
оптимални учебни пътища“,Генератор на тестови единици“,Рамка за работни
потоци“.
ВГлава4.епредставенпрограменкодотреализациятанарамкаАСЕО.
7
В Глава 5.сепредставяселементарни примери за създаване на адаптивен
курсвърхурамкатаАСЕОоттехническагледнаточка.
Благодарности
Искреноблагодаря на моя научен ръководителпроф.д.м.н.Георги Тотков,
задовериетоинапътствиятаприпровежданенадисертационноизследваневобласт‐
та. Несъмнено,творческиятпроцесбешеползотворенидвустранен,коетопозволи
създаваненанестандартниидеи итяхнатаеволюция иприлаганевконкретнирезул
татинатоваизследване.
Благодаря също на колегите от Университетския информационен център за
оказанатаподкрепа, разбиране исъдействиеи възможността да участвамвсъздава‐
ненаползотворнатворческасредапризачитаненадобриидеиотвсичкиколеги.
Глава1. Обзор
1.1 Същностнаадаптивнотое‐обучение
На базата на разбирането за същността на е‐обучението, дадена в [Тотков Г.
(2016)],можедасезаключи,че:Същносттанаадаптивнотое‐обучениесезаключавав
моделиране на адаптивно обучение като информационен процес с използване на
ИКТ.
Впроцеса на адаптивно е‐обучение участват субекти,информационни ресур‐
си,дейности/подпроцеси,материалниресурси,метазнанияиресурси,управлениена
процеса,ограничения. Субектите вадаптивнотое‐обучение са: обучаван,преподава‐
тел,автор,експертвпредметнатаобласт(ПО),администраторидр.Завсекиотсубек‐
титеима определен набор отважниатрибути,които го характеризират.Информаци‐
оннитересурси в процеса на е‐обучениетомогатдабъдатнапример: бази знания за
ПО, учебни и тестови единици, е‐портфолиа на субекти, цифровизирани дейности и
др.[ТотковГ.(2016)].Дейности/подпроцесивадаптивнотое‐обучениемогатдабъдат
отразличнитипове:учебни,административни, управленски,комуникационни,други.
Като част от управленските дейности можем да посочим: Планиране, Провеждане,
Управлениенаразличниформинаобучение,Контролидр. Материални ресурси,
релевантни към процеса на адаптивно е‐обучение, са например:зали,компютърни
системи,обем/вид на зали (лабораторни,семинарни,компютърни,други).Метазна‐
ниятаиресурсите вадаптивното е‐обучениевключват:учебницели,описаниенаПО,
методики за адаптивно обучение, различни връзки между същностите в субектите,
различни атрибути на тези субекти. Метазнанието включва метаданни за субекти,
информационни ресурси, дейности и др.коитонесачастотИПО. Управлението на
процеса на адаптивното е‐обучение включва управление на гореизброените управ‐
ленческидейности. Ограниченията впроцесанаадаптивно обучение могат да бъдат
напримерсвързанисвреме,място,стойностидр.
Задачатазаобучениеможедасеформулиракатозадачазауправление[(Л.А,
1981)]. В случая Адаптивната система за обучение (АОС) изпълнява функциите на
управляващоустройство(фиг.1).Нафигуратаимаследнитеобозначения:Ψсъстоя‐
ниенавъншнатасреда;Yсъстояниена ученика;IΨ,IYсъответстващи измерители;
Y’иΨрезултатите от измерването;X управляващи (обучаващи и контролиращи)
въздействия;Dxресурси(ограничения науправлението);Z*‐целинауправлението,
необходимизапреходнаобучаванвсъстояниеY*.
8
Фигура1ОбщаструктуранаАОС
Подсистематазауправление на обучението трябва да включва пет вериги на
адаптация:
Веригана корекция на параметрите. В тази верига адаптацията се свежда
докорекцияназначениетонапараметритенамоделитенаобучавания,така
чедаседобиемаксималносъответствиенамоделитенаеволюиращияобу‐
чаван.
Вериганапараметричнатаидентификация.Можедасеокаже,чеспомощ‐
танакорекциинапараметринамоделинеможедасепридобиеприемливо
съответствиемеждумодели и обучаван.Втезислучаиецелесъобразноиз
ползване на процедура по параметрична идентификация на моделите.Ес‐
тествено,че допълнителните управляващи въздействия (обучаващи и конт‐
ролиращи)втакъвслучайтрябвадабъдатминимални, понеже тези въз‐
действиянарушаватпроцеса за постигане на поставените цели на управле‐
нието;
Вериганаструктурнатаидентификация. Възможна е ситуация,прикоятои
параметричнатаидентификация е недостатъчна моделътвпреднатаситу
ацияне представяобучаванияадекватно. Възможнорешениее изменение‐
тонакласанафункциите,отразяващигрешкитевизменениятанавеличини‐
теΨиXинестационарнитехарактеристикинаобучавания;
Вериганакорекцияна ограниченията. Ако по‐горните вериги на корекция
не са достатъчно адекватни за моделирането на обучавания,възможное
разширяваненамножеството на допустимите управляващи въздействия да
сеокажеполезно,т.е.разширяванетонаможествата;
Верига на корекция на целите на управлението.Акопогорнитекорекции
се окажат недостатъчни за адекватно моделиране на обучавания, тогава
можедасепремине към корекция на компонентите на целите на управле‐
ниетоZ
*
[(КарпенкоА.П.,2011)].
1.2 Изводи
Бизнеспроцеситесаобикновеноадаптивникъмпромени. Нотацията на биз‐
нес процесите от гледна точка на експлицитната им нотация е много по‐адаптивна,
отколкотонаписанипроцедурииполитики.[(Eibenova,2015)]
9
Набазатана направенияобзор,можемда идентифицирамеследните направ‐
лениязамоделиранеисъздаванеАСЕО:
Създаваненаадекваятнимоделина:
o субекти, информационни ресурси, материални ресурси,процеси,инс
танциинапроцеси,съобщения,метазнание(SA);
o работна рамка АСЕО като процес на адаптивно обучениекато по‐общ
случай на процес на управление на различни субек‐
ти/процеси/инстанциинапроцеси,анесамоотгледнаточканауправ‐
лениевърхуобучавания,кактоенаправенов[(Л.А,1981)];
o всекиSAкактовиртуално,такаикатореаленобект,такаичрезГПИ.
Функционалностза:
o задаваненауправленскицели;
o описаниеисъобразяванесмоделанапредметнатаобласт;
o гъвкавостпри определяненасъответстващите измерителиIΨ,IYина‐
чинанаизмерване;
o леснаинтеграциясъссъществуващисофтуернисистеми;
o голяморазнообразиенавидоветеУД.
Обратнавръзка:
o за гъвкава корекция на параметрите на субекти и техни свойства в
АСЕО;
o адаптивна идентификация на тези параметри по време на експлоата
циянасистемата;
o структурнаидентификация,вт.ч. и автоматизирано събиране на мета‐
даннизаобектииподпроцесивпроцесанаадаптивное‐обучение;
o корекциянаучебнитецели.
Глава2. Моделинапроцеси,методикииАСЕО
2.1 Основнипонятия
Определение 1.Множествотое кореново дърво,(по‐нататък ще казваме
самодърво),акоепразнотомножество,илиакоедновременносаизпълнениследни‐
теусловия:
Съдържаединствен елементt,наречен корен надървото,койтощеознача
вамес().
Останалите елементи са (с изключение на корена) са разделени на
(≥0)непресичащи сенепразнимножестваТ
,…,Т
м,всякооткоетое
дърво.
Коренитена,…,наТмще наричаме преки наследници на.Броятна
прекитенаследницинададенвръхщенаричаменеговастепен.Акостепентанавръх
е0,тойсенаричалисто.
Пътв дърво епоследователностот върхове,
,….,
безповторение,като
завсеки два последователно върха,еизпълненоточноедноотдвете:енас‐
ледникнаилиенаследникна.
Множествотоотвсички възможнипътищавдървоT,коитоводятдолиста,ще
бележимсℎ().
10
Нека е дадена функцията,коятовръщаредицаот всички
листанаT.Тогава,нейнатадефинициявпсевдокодбиизглеждалатака:
Фигура2.Псевдокоднадефинициянафункция,коятонамира
всичкилистанадърво
Наред8.нафиг.2функциятасеизвикварекурсивно,приусловие,четекущият
връхнакореновотодърво нее листо.Наред4.имаобхожданенавсичкинаследни‐
ци на T.Нека е функция, която връща стойност на листо.
ва: ℎ() .Нека =  .
Определение2.Обект‐екземплярзаобект‐клас={,
, , }е
всяко наредено множество от двойки {<
,
>, < ,
>, , <
,
>},закоето∈, 1, .
Измерениеевсякокрайнонепразномножествоотстойности∈
().
Многомерно пространствос измерения,
,...
,,≥1е декартовото
произведение×
×. . .
Нека∈
(),=1,. Декартовото произведение = ×. . е пра‐
воъгълнаобласт в многомерно пространство.За,…,
съществуваизискването да
санепресичащисемножества.
Некае функция,закоято: × .ПроекцияпоRepнаобект
∈вщенаричаме(, ).Втекстапо‐долущебъденаричанаипредставяне.
Възможеналгоритъмзаизгражданетонапредставянетоеследният:
Завсекивъввсяканареденадвойкавобектекземпляр:
Стъпка 1:Ако \, се създава измерение,акоощенее
създадено,иседобавястойностзанеготакова,че=
;
Стъпка2:Ако∈,насесъпоставяцелочисленастойност:разс
тояние на Хеминг [Hamming]= ℎ(,
)където е
низсъссъщатадължинакато,носбазовастойностзавсекисимвол.
Стъпка 3:Ако∈, за всеки път до листо в дървотоℎ()създаваме
=
,такова,че
е стойността в листото, до което води пътя
ℎ(). Изпълняваме последователно Стъпка 1иСтъпка2за=
за
всяко
.
11
2.2 Моделнаадаптивенпроцесзаобучение
Анализът,проведен в Глава 1.,позволява да се направи заключение за това,
коиса елементитеиподпроцесите, свързанисобщия модел напроцесза адаптивно
обучение.Тезиелементииподпроцеси,заедностехнитеозначения,коитосеизполз‐
ватвтекстанадисертацията,саследните:
процеснаадаптивнообучение(вижобект∈);
предметнаобластна;
множество от нормативни документи и критерии, включително специ‐
фикацииистандартизаоценяванев;
наборотдобрипрактикизаЕОв;
изискваниянапотребителитекъмадаптивнотообучениев;
цифровохранилище(warehouse)синформационниресурсивконвен
ционалениелектроненвариантзаинеговияконтекст;
 процес на цифровизиране и разполагане вна електронни ко‐
пиянадокументи,свързанисконтекста;
процеснапроектиранеисъздаваненавконтекстана;
процеснакомпютърномоделираненатакасъздаденитеконцептуал
нимоделивпроцеса;
множеството от аспекти,относнокоитосеразглеждаинеговитееле
менти;
Ѱвъншнатасреда,вкоятопротичаS;
Dограничениятавърхузаявкатазаосъществяваненапроцес(вкл.време‐
ви,пространствениилогическиограничениязапровежданетона);
Task(D)езаявказаадаптивнообучение;
Стилда (~)наддаденоозначениенакомпонентеуказано,четова е негово
следващосъстояние;
WintозначавачасттаотСеО‐ компютъренмодел на Sинеговитеелементи
(вижприл.1);
Wеxt‐часттаотСеО,отнасящаседокомпютърнитемоделинаелементи,
коитонеса частот S(напримерметазнания иресурси заS, предишенопит от‐
носноS‐предипореднотоосъществяваненапроцеса,ит.н.);
 процес на създаване на обратни връзки, съответно за актуали‐
зация на информацията в хранилището (чрез),актуализациянасъс
тояниятанакомпютърнитемодели(обозначенистилда(~));
 процес за актуализация на модела наD,кактоиназаявкатаза
обучение

процесзаактуализациянаконцептуалнитеивиртуалните
(компютърни)моделиWint,Wеxt,кактоимоделитенатехнитепораж-
дащообекти,вт.ч.S,Ѱ,
;
12
Фигура3Моделнаадаптивенпроцеснаобучение
Примериза другипроцеси Sве‐обучението могатдабъдат ипроцесиза оце‐
няване на качеството [Doneva’16]. Такива процеси по естествен път се включват в
настоящиямоделнапроцесзаадаптивнообучение.
2.3 Основнимодели
МоделнаРаботенпоток
Работният поток (или Работен процес)е граф нареденадвойка =
(N, E),съставенаотследнитедвекомпоненти:
А)МножествовъзлиN = {N; i 1,n
},N=(R
,D
,R,
,F
,
,
,
),където:={R
; j 1,s
}; s ℕе множество от обекти входни данни (на‐
ричанеощесигнали),т.е.∈();D=D
; l 1,k
;,k множествоот
изходни обекти (наричани още слотове),т.е.∈();R=VR
;l
1,k
;,k множествоотвходниобекти, които потребител може да въвежда
ръчно (наричаниощепотребителскисигнали),т.е.∈();R⊆
;
=User
; l 1,k
;,k ‐ множествоот потребители, коитоиматправо да
изпълняваттекущвъзелотРаботенпоток;F=F
; p 1,ε
, ε ℕмножествоот
релациизасъздаваненаизходниданни(наричаниощегенериращи функции),таки
ва,чеF :⟶D
;Γ=Γ
; ϕ 1,ψ
, ψ ℕ множество от разрешаващи фун‐
кции,такива,чеΓ:⟶{,};=p
; p 1,ε
, ε ℕ;⊂;‐мно
жество от работни потоци (подпроцеси), които да се стартират автоматично след
изпълнението на текущ възел (стъпка),={SR
; j 1,s
}; s ℕемножествоот
обективходниданни,коитосезареждатпостойноставтоматичноотсесийнопрост‐
ранство(наричанеоще сесийни сигнали),т.е.∈
();
⊂
;={SD
;j
1,s
}; s ℕе множество от обекти изходни данни, които се запзават постойност
автоматично в сесийно пространство (наричане още сесийни слотове),т.е.
();
⊂
;Б.МножестворебраE⊆×.
Множествотоот всичкипроцесиpщебележимсP.Инстанцияна работенпо‐
токщенаричаменареденатачетворка=(,,,),където:
еработниятпоток,закойтоесъздаденаинстанцията
Λемножествоот входни параметри,коитоопределятуникалноинстанция‐
та,катозавсекиобект∈Λеизпълнено∈
().
13
Υемножествоотизходнипараметри, коитоинстанциятана поток връщакато
резултатотизпълнениетоси,катозавсяко∈Υеизпълнено∈().
Ηепространствоотобекти, запаметени във вътрешно сесийнопространство
заинстанциятаотобекти,катозавсяко∈Ηеизпълнено∈
().
ВΛиΗимаспециализирани обекти,коитообезпечаватправилотопротичанена
инстанциитенаработнитепотоци,катонапример:
Обект‐ идентификатор натекущияпотребител,закойтосеизпълняваинстан‐
цията
Обект,съдържащиметонаработнияпоток,покойтоесъздаденаинстанцията
Обектсписък,указващидентификаторина възли,презкоитодотуке преми‐
налоизпълнениетонаинстанциятанапотока
Обектсписъкнаактивнитевинстанциятанапотокатранзакции
Множествотоеотвсичкиналичниинстанциинаработенпоток.Функция
за избор на наличните инстанции на работен поток ще бележим с:
:  I.
Релация: ⟶Υе релация,коятовръщаизходнитепараметринаинс‐
танциянаработенпоток∈
.
Инстанция на съобщение ще наричаме = (, ,  , ,
, , , , , ),където:е заглавие на съобщението;
е множествоотпотребители,от които е изпратено съобщението;е мно‐
жествоот потребители,откоитоеполученосъобщението;еформатиран текстна
съобщението; ()емножествоотучебнидейности,закоитосеотнасясъ
общението; ()емножествоотцеливзаявказаобучение,за
коитосеотнасясъобщението;ℎемножествоотприкаченифайловекъм
съобщението; ()∪⊘е идентификатор на съобщение,закоето
товасъобщение представляваотговор;есъобщението накоетое
инстанция;О = (,
,)индикатор за изпращане на данни в инстанция на
работен потокв стъпка,
на работен поток, като атрибутите на обект
()сепредаватчрезсъответствиепоименасигналите.Трябвадасеотбележи,
чечастот инстанциите на съобщения са автоматичногенерираниотАСЕО. Примери
за такива автоматично генерирани съобщения са: Съобщение до преподавател за
наличие на обучаван с нулева Перспектива в курс; Съобщение до преподавател за
наличиенанепостижимацелвкурсотгрупаобучаваниидр.;
Определение3:Моделназаявказаобучениеенаредената5‐орка
=< ,
,,, >, където:
:именакурса;
=
: , =1,,, емножествоотдървета⊂,за които
завсекивъзел,…,
имамедефиниранафункцияза съответствиена инстан‐
циянаработенпоток:⟶I∪∅
ℎ = ℎ:= 1,:, емножествотоотпреподаватели,
 = {: = 1,;, }емножествотоотобучаванивкурса
 = {,...,
},
⊆1≤≤,къдетое мно‐
жествоотгрупиотобучавани.
14
Аспектзамногомернопространство
Определение4:Аспектзамногомернопространство(АМП)енареденататройка
=<, ,  >,където:е многомерно пространство;е конкретна имп‐
лементация на функция представяне на обект в правоъгълна област със сигнатура:
: × ;ефункциязаразстояние,респективноудовлетворяващакрите‐
риитезатова.
ПредимстванатакадефиниранияАМП:
Позволявапри появатананова дидактична таксономияУОда бъдатразглежда‐
нивконтекстанановимногомернипространства,вкл.сразличнипредставяниянате
зи обекти в новото многомернопространство и различна функция за разстояние за
всекиноваспект.
Чрезминималниилинулевипроменив реализациятана рамкатанаАСЕОда се
адаптиратновидидактичнитаксономии;
Едниисъщиучебниобектидасеразглеждатотразличнигледниточки,правила
иметодикизаразглежданетоим,коеторазширяваобхватанавъзможноститенарам‐
катазаАСЕО.
Моделнаобучаванвкурс
Определение 5:Моделнаобучаванвкурсе наредената двойка:=<
,
>,къдетоеконкретниятобучаван,закойтосеотнасямножест‐
воот кореновидървета,
,закоитосавъзможниследнитенареденидвойки(корен,
наследник):
(,):наличназаявказаобучение,аспект,вкойтосеразглеждатобектите,в
т.ч.и;
(, (,
,C
,A)): аспект и наличната перспектива от
достижимицелиназатозиаспект и тазизаявка за обучение.Рела
цията за перспектива на обучаванв курс, аспект и дадени цели в този курс има
следнатасигнатура: ××C×AC.Тявръща
тезицелиC,коитосапонастоящемдостижимизаобучавания.;
(, ℎ(,,
)) аспектипостигнатицели.Релациязапос‐
тигнатицели наобучаван,вконтекстаназаявкаиаспектесъсследнатасиг
натура:ℎ: ×A×Studentsset( {(C,
), . , (,
)} ).
Резултатътемножествоотнареденидвойки(,
), чиито първи елемент е
постигнатацел,авториятелементеинстанциятанапроцеса,скойтоепостигната;
(, ):заявказаобучение,кактоиналичнаинстанциянасъобщение,
закоятообучаваниятеизходящиливходящпотребител;
(, ):наличнаинстанциянасъобщение,закоятообучава‐
ниятевходящилиизходящпотребител,кактоиинстанциянасъобщениеотговор.
Множествотоот дървета за всекиобучавансеизгражда динамично,по време на
изпълнениетонаработнитепотоци поизграждане наоптималнипътища в заявка заобу‐
чение,кактоиповременаработнитепроцесипоакумулираненаметаданни за учебни
дейностииоценяваненаобучаваните.
Моделнаучебниматериалиидейности
ПреподавателможеповсяковремедарегистриравмножествооткурсовеУО.
Акожелае,можедавъведеиметаданнизатях.Потозиначинтазиучебнаединица
15
можедазапочнедасевключвавЗО,предлаганинаобучаваните,стигаметаданнитедасе
съгласуват с учебните цели, зададени от преподавателя.Впообщаситуацияобаче,в
заявка за провеждане на обучение преподавате лят може да включи учебната единица,
безтя да е съпроводена отсвоиметаданни.Втозислучайенеобходимодаеинтегри‐
ранспецифиченмеханизъмзаавтоматизираногенерираненанеобходимитеметаданни.
Привключванена учебенобектв заявка заобучение,същият получава предимст‐
возавключваневУПсцел,предоставянеиизучаванеотобучавани,съсследващогенери‐
раненаспециаленУОотт.нар.акумулативентестовтип“.АкумулативниятУОпосъщес‐
твоезаданиезаанотацияотобучаванинапредявенУОотгледнаточкананеговотоучеб‐
но съдържание,ипосъществопредоставятнаобучаванитеролятанаекспертивИПО,
коитоиматзазадачаопределяненанеобходимитеметаданнизаУО.Набазатанавъве‐
дените(поспециаленвъпросник)екземпляриотметаданни,преподавателят(илиексперт
вИПО)може несамо автоматизиранода определиекспертниянаборотметаданни,нои
даоценистепентанапознаваненасъщносттанаУОотобучаваните.
Определение 6: Модел на преподавател е наредената двойка =
(_, ),където _ () е обект на конкретен пре‐
подавател,закойтосеотнасядинамичнотомножествоотдинамичникореновидървета
,закоитосавъзможниследнитенареденидвойки(корен,наследник):
(, ):наличназаявказаобучение,кактоиинстанциянасъобщение
отиликъмпотребител‐преподавател
(, ): инстанция на съобщение и отговор наинстанция на
съобщение
(,): налична заявка за обучение,кактоибулевпараметър
 {, },койтоуказва, дали преп одавателят има право да редак‐
тиратекущиякурс,закойтосеотнасятекущото.
Нанай‐висшияткоренна кореноводървовинагие заявкатазаобучение,за
койтосеотнасядървото.
2.4 МетодиказаизгражданенарамканаАСЕО
Нафиг.4епредставенМоделнаАСЕО.
Фигура4МоделнаАСЕО
16
Методикатаесъвкупностотследнитепроцеси,някоиоткоитовървятпаралелно
въввремето:
DigitizeОбобщаващпроцес,койтообобщава НормативнитедокументиN,доб‐
ритепрактикиPиизискваниятазапотребителяU;
DesignПроцеснамоделираненаизвличаненаметаданнитеMeta,коитоса
продуктотпредишнияпроцесифилтриранетоимспрямопредметнатаобласт SD;В
този процес получените метаданни се филтриратспрямо дадена гледна точка (Ас‐
пект)исеполучавапроцес/обект SAзазададенаспектА.Притозипроцесвсички
външни системи E(S), касаещи този процес/обектSсеобработватспряморазглеж
данияаспектиставатЕА(S).АналогичнотосеслучваисвъншнотовъздействиеѰА(S);
CModelпроцеснапроектиранеисъздаваненав контекстана.Притози
процессесъздаватконцептуалнимодели;
VModel процес на виртуализация на концептуалните модели,полученив
предишния процес.ВролятанаSV(A) могат да влизат всякакви виртуализирани
обекти,кактоипотоцииинстанциинаработнипотоци;
Processпроцеснаизпълнениенатакасъздаденитекомпютърнимоделиот
предишнияпроцес.
Глава3. АрхитектуранарамкаАСЕО
3.1. ОбщаархитектуранарамкаАСЕО
Фигура5ОбщаархитектурнарамканаАСЕО(Логическиизглед)
17
Генераторът на справки се използва както от модул Преподавател“,такаиот
модулОбучаван“.
ВМодулОбучаванобучаванитеиматвъзможностдауправляватсвоитезаявки
заобучение,дапреследватцелис тях,като получаватгенерираниучебнипътища,да
провеждатучебнидейности, да ги анотират и да отговарят наавтоматизираногене‐
рираниакумулативнитестовиединици(АТЕ)затях,дазадаватвъпроси завсекиедин
от тези компоненти на наличните преподаватели в контекста на дадена заявка за
обучениеидр.
Модул Преподавател е основната входна точка на преподавателите в АСЕО.
Тамтеиматвъзможностдапроверяватотговориотанотацииилитестове,предадени
отстудентиида отговарятна въпроси,зададениоттяхзаконкретнаУД,избранацел
визбраназаявказаобучение(ЗО),дапреглеждатавтоматичногенерираниинстанции
насъобщенияотразличниработнипотоцив системата,като напримерсъобщение за
наличиенанепостижимицелиотдаденагрупаотобучавани.
МодулАдминистрираненакурсовефункциониразатези,коитосапосочениза
администратори на конкретни ЗО. Там преподаватели имат възможност да задават
метаданнизацеливЗО,както ида добавятзадължителниили избираемицеливЗОза
определенигрупи от обучавани (кохорти), както и задължителнииизбираеми цели за
всичкиобучаванивЗО.Тозимодуледостъпенизаадминистраторитенасистемата.
Модул Административен е достъпен за администраторите на АСЕО и той им
дава възможност да администрират ЗО, потребители,технитероли(администратор,
обучаван,преподавател,гост), да причисляват обучаваните в различни групи(кохор‐
ти)идр.
Модул Учебна дейност(УД) дава възможност на администраторите на АСЕО
да регистрират и импортират УД в АСЕО и в последствие да причисляватУДикъм
определениЗО,задаможевпоследствиедасеизползватпълноценновЗО,включи‐
телно и от eLP_GAда ги подбира при генерирането на оптимални персонализирани
учебнипътища.
3.2. Техническо‐приложенизгледнаархитектурнарамканаАСЕО
Нафиг.5епредставенаархитектурнасхеманаприложението,къдетоможедасе
види как са интегрирани различните компоненти в схемата ,кактоидейно,така и в
текущатаекспериментална постановка. Достъпът на потребителитеставачрезпорта‐
лаPeuPortal,койтоеuPortalбазиран.Внегопотребителятможедаполучидостъпсъс
своя единен университетски акаунт чрез услуга за централна автентификация (CAS
Server).
В цялостната архитектурна рамка, интерфейсът на повечето от приложенията е
реализиран, чрез автоматичното му генериране от системата за изпълнение нара
ботнипотоци TinyWf,която ерезултатот текущотоизследване [Пашев,Г.(2015)].Все
пак,допустимо е използването на изгледи от уеб приложения,коитонесареализи‐
ранисрамкатазаработнипотоциTinyWf,включителноитакива,реализиранисдруги
рамкизаизпълнениенаработнипотоци.Винстанциитеотработнитепотоци(напр.
Wf1,Wf2,…)визходнитеобектиΥсе добавяти обекти,коитовслоязавизуализация
наизходаот работни процеси се трансформират в подходящи входноизходниек‐
ранизавизуализациянапотребител.
18
JasperReportsServer се достъпва чрез библиотечни разширения в ТinyWf,
MoodleRESTAPI директно от ТinyWf,аразличнитеRESTуслуги,консумираниот
ТinyWfдостъпватСУБДнаприложнитесистеми,закоитосаизградени[(ГеоргиПашев
А.Т.,2015)].Jasperразполагасмощносредство за създаванеиизвеждане нашабло‐
нина справки вразличниформати(pdf,xls,doc,htmlидр.).Шаблоните могат дабъ‐
датсъхраняванинаJasperServerидаседостъпватотдалечено.
Архитектуратанаприложениетое4‐слойнаивключва:
Слой1.Релационнабазаданни,съдържащареференции,съхраненипроцеду‐
ри,изгледиифункции.Заявкитекъмбазата данни,изпратениотпо‐горнислоеве,
саразположени тук,сцел постиганенавъзможно най‐високаскорост приизпъл‐
нение на заявка.Приложенепринципътзанайблизкоразполаганенаданнии
средствазатяхнатаобработка,използванприалгоритмизаоптимизация;
Слой2.Транспортенслой(завръзкамеждуслой1.ислой2.);
Слой3.Дефинираненаработнипроцеси,вкл.за генериране на интерфейс
чрезRESTилиSOAPпротоколи.Задефинициянавъзлитенабизнеспроцесасе
използватURLшаблони;
Слой4.Потребителскислой,койтопредоставядостъпнаработнипроцеси(в
зависимостот потребителскироли, праваилични настройки)до процеси наса‐
матасистема.
Фигура6Техническо‐приложенизгледнаархитектуранарамканаАСЕО
Зареализациянаслой1.еизбранрелационенмодел.Заулеснение напроцеса
нагенерираненаинтерфейсавслой3.еприетаконвенциязаименуваненаобектите
вбазатаданни. Името на полето, което представлява външен ключкъмдадена таб‐
лицазапочва с „ID_“ ислед това се изписва името на свързаната таблица.Потреби
телските действия, свързани с данните в базата данни, са капсулирани в съхранени
процедури,изгледиифункции.Голямачастотбизнес‐логиката есъхраненапо подо‐
19
бен начин. Това позволява на по‐горните слоеве да се фокусират върху типове дей‐
ности,коитосапо‐подходящизатяхноторазположение.
Транспортенслой2.посъществоедоставчикнауслуги.Уебуслугата еметодза
комуникациямежду две електронни устройства вмрежа,която на практика предос‐
тавяфункционалност,достъпнанамрежовадрес вуебпространството.W3C дефини‐
рауебуслугатакатософтуернасистема, създадена да подпомага комуникацията
между оперативно съвместими машини по мрежата. Поддържат се протоколи като
REST,SOAPидр.Слой2.еважначастотинтеграцията,защотопредоставяна Слой3.
уеб услуги за консумация. Последните могат да бъдат от разнотипни приложения,
коетоевосноватанатяхнатаинтеграция.
Слой3.Слойзагенерираненапотребителскиинтерфейси
Всякоинтегрираноприложениевключванаборот работнипроцеси.Запроекти‐
ранеи създаване на интегрирано приложение енеобходимода се реализират мно‐
жествоотработнипроцеси,съпроводениот съответнипотребителскиинтерфейси.За
автоматизация на тези дейности е приет следният подход:Набазатанаформален
моделнаработенпотоксепредоставятсредствазаописаниенаконкретниработни
процеси и в слой 3.принеобходимостсегенерират потребителски интерфейси за
съпровожданенабизнеспроцесите.
Слой4.Потребителскислой
Заосъществяваненаслой 4.наархитектуратасеизискваналичие науеб портал
съсследнитеминимални функционалности:едновременен достъпна даденпотреби‐
телдо разнотипни системи в зависимост от неговите ролииправавтях;общизглед
къмдостъпнитефункционалности,респективноработнипроцесивелектроннопорт‐
фолио на потребителя; поддържане на заявки към LDAP и релационни бази данни;
предоставяненапотребителски услуги,компоненти иработни рамкизасвързванена
по‐сложни системи; гъвкава система за управление на потребителски групи,вкл.
реализациянавложенигрупи;възможностизаизползваненаAPIидр.
Набазатанапроучванеианализнаразлични уебпортали,заекспериментална‐
тареализациянаслой4.еизбранuPortal[uPortal]. Освен че притежава горните ха‐
рактеристики,uPortal се отличава и с други полезни характеристики:базиранена
отворени стандарти,Java,XML,XSLT,JSPиJ2EE; ползва се от милиони потребители;
разполагас възможностизаидентификация на потребители,вкл.LDAPибазаданни;
предлагавръзкисбиблиотекиисредствазаинтеграциякатоCAS;singlesign–onидр.
TinyWf(от TinyWorkflowFramework)есофтуернарамка,реализирананаPHP[
(Георги Пашев А.Т.,2015)],набазатанакоятомогатдасепроектиратприложения,
интегриращифункционалностина хетерогеннисистеми,иползващиформалнодефи‐
ниранибизнеспроцеси.
3.3. МодулОбучаванвкурс
Приизбор на конкретна цел,сепреминава към генерираненаперсонализиран
учебен път за обучавания (съответният алгоритъм,втерминитенамногомерното
пространствоескицираннафиг.7.).Генерираниятперсонализиранучебенпътпредс‐
тавлява списък от нови учебни обекти, които обучаваният трябва да преминеус
пешно,задапостигнеучебнатацел.ВсякаеднаотучебнитеобективУПможедае
съпроводена(илине) сдостатъчно изчерпателниметаданни,коитоопределятместо‐
положениетойвПространството.Акоучебнатаединицаенаскородобавенасепред‐
20
полага,че акумулираните метаданни,вероятно,всеощенесаадекватнинанейното
съдържание.
Обучаван
Прегледна
курсове
Списъккурсове
Обучаван
Преглед
изпълнени
целивку рса
Преглед
неизпълнени
целивку рса
Постигн ати
Цели вк урс
Непостигнати
Целив курс
Преглед
преминали
учебни
дейности Преминалиучебнидейности
Определяне
най‐близка
цел
Най‐близкацел
Генериран е
персонализир
анпът
СписъкУД
Зареждане
определена
учебна
дейност STUDENT_HAS_SEEN_EDU_UNIT
Фигура7Работенпотокнаобучаван
За определяне на условието за достатъчността на наличните метаданни се из‐
ползва метрика: брой проведени генериращи акумулативни тестове за съответната
учебна единица.Присравнителномалъкброй, на обучаваният се предлага автома‐
тичногенериранакумулативентест.Следкатообучаваниятизпълнитеста,сеизпраща
сигнал към преподавател, че е предложено ново решение,коетотрябвадабъде
проверено и оценено. При оценяване на отговор от преподавателя като правилен,
автоматичносе генерирафункция/предикат(и метаданни),скоятосъответнатаучеб‐
наединицащепродължидаучастваве‐обучениетои приавтоматичнотогенериране
научебнипътища.
3.4. Генераторнапресонализираниучебнипътища
Алгоритъмътзагенерираненаперсонализираниучебнипътища(eLP_GA)
можедаседефинираформалнокатофункциясъсследнатасигнатура:
P: [( , , )](3)
Входниятпараметърнафункциятаеобучаван.Функциятавръща
списъкотнареденитройки[(,,)],коитоотговарятнаучебнитедейности,къ‐
дето:‒еURL,койтоуникалноидентифицираУД,‒еразстояниемеждуУДи
състояниетонатекущияобучаванипредставянетонатовасъстояниевмно‐
гомернопространство(МП),аекраткоименаУД.[(Pashev&Totkov,29May
2014)],[(ГеоргиПашевГ.Т.,2016)].
Втова,коетоследванекадаобозначим:
RVec(Obj)‒представяненаобектObjкаторадиусвекторвМП;
21
((),(, []))‒върнатастойностзададенRVec(Obj)заизмере‐
ние,коетосеидентифицирасглаголисписъксвходнипараметри[];
ℎ:ℎℎ [[(,[],)]]
‒функция,коятонамираnнай‐близкиточкикъмBasePoint,достижимиврамкитена
радиусreachRadiusиотговарятнафилтъразатърсенеℎ
ℎ:  : ;
ℎ:ℎℎ
[[(, [],)]]‒ функция,която(заразликаотℎ)връщасписъкотточки,
коитоиматабсолютнистойности,коитосапо‐големиилиравнинаабсолютнатастой‐
ностна BasePoint. Списъкът има максимален размер от nелемента, които отговарят
натърсещияфилтърsearchFilter;
:[(,[],)]⟶
[(,[],)]‒ подрежда
списъкотточкивМПпоблизостдоBasePoint.
((ℎ),(ℎ)) булева функция (предикат),ко
ятопроверявадали абсолютната стойност на(ℎ)епо‐голямаоттазина
(ℎ)иакое,връщаtrue.
Фигура8AlgorithmforPersonalizedeLPGeneration
Фиг.8. представя eLP_GA. Алгоритъмът за генериране на персонализирани
учебни пътища (eLP_GA) започва с инициализация на някои променливи като
(текущотопредставяненаобучаванвМП). Затози обучавансе инициали‐
зирастойностнамаксималенрадиуснадостижимостℎ, като прове‐
рявадализа обучаваниявечеимадинамичноизчислен такъв,ааконяма,слагастой‐
ностпоподразбиране(ред23отфиг.8).Редове57 извършват намиране на непос‐
тигнати цели за текущия обучаван в рамките на текущата заявка за обучение.Ако
такива цели не са намерени, се излиза от алгоритъма със съответното съобщение.
22
Приналичиенанепостигнатиучебницели,първатаоттяхставатекуща(ред9).Освен
това,се инициализира(наред11) празенсписъкотУД,койтоевентуалноследприк
лючванетонаалгоритъма ще съдържа УД, с които обучавания би могъл да постигне
текущатаУЦ.Наред13сеизвършва проверкадаливизбранатаучебнацелсесъдър‐
жатпредикати, които указватналичиена задължителна учебнадейностзапостигане
натазиучебна цел,иакосесъдържаттакива,теседобавят всписъкасУД.Наред15
въввременниятобектнаУЦвпаметтасепремахваттезиизмерения,коитосъдържат
тезипредикати, задаможеалгоритъмът да работиправилнослед това.ВсякаотУД,
коитовечесенамиратвсписъка, могат да съдържат допълнителни предика‐
ти/функции в измеренията,такива, че при съответното преминаване на обучавания
презтях, неговият радиус‐вектор вМПдапостига УЦ.Именнозатова,неговататочка
сепремествавдинамичнатапаметнаМП,така,всеедно е преминалапрезналич‐
нитеУД(ред19).Наред21вМПсетърсяттакиваУД,коитобихабилипотенциалниза
постигането на УЦ:същевременносаподреденипоблизостдоУЦисенамиратв
сфератана достижимост, дефинирана с радиусана достижимост и централнаточка:
точкатанаобучаваниявМП.Търсенетосеоптимизираощеповече,катоседобавявъв
филтъра и критерий учебната дейност да не се предлага на обучаванияповече от 2
пътипригенерираненаразличниучебнипътища.Вред2325сеправипроверкадали
точкатанаобучаванияв МПнесе преместилавМП така,чевечедаепостигнатаУЦ.
Акое така, се излиза от алгоритъма със съобщение за успех и с наличния списък от
УД.Наред26 се прави проверка дали списъка с потенциални УД е празен и акое
така,влизамевхипотезананевъзможностзагенерираненасписъкотУДисеизлиза
оталгоритъмастаковасъобщение.
Приналичие на УД в списъка спотенциални,напринципа на опашката се из‐
важдапърватавсписъкаисевъвеждавсписъкасУД,скойтобитрябвалодапостиг‐
неУЦ. В последствиеточкатана обучаваниявМПсе премества така,всеедноепре
миналаипрезтазиУДисеповтаряноваитерациянаалгоритъма.
Трябва да се отбележи, че се постига известна оптимизация на генерирания
списъкнаУЦ,понежесписъкътспотенциалниУДеподреденпоблизостнаУДдоУЦ.
Друга оптимизация е свързана с проверка преди влизане в цикъла на алгоритъма
даливсфератана достижимост на обучавания няма поне 1УД,коятоемаксимално
близкодоУЦ,ное спо‐големи илиравни координатизаизмерениятаотУЦ(провер‐
казапостиганенаУЦсамос1УД).
3.5. Генераторнатестовиединици
Важенвъпрос при адаптивнитесистеми,коитогенерират учебни пътищаес
каквитестоведасеоценяватзнаниятанаобучаваните.Първоначалнотезитестовене
присъстват в описанието на курса,акотойсеописваабстрактносучебницелиза
постигане.
Втази посока епредложенаметодикаи система за реализация наподпроцес
автоматизираногенериране на метаданни“,коятоинтегрираспецифичнадвумерна
рамкапоразширенататаксономиянаБлум(наричанапо‐нататъкРамката“).Навсяка
метаданна по тази методика отговаря еднозначно определена клетка в Рамката,с
конкретен тип отворен въпрос. При вече известна стойност на предикат, оценена
катовярна от преподавател,сезнаеиверният/те отговор/и на въпроса. Следовател‐
но,от наличнитеметаданнизаучебна единица можедасе генерира тест,скойтода
23
сепроверятзнанията/умениятанаобучаваниянаразличниравнищапотаксономията
на Блум (Запаметяване,Разбиране,Приложение,Анализит.н.). Тази особеност се
използваотадаптивната система,която(приусловие, че имадостатъчнометаданни
затазиучебнаединица)стартирамодулзагенериране наакумулативни тестовиеди‐
ници на различни равнища по разширената таксономия на Блум, който генерира
подходящтестпоналичнитеметаданни[(ГеоргиПашевГ.Т.,2016),Пашев,Г.(2014)].
STUDENT_HAS_SEEN_EDU _UNIT
Учебнадейност
Обучаван
Извли чанен а
необходимит
емет адан ни
Доста тъч но
Метаданни
?
Списъкметаданни
yes
Генерирайи
покажи
статичентест
заоце няване
no
Генерирайи
покажи
акумулативен
тестза
събиранена
метаданни
Отговорнатест
NEW_SOLUTION_FROM_STUDENT
Съобщениедоп реподавателивку рс
Фигура9ПодпроцесАвтоматизираногенерираненаметаданни
Понежеверните отговори са на разположение, оценкатаможе веднага да се
генерира. При преподавателска реакция и получена окончателна оценка,текущото
състояниенаобучаваниясеактуализиракатопозициявПространството.
3.6. Рамказаработнипотоци
Резултатитеот изпълнението наподформатанаΥза визуализация отГене‐
раторана интерфейс. Самите работни потоци могатда бъдат така имплементирани,
чеда използват уеб услуги за комуникация с различни приложения,коетоосигурява
естествена методология и инструментариум за интеграция на разнотипни системи
чрезизпълнениенаработнипотоци.[(ГеоргиПашевА.Т.,2015)]
Частот работнитепотоци записватданнив АналитичнаСУБД,коятопредоста
вя удобен инструментариум за различни типове обобщаващи заявки и заявки за
подобие/близостнаобекти подадена заявказа търсене.ВконтекстанаАСЕО,такива
заявкибихабилинапример: намери тези учебни учебни дейности,коитосанай
близодотазиучебнацел.
ДеловоднаСУБДсе използваот някоиработни потоциза съхранениеи извли‐
чаненаразличнаделоводнаисториязаобучаваниипреподаватели.
Заправилнотоуправлениенакоятоидаеинстанциянаработенпотокене‐
обходимоизползванетонаБД,вкоятодасесъхранява,актуализира,извличасесий
натаитранзакционнатаинформациявработенпоток.
Систематазаразмянанасъобщения се използва за размяна на инстанции на
съобщениямежду потребители/инстанции на работни потоци и потреби‐
тели/инстанции на работни потоци. Тя използва БД за сесийна и транзакционна ин‐
формация,задауправлявасъобщениятаиинстанциитенасъобщения.
24
Всекиконкретенработен потокможедаизползвадиректноиличрезобръще‐
ниекъмуебметодивRESTилиSOAPуебуслугиБДнаразличнидругиприложения.В
контекстанаАСЕО,примеризадругитакивасистемибихабили:
Централнаделоводнасистемазастуденти/обучавани;
Регистърнапреподаватели;
Външнисистемизауправлениенаелектронникурсове(напр.Moodle).
Базазнания
заработни
потоци
Базаданни
за
съхранение
насесийнаи
транзакцион
на
информация
Деловодна
СУБД
Средаза
дефиниран
ена
работни
потоци,
целии
приложени
я
БДна
приложения
Потребителскасредазауправлениена
цели,приложенияипотоци
Генераторнаинтерфейсна
инстанцинаработнипотоци
Машиназаизпълнениена
инстанциинаработнипотоци
Аналитична
СУБД
CASКлиент
REST&
SOAP
Services
Системаза
размянана
съобщения
Фигура10АрхитектуранаРамказаизпълнениенаРаботнипотоциTinyWf
Глава4. РеализациянарамкаАСЕО
4.1. Рамказаизпълнениенаработнипотоци
Всяко състояние на даден бизнес процес се представя с конкретен възел от
съответното множествоNи се определя от стойностите на своите входни и изходни
атрибути(данни).Изходни(кактои входни) атрибути на дадено състояние сепроек‐
тираткато сесийнипроменливина входни атрибутинадруги състояния.Всякосъсто
яние на работния процес е резултат на поне едно извикване на уеб метод.Бизнес
процесите се задават в рамките на отделните потребителски групи (възможни са
конфигурациинаразлични потребителски групи).Входнитеданни(атрибути)насъс‐
тояниесезадаватръчно(въвеждане ототоризиранпотребител)илиавтоматично
като проекция на сесийна променливи на изходни атрибути на предходно състоя‐
ние на процеса.Изходнитеданни(атрибути) на състояние се определят след като
потребителсеполучиили изберерезултатотизпълнениена уебметода.Частотвъз‐
можните следващи състояния се филтрират на базатана условия, които могат да се
зададатприописаниетонасъответниябизнеспроцес.
Парадигмата,реализиранавTINYWF2, следвастратегиязапостигане на цели,
коитомогатдабъдатосъщественинаконкретнистъпкинаотделнитебизнеспроцеси,
ис участиетона точноопределенипотребителски групи.Всякастъпка набизнес про‐
цессе стартира („активира“) и се изпълняваприизпълнениенаопределена група от
условия,междукоито:
25
право за изпълнение от текущ потребител член на оторизирана потреби‐
телскагрупа;
достъпнииосигуренисавсичкиданнизастартираненапореднатастъпка;
данни,необходимиза активиранена стъпкатанесаналице,ноедопустимо
дабъдатръчновъведениотпотребител;
изпълнени са предусловия, които разрешават паралелно изпълнение на
функции,генериращиизходниданни(слотове)ит.н.
Изпълнението на стъпка на конкретен бизнес процес може да се опише по
следнияначин:
всесийното пространство сезареждатпроменливите,видими за инстанци‐
ятанапроцеса;
проверяватсеусловиятаотпо‐горе;
при отсъствие на всички сигнали в сесийното пространство предпоставка
застартиране насъответнатастъпка, сепроверявадали потребителят може
даги зададе ръчно.Акоедопустимо,напотребителя се осигурявавъзмож‐
ност за задаване на съответните стойности в открития за целта диалогов
прозорец;
отновосепроверявадалисаизпълненинеобходимитеусловия;
ако условията са изпълнени се преминава към изпълнение нафункциите,
генериращиизходниданни(слотове)завъзлите;
при успешно генериране на слотове,някоиоттях(закоитоимаподобно
указание) се запазват в сесийното пространство на инстанция на текущия,
илинадругпроцес(акотоваеуказановнеговотоописание).
Изпълнениетонаинстанциянаработенпроцеспротичапоследнияначин:
определясеуникалнияидентификаторнаинстанциятакаторедица(име
напроцес,именапотребител,променлива1,....,променливаn);
проверява се дали в базата данни на TINYWF2 е записан контекста на инс‐
танцията,включващ списък на вече изпълненивъзли,кактоизапазеното
обкръжение от променливи за текущата инстанция,идалиевсъстояние
действащ“;
генерирасе списък от стъпки напроцеса,коитовсеощенесаприключили
катосеотчитаи факта далитекущиятпотребител ечленнапотребителска
група,коятоимаправодагиизпълнява;
стъпките се изпълняват по представения по‐горе начин, като това продъл‐
жавадо изпълнение на едно отследните условия изпразване на списъка
отвъзможни следващи стъпки напроцеса,приключваненапроцеса,невъз
можностзапродължаванепо‐нататък;
сесийния контекст и историята на изпълнение на отделните стъпкинапро
цесната инстанция, се запазват, ако това е указано в общите настройки на
процеса.
След всяко изпълнение на отделна стъпка, автоматично се запазва следа от
изпълнението(„отпечатъкнастъпката),вкл.стойностинасигнали,слотове,постигна‐
тицелиидр.По‐късноподобниотпечатъцисе използватза формираненаобобща‐
26
ващианалитични заявки в Elasticsearchотноснопроцеси, които протичат вуниверси‐
тетскатаинфоструктура.
От своя страна,отпечатъкотизпълнениетонавсякастъпканададенпроцес
(акотоваизричноеуказановнастройките)еелементотJSONмасиввпространството
наконтекститена процеси,в които се съхраняват всички контексти истатусинапро‐
цеситевисторическиплан.
Заработнитепотоци,коитосамаркираникатозапомнящисе,се възстановява
сесийнатаинформация,коятоебилазаписанаотпредишноизпълнениенаинстанци‐
ятанаработенпотокилиотдругиинстанциинадругиработнипотоци,коитосаизп‐
ращалисъобщениекъмнастоящатаинстанция.Зацелтасепрочитатсесийнифайло‐
ве,чиитоименаса функцияотимето напотребителяи иметонаизпълняваниярабо‐
тенпоток.Тезифайловеса вjson формати съсдържатцелия сесиенконтекст насъот‐
ветната инстанция на работен поток.Васоциативниямасив_SESSION се записват
всичкитезисесийнипроменливи.Предитоватозимасивезачистенотвсякаквидруги
сесийни променливи,освентези,коитосасвързанисинформациязапотребители
текущияизпълняванработенпоток.
Предиизпълнението на инстанциятанаработенпоток трябва да сеопредели
откойвъзелдасестартира/продължи изпълнението на инстанциятанаработен по‐
ток. Ако в сесийния контекст има записана сесийна променлива $_SESSION
['FSM_STARTING_NODE'.$sessfile], от нея се зарежда идентификатора на стартовия
възел,откойтосепродължаваизпълнението.Трябвадасеотбележи,чесамиятрабо‐
тенпоток може програмно да промени стартовия възел, ако логиката му гоизисква
чрез директно манипулиране на стойността на глобалната променлива
FSM_starting_node. Чрез манипулиране на FSM_cur_state_id може да се смени теку‐
щия възел при запазване на информацията за стартов възел. Това позволява при
определенислучаидасенарушистроготоописаниенаработнияпоток,къдетояснои
точноеописанокойвъзелследкогоследва.
Втечение на изпълнениетонараборнпоток,текущатастъпкаможедаемар‐
киранакато„autosubmit“,коетоозначава,че входнитеданни застъпката сепредават
автоматичноистъпкатасеизпълняваавтоматично,бездаимануждаот потребителс‐
ка интеракция. Асоциативния масив FSM_states съдържа инфорамция за работния
поток,а$FSM_states[$FSM_cur_state_id]еасоциативенмасив,съдържащинформация
затекущатаизпълнявана стъпка.Втекущатаимплементация иманяколко видарежи‐
манаautosubmit:
autosubmit:автоматичнопредаваненавходниданнинасъстояние
autosubmit1:автоматично предаване на изходниданнина стъпка към след‐
ващастъпка
autosubmitIfOneRecord:автоматичнопредаваненаизходниданнинастъпкакъм
следващастъпка,акорезултатаотизпълнениетонатекущатастъпкаесамоедин
катоброй(иреалнонямасмисълотпотребителскиизборнарезултат).
Вописаниетонаработнияпотоквразличнистъпкиимадефинираниразлични
callbackфункции,коитоследвадабъдатизпълнени.Еднаоттезифункцииенапример
viewFunctionInputDisplay,която се изпълнява веднъж предисъздаванетона формата
завъвежданенавходни данни от потребител. Тя е подходяща за инициализация на
различнипроменливиилиза показваненадопълнителна информацияна потребите‐
27
лязастъпката.Отсъствиетона$_REQUEST['exec_operation']показва,четрябватепър‐
ва да се изчвртае формата, с която се изпълнява текущата стъпка.Информацията,
коятосенамиравтазиформаеиинформацията, необходима за изпълнението на
стъпката. Наличието на флаг $FSM_states[$FSM_cur_state_id]["infoStep"] показва,че
текущоизпълняванатастъпкаесамоинформационна,коетозначи,четясамопоказва
на екрана някакви данни, без да изпълнява някакъв уеб метод от мрежовия слой с
услуги. Асоциативният масив $FSM_states[$FSM_cur_state_id]["disabledFields"] съдър‐
жаименатанавходнитеполета,коитосазабраненизавходотпотребител.Асоциа‐
тивният масив $FSM_states[$FSM_cur_state_id]["hiddenInputFields"] съдържа инфор‐
мация за входните полета, които са скрити за потребителя. Асоциативният масив
$FSM_states[$FSM_cur_state_id["datePickerFields"] съдържа информация за тези
входниполета,закоитотрябвадасеизчертаваконтролзаизборнадата,аковходна‐
таданнаимасмисълнадата.Многоваженмеханизъмприизпълнениетонаработния
поток е проектиране на данни от и към сесийното пространство към вход/изход на
стъпка.НаФиг.9епоказанапримерзаупотребанамеханизъм,койтопроектиратези
сесийнипроменливи,коитосапосочени вработния потоккато автоматичнопроекти‐
ращисевъввходниданнинастъпка.
$get_from_projection_input=array(
1=>array("node"=>4, "field"=>"ID_Student",
"cookieName"=>"ChosenStudent_ID"),
);
Фигура11Информациязапроектиранеотсесийнопространствовстъпка
Нафиг.11 е дадено примерно описание направилазаавтоматичнопрехвър‐
ляне на стойност от сесийно пространство от сесийна променлива ChosenStudent_ID
къмвходнополеID_Studentнавъзел4.
След като входните данни на стъпката са въведени от потребител или прог‐
рамно от изпълнение на работен поток, е необходимо те да бъдат валидирани.В
рамкатазаизпълнениенаработнипотоциимавграденмеханизъм,койтопозволявав
работнияпотокдаседефиниратвалидиращифункции.
При наличие на валидираща функция,коятоимаимеотвидаX
_validateInput_Y,къдетоХеиметонаработнияпоток,аYeидентификаторнатекуща‐
тастъпка,тясевъзприемаотрамкатазавалидиращафункция,коятоможедаприеме
илидаотхвърли изпълнениетонастъпката. Акотакава функциясъществува итя вър‐
неBooleanfalse,тогавасеприема,чевходнитеданнисаневалиднииизпълнението
настъпкатанесеразрешава.
Наличието на флаг $FSM_states[$FSM_cur_state_id]["rememberLastState"]ав
томатично стартира този процес. В последствие работния поток може да използва
тази информация, за да проследи какво за последно е въвеждал потребителя при
изпълнението на някакви предишни стъпки,кактоидаразбередалитезистъпки
изобщосабилиизпълняванинякога.Освентова,тозимеханизъмможедасеизполз‐
вазаавтоматизираносъбиране наметаданнинанякаквиобекти(напримердокумен‐
ти),коитосарезултат отизпълнениетонатекущатаинстанция наработен поток,като
самата история на изпълнение на работния поток дава уникален отпечатък за мета‐
даннитенагенерираниядокументивкакъвточноконтекстебилгенериран.
28
$array_obj=array();
if(!isset($FSM_states[$FSM_cur_state_id]["infoStep"])){
if($isValidatedInput)
getResultforUrlSufix($url_suffix, $array_obj,
isset($FSM_states[$FSM_cur_state_id]["httpMethod"])?($FSM_states[$FSM
_cur_state_id]["httpMethod"]):"POST",
isset($FSM_states[$FSM_cur_state_id]["templateGetPart"])?($FSM_states
[$FSM_cur_state_id]["templateGetPart"]):"", $variableWithvalues);
}
Фигура12Изпълнениенауебметоднастъпка
Акотекущатастъпканеемаркиранакатоинформационна,сеизвиквауебметода
отмрежовияслой,койтоотговарянатекущатастъпкаирезултатътотизпълнение,койтое
релациясетрупавъввиднамасивотобективмасива$array_obj.
Всяка стъпка се включва в работния поток като член на асоциативния масив
$FSM_states.Чрез"template"сегенериралиннккъмуебметода,койтотрябвадасеиз‐
пълни,приизпълнениетонатекущатастъпка.Втозишаблонполетатасеописватвъв
фигурнискоби,например{ID_Student;Студент}.httpMethodуказвакакъв е типът на HTTP
заявката,коятотрябвада сеизпълни.viewFunctionOutputDisplayecallbackфункция,която
сеизпълняваследкатосеизчертаетаблицатасрезултатотизпълненниенастъпката.
РамкатазаизпълнениенаработнипотоциочаквадаполучиJSONасоциативенма‐
сивот уеб метода,койтостъпкатаизвиквапри изпълнениетоси.Имавграденмеханизъм
за автоматична замяна на имената наатрибутите от JSON масив а с налични термини в
речник, който е достъпен за всичко работни потоци.Потозиначин,присъздаванена
работен поток, ако се използват едни и същи термини за именуване на атрибутите на
заявките,нямадаимануждатедасевъвеждатнанововезиковфайл,адиректноще
бъдатизвлечениотречникасименанаатрибутиитехнитесъответствия като имена за
предпотребител.Заречниксеизползваасоциативниямасив$aliases.
Рамкатаимаивграденмеханизъмзафилтрираненаизходните даннипо стойнос‐
тинанякой/иотатрибутите.
$FSM_states[$FSM_cur_state_id]["showFilter"]съдържаиметонаизходенатрибут,
покойтосе създава автоматизирано филтриране.filterDisplayValотзаявкасъдържастой
носттанаданната,покоятосефилтрира,аfilterDefaultValестойносттапоподразбиране.
Запо‐голямоудобствонапотребителяепредвиденмеханизъмзавграждани на
потребителскиконтроли в изходната табличнаформа настъпка.Приналичиенаcallback
функция $FSM_states[$FSM_cur_state_id]["instantLineEditField"],тясеизвикваисъздава
специфичен HTML,койтодасевградинавсекиредотколонатана
$FSM_states[$FSM_cur_state_id]["instantLineEditFieldFieldName"]. Това позволява разра‐
ботчикът на работния поток да управлява както желае начинът по който изходното съ‐
държаниесепоказваи/илиманипулиразавсякаколонанаизходнататаблица.
if(substr($keyvals[$j], 0, 5)!="ID_N_"){
echo $cur_res->{$keyvals[$j]};
}else{
$aaa=null;
echo
cache_searchInNomenclCache(substr($keyvals[$j], 5), $cur_res-
>{$keyvals[$j]});
}
Фигура2Автоматизираноизгражданенаизгледзаноменклатурниполета
29
Нафиг 13е показана автоматизацияприработа сноменклатурни атрибутина
изходнарелацияотизпълнение настъпка наработнияпроцес.Поконвенцияеприе‐
то,че всички номенлатурниатрибутиимат име отвидаID_N_Table,къдетоN_Tableе
някакваноменклатурнарелациявБДнаприложениетонасъответнияработен поток,
коятоима задължителни атрибутиIDиName.Приналичие натакиваноменклатурни
атрибутивизходнатарелация,технитеIDстойностиавтоматичносезаменятвизгледа
с говорящи за потребителя Name стойности.Понежетоваесвързаносголямброй
заявкикъммрежовияслойзасравнителнократковреме(заизчертаваненавсекиред
отизходнататаблица),евграденмеханизъмзакешираненавечеизвестнитеноменк‐
латурнистойности.
4.2. МодулОбучаванвкурс
В текущата реализация Модул Обучаван в курсереализиранкатоработен
поток.Тукщепредставимпо‐важнатачастоткода наработнияпотокинаимплемен‐
тациитена някои от възлите му.Спазвасечетерислойната архитектурна рамка,разг‐
леданавгл.3,вкоятоимаслойсБДсъхраненипроцедури,мрежовислой,слойза
генерираненаГПИчрезизпълнениенаработнипотоциипотребителскипортал.
ВконтекстанаTinyWfработнатарамка,енеобходимодасепосочатнякои
настройкивработнияпоток,катонапримербазовURLадреснамрежовияслой,който
подсигурявауебметодите,коитощеизпълняватвъзлитевработнитепотоци.
Фигура14Базовинастройкинаработенпоток
Наред15нафиг.14епоказананастройкатазаURLадреснамрежовияслой,а
настройкатана ред18е свързанасимплементацията наалгоритмаза генериранена
оптималниучебнипътища.Товапосъществоерадиусътнадостижимостнаобектана
обучавания,закойтосегенерираучебнияпът, ако за неговия обект няма зададен
такъврадиус.
Тукщепокажемописаниетонанякоиотпо‐важнитестъпкивработнияпоток.
Фигура35Стъпка"Следващидействия"
Нафиг 15 е показанадефиницията на стъпка, която играеролята на начално
меню за обучавания. Флагът infoStepнаред22 показва, че текущата стъпка е чисто
30
информационнаинее свързанас автоматизираноизпълнениена уебметод, вграде‐
нокато механизъм в самия TinyWf.Притозиизгледщесепокажатпреходите, които
садефинираниоттазистъпкакъмизходящитеистъпки, чиято дефиниция ще пока‐
жемпо‐долу.
Еднаот важните стъпки в работния потокепоказванетонацелитевадаптив
натазаявказаобучение,коитообучаванияимадапостига.
Натази стъпка обучавания трябва да избереучебнацел от тези,коятобиже
лал да постига и за която на следващата стъпа ще мъ се генерира автоматизирано
персоналенучебенпътотучебнидейности.
Нафиг.16епоказанаимплементациятанастъпкаGenerateLearningPath,която
извиквауебметодсъссъщотоиме.Товаестъпката,коятосъздаваикаторезултатот
изпълнениетосипоказванаекранаучебнитедейности,коитоучастватвгенерирания
учебенпътилисъобщениезагрешка,акопонякаквапричинагенерираниятпътнее
възможнодабъдесъздаден.
5=>array("name"=>"GenerateLearningPath","caption"=>"Генериран на учебен
път",

"template"=>"?procName={procName;Процедура;.;GenerateLearningPath}&ID_Studen
t={ID_Student;Студент}&ID_Course={ID_Course;Курс}&ID_CG={ID_CG;Учебнацел}",
"autosubmit"=>true,"rememberLastState"=>true,"autosubmitNoLastState"
=>true,
"httpMethod"=>"GET",
"hiddenInputFields"=>array("procName"),
),
Фигура46Имплементациянастъпка"GenerateLearningPath"
ВуебметодасъссъщотоимеереализациятанаалгоритъмаeLP_GA(вижгл.3).
4.3. Генераторнаперсонализираниучебнипътища
Генераторътна персонализирани учебнипътищае имплементиран чрезстъп‐
кавглавенработенпроцеснаМодулОбучаванвкурс“, която извиква уебметод в
мрежовияслойсимеGenerateLearningPath.Алгоритъмътеподробноописанвгл.3,а
втекущататочкащедадемимплементациятамукатоPHPуебметодмрежовияслой.
В следващите редове ще използваме понятията точкаирадиус‐вектор
взаимозаменяемо.
Сесийната променлива $_SESSION['vector_coords'] се използва за постепенно
акумулиранена имената наизмеренията,за коитопредстоида сеправятвекторните
изчисления в многомерното пространство. Това помага за разгъванетонарадиус
векторитена точкитенавсички обекти,катонатезиоттях, накоитоим липсватини‐
циализирани измерения от списъка с всички измерения, находящ се в $_SESSION
['vector_coords'],имседобавяттезиизмеренияснулевистойности.Впоследствие
векторнитеизчислениясеизчисляватсточки,намиращи сев многомернопространс‐
твосинициализиранивсичкитезиизмерения.
Акозаучебнатадейностнямагенериранобект,тотозиобектсесъздава.Ида
имаобекти даняма,резултатотизпълнениетонасъхраненатапроцедураеактуален
идентификаторнаобектанаучебнатацел.
СледващиятетапотреализациятанаGenerateLearningPathеинициализацията
наобектанатекущияобучаван,койтоставапоначин,аналогиченнапоказания.
31
Инициализациятанаобектинаучебнидейностиставачрезпървоначалноиз‐
бираненаидентификаторите научебнитедейности,коитоса записаникато достъпни
внастоящатазаявказа обучение.Прилипсанатакиваучебнидейности,изпълнение‐
тонапрограматащеизлезеотуебметодасъссъобщениезагрешка,ченяманалични
учебни дейности в адаптивния курс. Инициализират се асоциативните масиви
ID_OBJ_LAsиmap_ID_LA_to_LA, които съдържат информация за учебните дейности,
катопървия масивсъдържа техниидентификатори,автория:техниобекти,отговаря‐
щинаструктуратаимвзаявката,покоятосаизвлечениотБД.
Следваща важна стъпка от инициализацията е инициализиране на известни
координатизавсекиоттезиизвлечениобективмногомернотопространство.
Въвforeach цикъла се инициализира векторно пространствоvectorLAs,което
съдържа векторите, отговарящи на обектите на вече извлечените учебни дейности.
ЗацелтасеизползвапомощнатафункцияGetObjCoordinates.
Следващатастъпкаепремахване нанякоикоординати отучебнатацел,които
сасвързани с посочване на задължителни учебни дейности (ако има такивазанея).
Отделнооттова,акоимазадължителниучебнидейности, те се добавят в генерира‐
нияучебенпътselectedLAs.
Поконвенция евъзприето,чеприналичие наизмерениев радиус‐векторана
учебнатацел,чиетоимееотвидаOBLIG_LA_X,къдетоХеидентификаторнаучебна
дейност, тогава тя е задължителна за тази учебна цел.Сunset($vector_ID_OBJ_CG
[$key])се премахва това измерение от вектора на текущатаучебнацел,катоцелтае
тоданевземаучастиевпо‐нататъшнатачастоталгоритъма,понежеевентуалнотому
участиесамобиобъркалогенериранетонаоптималнияпътотучебнидейности.
Трябвада се отбележи,чесписъкътотизмерениянавсекиобект,впространст
вотоотучебнидейностиитекущатаучебнацелсефилтрираотвсичкиизмерения,чиито
именанезапочватс“gen__”,коетозаалгоритъмаезнак,четеучастватвгенерирането.
ExtendObjectCoordinates($vector_ID_OBJ_CG);
ExtendObjectCoordinates($vector_ID_OBJ_STUD);
foreach ($vectorLAs as $key => $value) {
ExtendObjectCoordinates($vectorLAs[$key]);
}
$_SESSION['CUR_CG']=$vector_ID_OBJ_CG;
Фигура17Нормализираненаизмеренията
Нафиг.17епоказанот.нар.нормализираненаизмеренията,катонавсекира‐
диус вектор се добавят измеренията,коитотойвсеощенямаинициализирани,като
липсващоизмерениенарадиус‐вектор се добавя с името на съответнотоизмерениеи
стойност0занего.
ЗацелтасеизползвафункциятаExtendObjectCoordinates.Следкатовекторно‐
то пространство е вече напълно инициализирането, се преминава към същинската
частнареализациятанаалгоритъма.
При условие, че в предишен етап на изпълнение на алгоритъма е избрана за‐
дължителнаучебнадейноститявечесенамиравпространствотонаизбранитеучебни
дейностиselectedLAs,тотрябвадасепроверидалитекущатаучебнацелвеченеена
пълно постигната с тях.ПроверявасечрезIsInReachRadius($vector_ID_OBJ_STUD,
$selectedLAs[$key],$DEFAULT_REACH_RADIUS)далиналичнатаУДеврадиусанадости
жимост на обучавания,ачрезIsGreaterOrEqual($selectedLAs[$key],$vector_ID_OBJ_CG)
32
сепроверява дали целта се достига с някоя от тези избрани УД.Трябвадаотбележим,
ченеезадължителноприналичназадължителнаУДвучебнацел,тядасепостигасамо
чрез нея. Може в УЦ да са записани други функции/предикати, които да отговарят на
измерения,свързанисдидактическоописание,коетоданеепостигнатооттазиУД.
Следващетапоталгоритъмаедасепроверидалислучайноврадиусанадос‐
тижимостнастудентаняма понееднаУД,коятосамапосебеси(бездаимануждаот
генерираненацялпътотУД)постигатазиучебнацел.
Ако този по‐елементарен случай е изпълнен, изобщо не се преминава към
същинскатачастнагенерираненацялпътотУД,адиректносеприключваизпълне
ниетонаGenerateLearningPathстова,коетоеналичнодотуквselectedLAs.
Ако никой от горните по‐прости частни случаи не е изпълнен, се преминава
къмсъщинското генериране на учебенпътотмножество УД.Трябвадасеотбележи,
чечрезuasort($vectorLAs,"cmpVectors"),УДвпространствотоотналичниУДvectorLAs
в адаптивния курс се преподреждат в асоциативния масив по близост до целта за
постигане.ТовадававъзможностдасеподбиратспредимствотакиваУД,коитосапо‐
близодотърсенатацел,коетоеединвидоптимизираневалгоритъма.
//start moving current student radius-vector until reaching
desired LAs list
while(true){
//uasort($vectorLAs, "cmpVectors");
//$curLA= array_shift($vectorLAs);
$curIDX_LA=0;
$Vector_curLA=NULL;
$hadAtLeastOneInReachRadius=false;
foreach ($vectorLAs as $key => $value) {
$curIDX_LA=$key;
$Vector_curLA=$value;
if(IsInReachRadius($vector_ID_OBJ_STUD, $Vector_curLA,
$DEFAULT_REACH_RADIUS)){
MoveTo($vector_ID_OBJ_STUD, $Vector_curLA);
$selectedLAs[$ptr_selLAs++]=$map_ID_LA_to_LA[$curIDX_LA];
MarkLAAsUsed($ID_Student, $curIDX_LA);
unset($vectorLAs[$curIDX_LA]);
$hadAtLeastOneInReachRadius=true;
break;
}
}
if(!$hadAtLeastOneInReachRadius){
//няма достатъчно учебни дейности, излизай
$rv=[(object)["error"=>"Няма достатъчно налични учебни
дейности. (Безкрайно амбициозна цел.) Изход."]];
return $rv;
}
//избрана поредна учебна дейност. Виж дали си постигнал целта
if(IsGreaterOrEqual($vector_ID_OBJ_STUD, $vector_ID_OBJ_CG)){
//целта постигната и пътя генериран
return $selectedLAs;