Dzisiaj napiszę o tematach, z którymi musiałem się zmierzyć tworząc aplikację dla Szkoły Policealnej KADRA.
Nad narzędziem pracowałem kilka miesięcy i uważam go za trzeci najtrudniejszy projekt w swoim życiu (poza optymalizatorem cięcia stali OPTISTAL i „kobyłą”, która odpowiadała za wysyłkę towaru do kilkudziesięciu sklepów Media Markt).
O Szkole
W KADRZE uczy się łącznie ponad czterysta uczniów w dwudziestu kilku klasach. Zatrudnionych jest kilkudziesięciu nauczycieli. Oprócz szkoły stacjonarnej (dziennej i wieczorowej) funkcjonuje również szkoła zaoczna.
Problemy Do Rozwiązania
Przy tak rozbudowanej strukturze, organizacja zajęć staje się dla Dyrekcji sporym wyzwaniem. Pojawia się sporo pytań i problemów do rozwiązania…
Siatka Zajęć
Każdy kierunek studiów ma przypisaną przez MEN tzw. siatkę zajęć. Jest to lista przedmiotów wraz z wyznaczoną liczbą godzin na semestr/tydzień.
Jak zatem zaplanować lekcje, aby liczba godzin lekcyjnych zgadzała się z narzuconą odgórnie siatką godzin?
Aplikacja za pomocą formularza pozwala bardzo łatwo wybrać klasę, a następnie przedmiot. Operator programu otrzymuje obok informacje z numerami tygodnia i liczbą już dodanych godzin, dzięki czemu może łatwo wychwycić ich niedobór lub nadmiar, i w efekcie skorygować grafik tak aby częstotliwość zajęć zgadzała się z narzuconą siatką godzin.
Przykładowo, dla zajęć z przedmiotu Techniki pracy w gabinecie dentystycznym MEN narzuca 6h/tyg. W sekcji Częstość zajęć widzimy ile godzin tych zajęć zostało już dodanych do grafika (tydzień 3 i 4 to ferie, stąd liczba 0).

Koncert Życzeń
Jak uwzględnić fakt, że wielu nauczycieli prowadzi własne biznesy i zgadza się pracować tylko w wybranych terminach?
Jak uwzględnić fakt, że Pan Jan może pracować tylko w poniedziałki przez cały dzień, we wtorki do godz. 11:00 i w środy po godz. 12:30?
A Pani Anna może pracować tylko w piątki i weekendy (ale w lutym nie będzie jej przez dwa tygodnie, a w marcu zamiast piątków będą czwartki?).
Każdy nauczyciel ma swoje „życzenia” i należy je uwzględnić przy układaniu planu.
Ten nierealny z pozoru temat okazał się bardzo łatwy do wdrożenia… W arkuszu pomocniczym (pierwszy wiersz to nauczyciele, pierwsza kolumna to termin rozpoczęcia zajęć) operator wstawia znak X w odpowiedniej komórce i jest to traktowane jako absencja belfra w podanym terminie.
Dodatkowo, przy próbie dodania zajęć w terminie zgłoszonej nieobecności, program wyświetla komunikat ostrzegawczy na czerwono lub blokuje całkowicie możliwość dodania zajęć (opcja wyboru).
Kolizja Terminów
Jest to często spotykany problem… Jak zabezpieczyć się przed sytuacjami, w których nauczyciel miałby już przypisane inne zajęcia w tym samym terminie?
Aplikacja musi zgłaszać błąd lub ostrzeżenie, gdy nauczyciel ma już przypisane zajęcia z inną klasą w tym terminie! Bo przecież się fizycznie nie rozdwoi.
Program pokazuje z jakimi klasami belfer ma już zajęcia w tym terminie (jeśli tak faktycznie jest), dzięki czemu operator programu może wprowadzić zmiany w planie, aby uniknąć kolizji terminów.
Kolizja Sal
Podobnie jak w poprzednim punkcie, może wystąpić kolizja – lecz tym razem nie terminów, a sal.
Jak zabezpieczyć się przed „kolizją sal” i jak dobierać sale aby pomieściły wszystkich uczniów?
Program musi pokazać, że w danym terminie sala jest już zajęta przez inną klasę i nie można w niej przeprowadzić zajęć. I tak się dzieje!
Dodatkowo, program wskazuje, które sale pomieszczą wszystkich uczniów z danej klasy, a które są na to zbyt małe. Operator programu na bazie tych informacji decyduje, w której sali mają się odbyć zajęcia.
5-dniowy Tydzień Pracy + Wolna Niedziela w M-cu
Nauczyciele od niedawna muszą być zatrudniani w Szkołach na umowy o pracę, nawet jeżeli pracują tam sporadycznie.
Niesie to ze sobą wprowadzenie wielu dodatkowych przywilejów.
Nauczyciel może mieć zajęcia maksymalnie pięć dni w tygodniu (przynajmniej dwa dni wolne), obowiązkowo musi mieć także jedną wolną niedzielę w miesiącu.
Aplikacja pokazuje na formularzu częstość zajęć nauczyciela w wybranym tygodniu i we wszystkie niedziele miesiąca.
Elastyczne Raporty Dla Uczniów i Nauczycieli
Program tworzy spersonalizowane raporty w trzech okresach: semestralnym, miesięcznym, tygodniowym.
W dwóch ostatnich przypadkach operator może łączyć ze sobą okresy (np. przygotować plan zajęć dla nauczyciela X na pierwszy kwartał roku lub plan zajęć dla klasy Y na pierwsze dwa tygodnie semestru).
Wszystkie raporty są eksportowane do formatu XLSX i PDF. Trwa to kilkanaście sekund.
Ewidencja Czasu Pracy
Program posiada specjalny szablon z ewidencją czasu pracy, do którego zaczytuje dane z planu zajęć, przetwarza je i tworzy gotowy do wydruku miesięczny raport roboczogodzin dla każdego nauczyciela.
Dzięki temu nie istnieje ryzyko pomyłki w wyliczaniu godzin pracy, a nauczyciele zwolnieni są z wypełniania kłopotliwych druczków z rejestrem czasu pracy.
Wymiar Zatrudnienia
Program pomaga w wyliczaniu wymiaru zatrudnienia nauczycieli. Wiedząc ile godzin dydaktycznych (60min) nauczyciel przepracuje w semestrze, łatwo jest wyliczyć godziny lekcyjne (45min) i w efekcie wysokość etatu.
Raporty mogą być bardzo szczegółowe i pokazywać te wyniki w rozbiciu na: typ szkoły (dzienna, wieczorowa, zaoczna), klasy, przedmioty.
Zastępstwa
W trakcie semestru często dochodzi do różnych zmian.
Przeważnie dotyczą one chwilowej nieobecności nauczyciela (np. na wskutek choroby, urlopu) lub całkowitej rezygnacji ze współpracy.
W takiej sytuacji konieczne są zastępstwa i program również musi je uwzględniać – pomimo tego, że na początku semestru zawsze przypisujemy nauczyciela do przedmiotu.
Podsumowanie
Istnieją jeszcze inne, mniejsze wyzwania, o których nie będę tutaj wspominał, aby nie wchodzić w szczegóły.
Tak czy siak, aplikacja została już z powodzeniem wdrożona, a współpraca z Kadrą jest kontynuowana.
