| Title: | Explore and Interactively Adjust a Daily Distribution of Lessons |
|---|---|
| Description: | A set of functions to see and interactively adjust a distribution of lessons by day, aiming at homogenizing individual distributions (for each class and teacher). |
| Authors: | Vlad Bazon [aut, cre] |
| Maintainer: | Vlad Bazon <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.0 |
| Built: | 2026-05-18 07:11:34 UTC |
| Source: | https://github.com/cran/recastlessons |
După ce se investighează (prin 'prof_2days()', 'prof_swap()', etc.) distribuția lecțiilor unui profesor în cadrul repartiției curente, se poate decide schimbarea zilei alocate lui la o anumită clasă.
change_day(DZ, P, Q, Z, new_zl)change_day(DZ, P, Q, Z, new_zl)
DZ |
Distribuția curentă a lecțiilor, pe zile. |
P, Q, Z
|
Profesorul, clasa și ziua (din 'Zile') curent alocată. |
new_zl |
Ziua (din 'Zile') cu care trebuie înlocuită cea existentă. |
Distribuția rezultată după realocarea lecției.
Sunt de vizat clasele care în prima zi au mai multe ore, decât în a doua zi (urmând să echilibrăm, prin mutarea unei ore din prima, în a doua zi).
cls_2days(DZ, z1, z2)cls_2days(DZ, z1, z2)
DZ |
Distribuția curentă pe zile a tuturor lecțiilor |
z1, z2
|
elemente din vectorul 'Zile' |
Matricea distribuțiilor pentru clasele cu mai multe ore în prima, ca în a doua zi
Pentru a vedea dacă la o anumită clasă, putem muta o lecție într-o altă zi, fără ca prin aceasta să afectăm omogenitatea distribuției lecțiilor ei.
cls_dis(DZ, K)cls_dis(DZ, K)
DZ |
Distribuția curentă a tuturor lecțiilor |
K |
Clasa |
Distribuția pe zile a numărului de lecții ale clasei
Cumulând orele proprii cu cele din cuplajele în care este implicat, profesorul poate ajunge în vreo zi, la 6 sau 7 ore; dar se poate ca niciuna dintre clasele sale din ziua respectivă, să nu aibă pe acea zi, decât numai 5, respectiv numai 6 ore...
cls_last(DZ, P)cls_last(DZ, P)
DZ |
Distribuția curentă pe zile, a lecțiilor |
P |
Profesorul, dintre cei cu ore proprii și implicați în cuplaje |
TRUE dacă pentru oricare zi, există clase la care 'P' să poată intra
în ultima oră din zi.
Alfel, zilele în care lecțiile alocate lui 'P' nu încap la clasele
respective și distribuțiile pe zile pentru aceste clase
Avem de urmărit ca lecțiile fiecărei clase să fie distribuite omogen, (și nu cvasi-omogen) pe zile.
cls_quasihom(DZ, d = 2)cls_quasihom(DZ, d = 2)
DZ |
Distribuția curentă pe zile, a tuturor lecțiilor |
d |
Diferența între cel mai mare și cel mai mic număr de ore/zi |
Matrice în care pe fiecare linie avem distribuția numărului de ore/zi pentru câte o clasă, dacă există diferențe de 'd' ore între o zi și alta ('NULL' dacă nu există astfel de clase).
Între altele, vom putea sesiza situația defectuoasă în care un profesor a căpătat în total (cumulând orele proprii cu cele din cuplaje) 6 sau 7 ore pe o zi, dar niciuna dintre clasele implicate nu ajunge în ziua respectivă, la a 6-a respectiv, a 7-a oră.
cls2prof(DZ, P)cls2prof(DZ, P)
DZ |
Repartiția curentă pe zile |
P |
Profesorul, sau un vector de profesori |
Tabel conținând pe zile, clasele repartizate profesorului
# clasele repartizate pe zile lui 'Fz1', respectiv la doi profesori 'Gr*' Fz <- cls2prof(R123, "Fz1") Gr <- cls2prof(R123, paste0("Gr", 1:2))# clasele repartizate pe zile lui 'Fz1', respectiv la doi profesori 'Gr*' Fz <- cls2prof(R123, "Fz1") Gr <- cls2prof(R123, paste0("Gr", 1:2))
Cumulând (de pe liniile unde apare), putem constata cât este de omogenă distribuția pe zile a fiecărui profesor angajat în cuplaje.
coupled_dis(DZ)coupled_dis(DZ)
DZ |
Distribuția curentă a tuturor lecțiilor |
Matricea distribuțiilor lecțiilor cuplate
Pentru fiecare membru al unor cuplaje (care are și ore proprii) se înscrie într-o listă matricea distribuțiilor acestuia. Consultând aceste matrice se pot stabili re-alocări de zile prin care să se echilibreze distribuțiile respective.
coupled_list(DZ)coupled_list(DZ)
DZ |
Distribuția curentă a tuturor lecțiilor |
Lista matricelor distribuțiilor fiecărui membru cu ore proprii care este angajat în cuplaje (și suma cumulată de ore/zi)
A vedea 'vignette(package="spysetlessons")'
DZDZ
Profesorii și cuplajele
Clasa la care profesorul are de făcut o lecție
Ziua în care a fost re-alocată lecția
Tuplajele (dacă există) vizează lecțiile care au fost fixate în prealabi, pe anumite zile; în principiu, trebuie evitată modificarea acestor alocări.
keep_toupled(DZ, TP)keep_toupled(DZ, TP)
DZ |
Distribuția lecțiilor pe zile (curentă) |
TP |
Setul tuplajelor (repartizate din start pe zile) |
TRUE dacă repartiția tuplajelor n-a fost modificată, sau primul tuplaj la care distribuția inițială nu coincide cu cea curentă
Dacă o clasă apare în ambele zile la un profesor, atunci clasa respectivă nu ar trebui mutată din prima zi în a doua (în principiu, la fiecare disciplină trebuie să avem câte cel mult o singură oră/zi).
prof_2days(DZ, K, z1, z2)prof_2days(DZ, K, z1, z2)
DZ |
Distribuția de lecții pe care se investighează. |
K |
Clasă. |
z1, z2
|
Cele două zile (neapărat, elemente din vectorul 'Zile') |
Tabelul distribuțiilor profesorilor care au ore la clasa 'Cls' în ziua 'z1' dar nu și în ziua 'z2'.
Exluzând (după apelul funcției interne 'set_prof1_tw1()') profesorii angajați în cuplaje și toate cuplajele din care fac parte, găsim pe cei din afara cuplajelor și dintre aceștia, selectăm pe cei care au mai mult de 'at_least' ore, distribuite cvasi-omogen pe zile.
prof_bad_dis(DZ, at_least = 8)prof_bad_dis(DZ, at_least = 8)
DZ |
Distribuția curentă a lecțiilor, pe zile |
at_least |
Vizează numai distribuțiile individuale care au în total, peste un anumit număr de ore (implicit 8) |
Setul distribuțiilor neomogene (cvasi-omogene)
Pentru interschimbare, este de ales o clasă la care cei doi profesori au oră numai în una, dintre cele două zile și astfel încât măcar una dintre distribuții să devină omogenă (cealaltă poate să rămână cvasi-omogenă).
prof_swap(DZ, P, z1, z2)prof_swap(DZ, P, z1, z2)
DZ |
Distribuția curentă a lecțiilor, pe zile |
P |
Profesorul căruia am vrea să-i omogenizăm distribuția |
z1, z2
|
Zilele (în termenii din 'Zile') între care am schimba |
Lista distribuțiilor profesorilor cu care se poate interschimba
Set de 928 lecții prof | cls | zl (repartizate deja pe zile). Repartiția respectivă este într-o anumită măsură, echilibrată: numărul de ore/zi la fiecare clasă este cuprins între 5 și 7; fiecare profesor are nu mai mult de 7 ore/zi; poate cu unele excepții (când este omogenă), distribuția pe zile a lecțiilor profesorului este cvasi-omogenă (diferind cu cel mult două ore, de la o zi la alta).
R123R123
Cod de 3 sau 6 caractere, reprezentând un profesor, respectiv un cuplaj (doi profesori, pe grupe ale unei clase); primele două litere abreviază disciplina pe care este încadrat profesorul, iar cifra care urmează indexează profesorii de pe aceeași disciplină
Clasa (două sau trei caractere) la care profesorul are de făcut o lecție
Ziua în care a fost alocată lecția
Vizualizează lecțiile distribuite în fiecare zi unui grup de profesori.
tidy2tsv(D)tidy2tsv(D)
D |
Distribuția pe zile a unor lecții în "format lung" (prof | cls |zl); de exemplu, a lecțiilor unei clase, discipline, etc. |
Setul liniilor (numite după profesori) conținând pe fiecare zi, clasele repartizate profesorilor pentru ziua respectivă
Pentru un profesor implicat în tuplaje, putem să-i omogenizăm distribuția lecțiilor mutând într-o altă zi una sau alta dintre acele clase ale sale, care nu sunt indicate în tuplajele din care face parte acel profesor.
toupled_dis(DZ, TP)toupled_dis(DZ, TP)
DZ |
Distribuția curentă a tuturor lecțiilor |
TP |
Setul de tuplaje |
Matricea cu distribuțiile membrilor tuplajelor (incluzând și lecțiile acestora din afara tuplajelor)
Set conținând 27 de tuplaje asociate setului 'R123'. Un tuplaj va angaja într-un același moment (zi și oră), doi (sau trei) profesori și două (respectiv, trei) clase (după anumite criterii, elevii reuniți ai claselor respective sunt redistribuiți ad-hoc în noi "clase", în locul și cu numele celor inițiale). De separat cu câte un spațiu, profesorii, respectiv clasele tuplajului (respectiv, zilele alocate).
TPLTPL
Profesorii care trebuie să intre în același moment, la câte una dintre clasele respective
Clasele la care profesorii din tuplaj au de făcut câte o lecție, în câte o aceeași zi (și oră)
Ziua sau zilele alocate tuplajului în setul 'R123'
Factor prin care denumim zilele în care sunt alocate lecțiile.
ZileZile
Abrevieri pe câte două litere, ale zilelor de lucru.