![]()
KAUNO TECHNOLOGIJOS UNIVERSITETAS
Informatikos fakulteto fizini? moksl? krypties
doktorant?s Au?ros ?vironien?s
Darbo tikslas - i?tirti profiliuotos mokyklos tvarkara??io programos veikim?, para?yti jos privalumus, tr?kumus bei rekomendacijas i? vartotojo pus?s.
?i programa atlieka pradin? profiliuot? klasi? tvarkara??io sudarym?. Po to atliekamas ?io tvarkara??io optimizavimas, kas ?galina iki minimumo suma?inti "lang?" skai?i? tiek mokiniams tiek mokytojams.
Kiekvienas mokinys gali pasirinkti jam patinkan?ius dalykus, tod?l tvarkara?tis turi b?ti sudaromas individualiai kiekvienam mokiniui. Stengiamasi sudaryti tvarkara?t? tok?, kad jis tur?t? kuo ma?iau "lang?" ir b?t? priimtinas tiek mokiniams, tiek mokytojams. Turi b?ti i?pildyti fiziniai apribojimai (tai rei?kia, jog tvarkara?tyje negalimos tokios situacijos kai mokinys ar mokytojas dalyvauja dviejose pamokose tuo pa?iu metu.).
Sukurta programa palengvina profilini? klasi? tvarkara??io sudarym?. Vartotojas dalyvauja tik duomen? failo sudaryme, duomen? failo nusiuntime ? server? ir rezultat? gavime. Programa sudaro tvarkara?t? pagal nurodytus apribojimus, atlieka optimizavim?, kiekvienam tvarkara??io variantui apskai?iuoja baudos ta?kus ir i?veda geriausi? (pagal baudos ta?k? skai?i?).
1. Duomen? failas ".txt" formate pasirinkamas paspaudus mygtuk? "Browse". Paspaudus mygtuk? "O.K." failas nusiun?iamas ? server?.
2. Paspaudus mygtuk? "Read data" duomenys nuskaitomi i? atsi?sto failo. Tuomet aktyviais tampa pasirinkimai "Restrictions" ir "Penalty points".
3. "Restrictions" (apribojimai) - vartotojas gali pasirinkti norimus apribojimus, ? kuriuos atsi?velgs programa, darydama tvarkara?t?. Galimi tokie apribojimai:
- "Two continuous lessons" - tvarkara?tyje vartotojo pa?ym?tos pamokos bus sud?tos dvi i? eil?s, vien? kart? savait?je.
- "Teachers" - pasirenkami mokytojai ir savait?s dienos, kada jie turi i?eigines.
- "Number of lessons" - pasirenkamas maksimalus pamok? skai?ius per dien?.
4. "Penalty points" (baudos ta?kai) - ?iame lange vartotojas gali nurodyti baudos ta?kus intervale nuo 0 iki 10 pateiktiems punktams. Tai yra, pagal prioritet? vartotojas skiria daugiau baudos ta?k? pavyzd?iui mokini? langams nei mokytoj? langams ir t.t... Sudarius tvarkara?t? ir j? optimizuojant vartotojas gali matyti kiek baudos ta?k? "surinko" vienas ar kitas tvarkara??io variantas.
5. "Starting schedule" - sudedamas pradinis tvarkara?tis ir i?vedamas ? lauk? "First version".
6. Tada aktyviu tampa "Optimization" mygtukas, kur? paspaudus atsiranda langas su dviem pasirinkimais: "Number of iterations" (iteracij? skai?ius optimizavimo metu) ir "Probability" - tikimyb?, su kuria tam tikras dalykas bus kei?iamas vietomis. Juos pasirinkus
arba palikus si?lomus, spaud?iamas "Start" mygtukas - optimizavimo prad?ia.
7. Optimizavimui pabaigus darb?, tur?t? b?ti vykdomas "Last schedule" pasirinkimas, kad b?t? galima pamatyti bei i?sisaugoti rezultat?.
8. "Help" - pateikti pagrindiniai reikalavimai duomen? failui. Duomen? failo ".txt" formate pavyzdys: 11AngLg | JonKar | 3 | 11 BirJak | 11 KapMin |^
9. "About" - programos darbo apra?ymas.
Algoritm? apra?ymas:
Pradinio tvarkara??io sud?jimo apra?ymas. Nuskaitomas vartotojo duomen? failas ? masyv?. Atsi?velgiant ? nustatytus apribojimus, jei nustatytos tam tikros besit?sian?ios pamokos, jos sudedamos ? tvarkara?t? pirmos. Jos dedamos ? pirmadien?, o likusios i?metamos ? kitas dienas. Toliau likusi? pamok? sud?jimas vykdomas sekan?iai: pasirenkama diena ir pamoka, tikrinama ar pamoka gali vykti (?vertinami fiziniai apribojimai), sudedamos visos pamokos, kurios gali vykti kartu. Taip pat atliekamas patikrinimas ar mokytojas t? dien? neturi i?eigin?s (jei nustatyta apribojimuose). Viena pamoka vyksta vien? kart? per dien?, jei kitaip nenurodyta apribojimuose. Reikia pasteb?ti, jog formuojant pradin? tvarkara?t? n?ra kreipiamas d?mesys ? mokini? ar mokytoj? lang? skai?i?, o stengiamasi sutalpinti visus dalykus ? bendr? tvarkara?t?. Pradiniu metu bandoma sutalpinti ? nurodyt? maksimal? pamok? skai?i?, nurodyt? apribojim? punkte "Number of lessons", jei tai padaryti nepavyksta, tada atliekamas masyvo i?mai?ymas (eilu?i? sukeitimas vietomis) ir v?l formuojamas tvarkara?tis. Jei atlikus i?mai?ym? visos pamokos netilpo, jos dedamos prie nurodyto maksimalaus pamok? skai?iaus prid?jus 1. Tokiu atveju u? vien? pamok? pridedamas maksimalus baudos ta?k? kiekis 10. Sudarius pradin? tvarkara?t? jis pertvarkomas, t.y. ? pirmas pamokas keliamos tos pamokos, kurias lanko daugiausiai mokini?, tam, kad suma?inti lang? skai?i? pradiniame tvarkara?tyje. Paskui atliekamas optimizavimas.
Tvarkara??io optimizavimo apra?ymas. Optimizavimas orientuotas ? mokini? lang? ma?inim?. Optimizavimo algoritmas:
1. Iteracijos numeris nustatomas ? 1.
2. Keliaujama per mokini? s?ra??.
3. Parenkamas atsitiktinis skai?ius x.
4. Jei x didesnis u? m?s? pasirikt? tikimyb? ("Probability"), tai atlikin?jami pakeitimai mokinio tvarkara?tyje, jei x ma?esnis u? tikimyb?, einama prie kito mokinio.
5. Ie?komi parinkto mokinio langai. Kai langas surastas, ie?komos kiekvienos dienos pirmos ir paskutin?s pamokos, kurios gali b?ti ?terptos vietoje lango. Jei tos pa?ios dienos tinka ir pirma, ir paskutin?, atsitiktinio skai?iaus pagalba parenkama viena i? j?.
6. Vietoje lango ?terpiama rasta pamoka, o vietoje rastos pamokos padaroma laisva vieta.
7. Kai per?i?rimi visi mokinio langai keliaujama ? 3 punkt?.
8. Kai per?i?rimi visi mokiniai, padidinamas iteracijos numeris ir einama ? 2 punkt?.
9. Kai atliktos visos iteracijos, pateikiamas geriausias tvarkara??io variantas.
Baudos ta?k? skai?iavimas. Baudos ta?kai apskai?iuojami ?vertinant tokius 5 faktorius: langus tarp pamok? mokiniams, langus tarp pamok? mokytojams, apribojim? d?l dviej? besit?sian?i? pamok? ne?gyvendinim?, apribojim? d?l mokytoj? laisv? dien? ne?gyvendinim? ir per dien? vykstan?i? pamok? skai?iaus padidinimas.
Geriausio varianto i?rinkimas. ?vykd?ius visus punktus, geriausias variantas, laikomas tas, kuris turi ma?iausi? baudos ta?k? skai?i?, o ne tas, kuris atitinka visus apribojimus. Tai daroma tod?l, kad pavyzd?iui kokio nors apribojimo ne?vykdymas gali labai ?enkliai suma?inti mokini? lang? skai?i?.
Program? Profiled School: Optimal schedulling ir Servlet: Profiled school example privalumai, tr?kumai ir pasi?lymai
Did?iausias privalumas tas, kad tai nereikalauja dideli? vartotojo pastang?, mok?jimo dirbti kompiuteriu ir daug laiko susipa?inti su programos darbu. Palyginus lengva naudotis ?ia programa, nes paprastai dirbant tok? darb? tiesiog negali skirti daug laiko, kad i?mokti dirbti su nauja programa, o ?ia bereikia i?mokti ?prasti sudaryti pradini? duomen? fail?.
Man teko (dirbant kolegijoje) matyti kit? tvarkara??io sudarymo program?, skirt? kolegijai. J? daug met? sudarin?jo programuotoja ir si?l? pirkti kolegijoms. Ji parod? kaip jos programa veikia, bet kad i?mokti ja dirbti b?t? reik?j? labai daug laiko (deja, tiek a? skirti negal?jau). Ja i?ties buvo sunku naudotis. Visi moduliai ir d?stytojai tur?jo savo kodinius skaitinius trumpinius ir sudarytas tvarkara?tis buvo t? kod? visuma. Kadangi per kelias programas moduli? daug, tai jau vien prisiminti jos sugalvotus specifinius kodus yra sud?tinga, o paskui gavus tvarkara?t?, j? v?l "atkoduoti" pa?iai. Taip pat dar buvo daug funkcini? klavi?? (pvz., P1, P2,), kuri? funkcijas reik?t? mokytis mintinai, kad spar?iau dirbti. Programuotoja lygino savo program? su Mimoza ir ?inoma gyr? savo produkt?, bet student? sukurta programa yra kur kas vertesn?.
Privalumas - gautas pradinis tvarkara?tis yra pakankamai geras, nes pvz., dvi i? eil?s einan?ios pamokos b?na jau sud?tos ? tvarkara?t? nepaisant lang?, o po optimizavimo ?is reikalavimas gali b?ti nepatenkintas siekiant suma?inti lang? skai?i?.
Privalumas - tvarkara?tis sudaromas palyginti labai greitai, net jeigu turimas kompiuteris n?ra greitas.
Privalumas - labai gra?iai sutvarkytas tvarkara??io i?vedimas (Servlet: Profiled school example), nes lengva j? "skaityti". Patogu matyti piln? dalyko pavadinim? ir dalykus, i?d?stytus vien? po kitu.
Reik?t?, kad bendrame profilini? klasi? tvarkara?tyje ?alia dalyko b?t? nurodytas mokytojas ir kabineto numeris.
Patarimas vartotojui - nor?damas pamatyti gra?iai sutvarkyt? tvarkara?t?, kai dirba su Profiled School: Optimal schedulling programa, jis tur?t? naudoti auk?tesn? Java (TM) SDK versij?. Naudojant ?emesn? versij? su "jdk1.3.1_01" tvarkara?tis mat?si netvarkingai i?m?tytas, o naudojant "jdk1.3.1_02" tvarkara?tis mat?si tvarkingai i?d?stytas pagal dienas.
Bendrame galutiniame tvarkara?tyje (Profiled School: Optimal schedulling) reik?t?, kad i?vedami duomenys b?t? pilni (pvz., Lietuvi? kalba, 23, N.Adomaitien?; ). Taip i?vedant duomenis, kad eilut? neb?t? be galo ilga, kitas dalykas tur?t? b?ti spausdinamas atitinkamai po ja:
Pvz. 1. Lietuvi? kalba, 23, N.Adomaitien?
Matematika , 11, A.Jonien?
?okis , 1, R.Sonyt?
Be to, tuo atveju jei t? pat? dalyk? (pvz., Lietuvi? kalb?) d?sto ta pati mokytoja skirtingom klas?m, tada prie dalyko pavadinimo tur?t? b?ti nurodytas ir klas?s numeris (11 ar 12).
Pvz. 1. Lietuvi? kalba -11, 23, N.Adomaitien?
2. Lietuvi? kalba -12, 23, N.Adomaitien?
Reikia mygtuko "Spausdinti", kuris dar duot? pasirinkim? k? nori spausdinti: vis? tvarkara?t?, vienuoliktok? tvarkara?t?, nurodytos mokytojos tvarkara?t? ar konkretaus mokinio tvarkara?t? - reikia paruo?ti spausdinimo formas su pavadinimu (kieno tai tvarkara?tis).
Gerai b?t?, kad gaut? geriausi? tvarkara?t? vartotojas gal?t? dar pakoreguoti pats rankiniu b?du ir pamatyti ar tas pakeitimas galimas ir kaip smarkiai pakito baud? skai?ius, taip pat atstatyti j?, jei prie? tai buvo geresnis.
Optimizavimui pabaigus darb?, tur?t? b?ti vykdomas "Last schedule" pasirinkimas, kad b?t? galima pamatyti bei i?sisaugoti rezultat?, bet jis nepasileido, visuomet atsidarydavo tu??ias langas.
Tr?kumas - programoje Servlet: Profiled school example leid?ia pasirinkti tik vien? dalyk? i? "Two continous lessons" s?ra?o, bet da?niausiai reikia keli? dalyk?, kuri? pamokos eit? dvi i? eil?s. S?ra?e "Teacher list" parinkus vienam mokytojui norimas laisvas dienas n?ra tiesioginio mygtuko, kad gr??ti ? bendr?j? mokytoj? s?ra?? ir pasirinkti kit?. Neai?ki mygtuko "Reset" paskirtis (jis nieko nedaro).
B?t? neblogai, jei optimizavimo metu vis kei?iant iteracij? skai?i? atsirast? u?ra?as, kad gautas tvarkara?tis jau yra geriausias ir daugiau optimizuoti nereikia.
Gal?t? i?mesti prane?im? ar visi duomenys yra sud?ti ? tvarkara?t?, jei parinktas ma?esnis pamok? skai?ius per dien?, nes esant daug duomen? rankiniu b?du sunku tai sutikrinti
Atliekant bandym? su savo sukurtu nedideliu duomen? failu pasteb?jau, kad vieno mokytojo pradiniam tvarkara?tyje matosi paskirtos 8 pamokos savait?je, o optimizuotoje versijoje liko tik 6? Ne?inia kod?l mokytojo atveju, jei tvarkara?tyje yra viena pamoka per dien?, po jos tu??ios pamokos buvo traktuojamos kaip langai. Gal b?t netilpo visos pamokos ? tvarkara?t?? Ir su tais duomenimis teko ilgai laukti, bet taip ir negal?jau pamatyti individualaus mokinio tvarkara??io.
Gal b?t reik?t? padaryti galimyb? parinkti baudos ta?kus atskirai kiekvienam mokytojui, nes ne kiekvienam "langai" tvarkara?tyje turi vienod? vert?. Pvz. direktoriui langai visai nesvarb?s, nes jis vis tiek vis? dien? b?na mokykloje, o mokytojai, kurios pamok? kr?vis ma?as, geriau netur?ti lang? arba tur?ti laisv? dien?. Parinkimas atrodyt? pana?iai kaip laisv? dien? parinkimas konkre?iam mokytojui.
N?ra tokios informacijos vartotojui, kada dalykas nebus skaitomas (tarkim, kai dalyk? pasirinks ma?iau kaip 5 mokiniai), ir tokia informacija kaip ne?vyksian?i? pamok? s?ra?as gal?t? b?ti i?vedamas ? ekran?.
A? pati esu kur? laik? dirbusi priva?ioje kolegijoje studij? organizatore. Vienas i? mano darb? buvo tvarkara??i? sudarymas dieninio skyriaus studentams, neakivaizdinio skyriaus studentams (jie mokydavosi ?e?tadieniais, tod?l j? tvarkara?tis buvo atskiras) bei suaugusi?j? mokymo kurs? klausytojams (jie mok?si ?alia dieninio skyriaus student?).
Kalb?siu tik apie student? tvarkara?t?, nes ir kit? tvarkara??i? sudarymo principas tas pats. Tvarkara?t? sudarydavau rankiniu b?du, nes programos specialios netur?jome. Sudarymui buvo ?inomi d?stomi moduliai, juos d?stantys d?stytojai, galimos auditorijos (j? buvo viso 9, nes kolegijoje dieninio skyriaus student? buvo 220 ir kas trys m?nesiai keisdavosi ma?daug po 100 SM klausytoj?).
Sudarymo tikslas - kuo ma?iau lang? studentams ir kad b?t? kiek galima labiau i?pildyti d?stytoj? pageidavimai (nes beveik visi d?stytojai ? kolegij? yra "ateinantys"- ?ia n?ra j? pagrindin? darbaviet?, tod?l reik?davo derinti j? individualias galimybes konkre?iam paskait? laikui, o ne dienai), kad neb?t? per didelis paskait? apkrovimas per dien? studentams (kolegijoje buvo diegiama program? kokyb?s u?tikrinimo sistema, tod?l didelis d?mesys buvo skiriamas ? moduli? eili?kum? bei student? apkrovim?) ir reik?jo "tilpti" kolegijos auditorijose.
Kuris d?stytojas pirmas u?siimdavo paskait? laik? konkre?iom dienom, tas laikas jau b?davo "u?imtas", nebent jo labai reik?t? kitam d?stytojui (jei jo u?imtumas kitoj darbaviet?j yra didelis, o d?stytojas yra labai geras specialistas ir jo keisti kitu nenorima), tada b?davo derinama su to u?imto laiko "savininku" ir ie?koma kit? alternatyv?. Buvo svarbu atsi?velgti ? auditorij? kiek?, nes jose buvo skirtingas viet? skai?ius, o ir grup?se buvo skirtingas student? skai?ius (mat j? dar tur?jo likti kurs? klausytojams, tai irgi buvo labai svarbu - nes tai buvo kitas pajam? ?altinis kolegijai).
Taigi, jei kas nor?t? ateityje u?siimti tvarkara??io sudarymu konkre?iai kolegijoms, jiems reik?t? atkreipti d?mes? ? tai:
Kolegijoje dabar mokomasi tris metus (suteikiamas auk?tasis neuniversitetinis i?silavinimas), tai vienu metu mokosi 3 kursai ir juose gali b?ti nevienodas grupi? skai?ius, vadinasi tvarkara?t? reiks sudaryti ne konkretiems studentams, bet konkre?ioms specialybin?ms grup?ms (tai lengviau)
Kadangi kompiuterin?se klas?se yra ribotas individuali? darbo viet? skai?ius, tod?l kurse i? grupi? sudaromi pogrupiai pagal student? mok?jimo lyg? ir specialyb?; taip pat yra u?sienio kalb? lygiai (pagal testus sudaromi pogrupiai) - taigi atitinkamai tie pogrupiai sudedami ? tvarkara?t? pagal kursus (?ia jau nei?vengsi "lang?").
Reikia numatyti, kad galimi kalbini? grupi? srautai, kai pogrupiuose susirenka per ma?as student? skai?ius pagal specialyb? (pvz., vokie?i? kalbos pradinis lygis). Galimi ir bendr?j? nespecialybini? grupi? srautai (pvz. Psichologijos pagrindai I kurse ar Filosofija III kurse). Reikt? numatyti tokias galimybes pirmiausia, nes tai b?na pirmasis reikalavimas i? vald?ios sudarant tvarkara??ius (taupumo sumetimais, d?l auditorij? bei specialist? stokos).
Reikia patikrinti, kad neb?t? paskirtos dvi paskaitos ? t? pa?i? auditorij?.
Kolegijoje mokomasi pagal kredit? sistem?, tod?l reik?t? ?vedant duomenis ?alia modulio nurodyti ir kreditus, kas reik?t? kiek paskait? turi vykti per savait? (2 kreditai yra viena savaitin? paskaita, 4 kr. yra 2 paskaitos, 3kr. yra taip pat 2 paskaitos, tik jos baigias m?nesiu anks?iau )
Reikia sudaryti tvarkara?t? taip, kad d?stytoj? pageidavimus galima b?t? u?ra?yti konkre?iai dienai, konkre?iai paskaitai (pvz. matematikos d?stytoja gali tik pirmadieniais 1, 2, 5 paskaitas, ketvirtadieniais 2,3 paskaitas ir penktadieniais 3,4,5 paskaitas - jai per savait? reikia tik dviej? paskait? ir ji pageidauja, kad jos b?t? dvi i? eil?s).
Da?niausiai susitariama, kad ? dien? studentams vykt? ne daugiau kaip 6 paskaitos, nes kai b?na atsiskaitym? savait? (konkre?iai 8-ta semestro savait?), jie fizi?kai nepaj?gia gerai pasiruo?ti keliems atsiskaitymams per dien?, jei paskaita yra tik kart? savait?je ir b?tina atsiskaityti u? dal? kurso tik t? dien?.
Kadangi tre?io kurso student? apkrovimas ?iek tiek ma?esnis ir dauguma j? pageidauja laisvo studij? grafiko (kas leid?ia nelankyti dalies paskait?, mat dauguma j? jau dirba, kad susimok?t? u? studijas), tai j? paskaitas galima daryti popietiniame laike, tod?l gal?t? b?ti apribojimai, skirti paskaitoms - I kurso paskaitos turi vykti nuo ryto, o tre?io kuro paskaitos gali vykti ir po piet?.
Reikalingas baudos ta?k? parinkimas konkretiems d?stytojams, nes tik ma?a dalis yra etatiniai d?stytojai (jiems ne taip svarb?s langai, nes jie vis tiek b?na kolegijoje vis? dien?), o visi kiti yra "ateinantys" (konkre?iai kolegijoje, kurioje dirbau a?, paskaitas d?st? teis?jai, prokuroras, u?sienio reikal? ministerijos ata?? i? Vilniaus,ir kt., tod?l j? pageidavimus d?l paskait? laiko tekdavo tenkinti pirmiau, nei kito d?stytojo, kuriam gal b?t papras?iau paderinti savo tvarkara?t? kitur).
Kadangi kolegija privati, tai labai buvo stebima, kad visos paskaitos ?vykt?, tod?l d?l tam tikr? prie?as?i? ne?vykusias paskaitas reik?davo atidirbti, tod?l reik?t?, kad b?t? galima pamatyti ar d?stytojos pasi?lytu laiku yra laisva auditorija ir laisvi studentai.
Tvarkara?tis (tiksliau jo dalis) atrodydavo taip (jis buvo patogus "skaityti"):
|
2001/2002 m.m. Dieninio skyriaus rudens semestro tvarkara?tis
|
|||||||||
|
|
Grup?s
Laikas |
1 TE |
1 TVV |
1 TA |
2 TE |
2 TVV |
3 TE |
3 TVA |
3 VA |
|
K E T V I R T A D I E N I S |
8.00-9.30 |
ITVIS 3gr. F.Melninkien? 6a. |
Angl? kalba 1gr./ I.U?uotait? 2a. |
Darbo teis? / I.Tatorien? 4a. |
|
|
|
|
|
|
9.40-11.10 |
ITVIS 4gr. V.Mikolaitis 6a. |
Vadyba / A.Iva?kien? 1a. |
Angl? kalba 2gr./ I.U?uotait? 4a. |
Angl? kalba / E.Nomicien? 2a. |
|
|
|
|
|
|
Vokie?i? kalba / L.Mieliauskien? 3a. |
|||||||||
|
11.10-12.00 |
|
|
|
|
|
|
|
|
|
|
12.00-13.30 |
Angl? kalba 1gr./ E.Nomicien? 4a. |
Angl? kalba 1gr./ O.Medonien? 2a. |
ITVIS / V.Mikolaitis 9a. |
Vokie?i? kalba / L.Mieliauskien? 3a. |
|
|
|
||
|
13.40-15.10 |
Angl? kalba 2gr./ E.Nomicien? 2a. |
Angl? kalba 2gr./ O.Medonien? 3a. |
Lietuvos istorija ir kult?ra / A.Tarasovait? 1a. |
|
|
Kriminalistikos pagrindai / K.Benevi?ius 4a. |
|
|
|
|
15.20-16.50 |
|
|
Turizmo ?vadas / A.Jesi?kien? 1a. |
|
Verslo logistika / N.Patackien? 2a. |
Teismin? ekspetiz? / K.Benevi?ius 4a. |
|
Verslo logistika / N.Patackien? 2a. |
|
|
17.00-18.30 |
|
|
|
|
Verslo logistika / N.Patackien? 2a. |
|
|
Verslo logistika / N.Patackien? 2a. |
|
Jei kas apsiimt? padaryti tok? darb?, tai s?km?s, nes tai labai palengvint? kolegij? studij? organizatori? darb?.