Katalog -- formuły dotyczące rekrutacji

Formuły egzaminacyjne

pole katalog.kwalifikacja_formula

Pole powinno zawierać formułę opisującą wymagania jakie musi spełnić kandydat aby zarejestrować się na danych kierunek studiów. Format formuły:

formula_egzaminacyjna ::= [ 'SELECT:' | 'MULTISELECT:' ] formula_zlozona
formula_zlozona ::= formula | formula '|' formula_zlozona
formula ::= warunki | wyrazenie_warunkowe
wyrazenie_warunkowe ::=  wyrazenie_logiczne [ '[' opis tekstowy ']' ] '=>' warunki
wyrazenie_logiczne ::= e_rodzaj | inna_sciezka_kod | wyrazenie_logiczne ' && ' wyrazenie_logiczne
e_rodzaj ::= e_rodzaj_kod | e_rodzaj_kod '_'? rok | e_rodzaj_kod '_PRZED_' rok | e_rodzaj_kod '_PO_' rok
e_rodzaj_kod ::= 'IB' | 'LIC' | 'INZ' | 'MATURA' | 'MATURA_OBCA' | 'DYPLOM_OBCY' | 'MGR' | 'SWIAD_DOJRZ' | 'OLIMPIADA'
inna_sciezka_kod ::= 'STUDIA_ROWNOLEGLE' | 'PRZENIESIENIA'
warunki ::= warunek | warunek ';' warunki
warunek ::= REQ(..) | CHOOSE(..) | MSG(..) | ..
Dodatkowo w treści formuły mogą znaleźć się wywołania postaci
#include<S_ID>
które powodują, że treść formuły studiów S_ID zastępuje napis "#include..". Formuła może działać w dwóch trybach:
  • SELECT (domyślny tryb) -- kandydat ma do wyboru pierwsze wyrażenie, dla którego wyrażenie warunkowe jest spełnione
  • MULTISELECT -- kandydat ma wyboru wszystkie wyrażenia, dla których wyrażenie warunkowe jest spełnione
Gdzie warunek jest jedną z następujących funkcji:
  • REQ(PRZEDMIOT1,PRZEDMIOT2,...) --- kandydat musi wybrać dokładnie jeden przedmiot z podanej listy, PRZEDMIOT oznacza ID egzaminu (np. CEW_MATEMATYKA) lub grupy egzaminów, jeśli egzamin można zdawać na różnych poziomach, należy dodać odpowiednią końcówkę _P lub _R (np. CEW_POLSKI_R, oznacza egzamin z j. polskiego na poziomie rozszerzonym). Formuła blokuje wybór egzaminów centralnych dla nowych maturzystów.
  • CHOOSE(k:opisk,i1:opis1,i2:opis2,...,PRZEDMIOT1,PRZEDMIOT2,...) --- kandydat musi wybrać przedmioty spośród podanej listy o sumarycznej wadze równej dokładnie k. Co najmniej jeden z przedmiotów musi zostać wybrany spośród i1 pierwszych przedmiotów. Co najmniej dwa z przedmiotów muszą zostać wybrane spośród i2 pierwszych przedmiotów. opis1, opis2, ... są opisami poszczególnych grup.
    Formuła blokuje wybór egzaminów centralnych dla nowych maturzystów. Uwaga: ta formuła nie obsługuje wag przedmiotów!
  • CHOOSE_NWM(k:opisk,i1:opis1,i2:opis2,...,[waga1*]PRZEDMIOT1,[waga2*]PRZEDMIOT2,...) --- jak CHOOSE, ale nie jest wymuszany wybór matur. Dodatkowo formuła obsługuje wagi przedmiotów.
  • CHOOSE_NBC jak CHOOSE ale bez blokowania wyboru CEWów dla nowych maturzystów,
  • REQ_NBC jak REQ ale bez blokowania wyboru CEWów dla nowych maturzystów,
  • REQ_S(S1,S2,...,SK) --- kandydat musi być zapisany przynajmniej na jedne ze studiów wymienione w parametrze,
  • OPT jak REQ, ale wymaga wyboru 0 lub 1 egzaminów,
  • OPT_CHOOSE(min,max,lista_egzaminów) jak CHOOSE, ale wymaga wyboru egzaminów o sumarycznej wadze z zakresu min..max,
  • FORBID(MATURA1,MATURA2,...) --- zablokowanie rejestracji jeśli kandydat zdawał na maturze jeden z podanych przedmiotów, jeśli chcemy zablokować konkretny poziom matgury należy dodać odpowiednią końcówkę _P lub _R
  • FORBID_S(STUDIA1,STUDIA2,...) --- zablokowanie rejestracji jeśli kandydat wybrał już podane kierunki,
  • REG_DATES(rrrr-mm-dd[ gg:mm:ss], rrrr-mm-dd[ gg:mm:ss]) --- zablokowanie rejestracji poza podanym przedziałem czasu, jeśli dokładna godzina nie jest podana to przyjmowana jest 00:00:00 dla rozpoczęcia przedziału, oraz 23:59:59 dla zakończenia przedziału,
  • FORBID_D(rrrr-mm-dd[ gg:mm:ss]) --- zablokowanie rejestracji po podanej dacie, jeśli dokładna godzina nie jest podana, to przyjmowane jest 00:00:00.
  • FORBID_E(X,E1,E2,E3,..) --- jeśli wybrano egzamin X, to zablokuj wybór egzaminów E1,E2,...
  • FORBID_E_PAIR(E1,E2,E3,..) --- zablokuj wybór co najmniej dwóch egzaminów z listy E1,E2,...
  • FORBID_REPEATED_E([E1, E2,...]) --- blokuj wielokrotny wybór tego samego egzaminu (na potrzeby UW), jeśli podane są egzaminy E1, E2 .., to blokowany jest wielkrotny wybór tylko tych oznaczonych egzaminów, można też podać dla egzaminu poziom np. M_POLSKI_P i ograniczenie będzie dotyczyć tylko wielokrotnego wyboru tego konkretnego poziomu.
  • COND_REQ(E1,E2,E3,...) --- kandydat musi wybrać przedmiot E1, a jeżeli go nie zdawał to może wskazać inny spośród E2,E3,..,En.
  • MSG('napis') --- wyświetlenie napisu, np. o tym, że przydział egzaminów na ten kierunek rozpocznie się 2005-07-01, albo że na kierunek nie są wymagane egzaminy.
  • QUESTION('treść pytania') --- wyświetlenie pytania, np. dotyczące wybranego tematu rozmowy kwalifikacyjnej, kandydatowi wyświetlane jest pytanie i jest on proszony o wpisanie odpowiedzi w polu typu INPUT,
  • SELECT('treść pytania', [klucz1:] 'opcja1', [klucz2:] 'opcja2' ... ) --- wyświetlenie pytania z zadaną listą odpowiedzi do wyboru (pola typu RADIO),
  • na potrzeby szczególnie skomplikowanych reguł kwalifikacji będą przygotowywane osobne funkcje, np. do obsługi łączonych testów predyspozycji.

Przykłady

  • Formuła warunkowa:
      MATURA => MSG('nowa matura')
      | MGR =>MSG('magister')
      | MSG('domyślna formuła');
      
  • REQ(CEW_MAT_R,M_MATEMATYKA_R);REQ(CEW_FIZ_R,M_FIZYKA_R,CEW_HIS_R,M_HISTORIA_R)
    TBD
  • REQ(M_HISTORIA_R);REQ(M_ANGIELSKI_P,M_NIEMIECKI_P);FORBID(M_FIZYKA_P)
    TBD
  • CHOOSE_NWM(3,CEW_POL_R,CEW_HM_R,CEW_JW_P,2*CEW_JF_R,CEW_CHEM_R)
    TBD
  • MSG('Proszę przyjść później. Na razie nie rozumiemy naszej uchwały rekrutacyjnej')
    TBD
  • ERR('Rejestracja zamknięta ze względu na cośtam')
    Wyświetlenie komunikatu + zablokowanie rejestracji
  • CHOOSE(2:Wybieram,2:Ważny,A,B,C,D)
  •  Nie wybieramWażnyWybieram
    A
    B
    C 
    D 
  • SELECT('Jaki jest Twój ulubiony kolor?',R:'czerwony',G:'zielony',N:'niebieski')

egzaminy_grupy

Definicje grup egzaminów. W tabeli można zgrupować kilka egzaminów pod jedną nazwą (np. MATURY) i potem używać ich w formułach kwalifikacyjnych poprzez ID grupy.

egzaminy_zastepstwa

(niestety tabela troche zmieniła swoje znaczenie i właściwie powinna nazywać się matury_blokady) Jeśli tabela zawiera wpis (m,e). To oznacza, że matura m uniemożliwia zdawanie egzaminu e (np. MATURA_MAT_R, uniemożliwia zdawanie CEW_MAT_R). Jeśli m nie zawiera końcówki określającej poziom (_P lub _R), to taki wpis jest skrótem do wpisów (m_P,e) i (m_R,e). Jeśli e nie zawiera końcówki określającej poziom (_P lub _R), to taki wpis jest skrótem do wpisów (m,e) i (m,e). Czyli na przykład wpis MATURA_MAT,CEW_MAT oznacza zablokowanie:
  • MATURA_MAT_P,CEW_MAT_P
  • MATURA_MAT_P,CEW_MAT_R
  • MATURA_MAT_R,CEW_MAT_P
  • MATURA_MAT_R,CEW_MAT_R

Formuły rankingowe

pole katalog.wyniki_formula

Formuła określa sposób obliczania punktów do listy rankingowej. Format formuły:

FORMUŁA ::= WYRAŻENIE | WYRAŻENIE WARUNKOWE
WYRAŻENIE_WARUNKOWE ::= WARUNEK '=>' WYRAŻENIE
                     | WARUNEK '=>' WYRAŻENIE '|' WYRAŻENIE_WARUNKOWE
WARUNEK ::= MATURA | MATURA(_PO_|_PRZED_|_)?([0-9]+) |
            SWIAD_DOJRZ | SWIAD_DOJRZ(_PO_|_PRZED_|_)?([0-9]+) |
            INZ | LIC | IB | MGR |
            DYPLOM_OBCY |
            SCIEZKA_(nazwa_ścieżki_rekrutacyjnej) |
            WARUNEK '&&' WARUNEK
WYRAŻENIE ::= WYRAŻENIE operator WYRAŻENIE
                     | - WYRAŻENIE
                     | (WYRAŻENIE)
                     | liczba
                     | funkcja [ ( argumenty ) ]
                     | id
id ::= {id egzaminu} | {id_egzaminu}_P | {id_egzaminu}_R | #{wartosc_specjalna}
      | W_[0-9] | W_[0-9]_(P|R|KOD|POZIOM|ROK) 
Dodatkowo w treści formuły mogą znaleźć się wywołania postaci
#include<S_ID>
które powodują, że treść formuły studiów S_ID zastępuje napis "#include..".
  • warunki MATURA, SWIAD_DOJRZ, itd. są spełnione, gdy kandydat posiada odpowiedni dokument uprawniający do podjęcia studiów,
  • warunek SCIEZKA_ID (np. SCIEZKA_MATURA) służy do testowania, czy podczas zapisów kandydat wybrał odpowiednią ścieżkę rekrutacji,
  • warunki można łączyć ze sobą przy pomocy spójnika '&&', taki warunek jest spełniony gdy wszystkie jego składowe są prawdziwe,
  • {id_egzaminu} oznacza wartość pola 'wynik' z podanego egzaminu,
  • {id_egzaminu}_P oznacza wartość pola 'wynik_p' z podanego egzaminu (wynik z części podstawowej),
  • {id_egzaminu}_R oznacza wartość pola 'wynik_r' z podanego egzaminu (wynik z części rozszerzonej),
  • {id_egzaminu}_ROK oznacza wartość pola 'rok' z podanego egzaminu (rok zdawania egzaminu, obecnie tylko dla wyników importowanych z KREMu),
  • @{id_egzaminu..} oznacza wynik egzaminu, jadnak w przypadku braku informacji o wyniku egzaminu nie jest zwracany błąd lecz wartość -1,
  • W_[1-9] -- oznacza wynik z egzamiu wybranego w i-tym (W_1 - pierwszym, W_2 - drugim, itd.) warunku formuły kwalifikacyjnej,
  • W_[1-9]_POZIOM -- jak W_[1-9] ale zwraca poziom wybranego egzaminu,
  • W_[1-9]_KOD -- jak W_[1-9] ale zwraca kod wybranego egzaminu,
  • W_[1-9]_ROK -- zwraca rok zdawania danego przedmiotu,
  • W_[1-9]_OPCJE -- zwraca wartość wybranej opcji w i-tym (W_1 - pierwszym, W_2 - drugim, itd.) warunku formuły kwalifikacyjnej, np. SELECT(‘Jakieś pytanie’,0:’Nie’,1:’Tak’) - po zaznaczeniu 'Nie' zwraca 0,
  • liczba -- oznacza liczbę całkowitą lub liczbę rzeczywistą (np. -2, 5, 0.25),
  • operator -- operacja arytmetyczna (+,-,*,/) lub logiczna (or,and,not),
  • funkcja -- aktualnie dostępne są następujące funkcje:
    • funkcje PHP: round, floor, ceil, abs, min, max, round, array, in_array
    • sum -- suma liczb podanych jako argumenty, np. sum(1,20,1,10,10)=42
    • avg -- średnia, np. avg(1,2,3)=2
    • k_max(k,a1,a2,a3..) -- k-ty co do wielkosci element w ciągu, np. k_max(2,10,20,30,40,50)=40
    • sum_nn -- suma liczb z pominięciem liczb ujemnych, np. sum_nn(1,-1,2,-1)=3
    • avg_nn -- średnia liczb z pominięciem liczb ujemnych, np. avg_nn(1,-1,2,-1,3)=2
  • wartosc_specjalna:
    ROK_UZYSKANIA_MATURY rok uzyskania matury (z pola osoby[e_matura_rok])
    LICZBA_NOWYCH_MATUR liczba egzaminów typu nowa matura i nowa matura ustna, które kandydat wybrał przy wpisywaniu wyników matury
    LICZBA_NOWYCH_MATUR_PISEMNYCH liczba egzaminów typu nowa matura, które kandydat wybrał przy wpisywaniu wyników matury
    LICZBA_NOWYCH_MATUR_USTNYCH liczba egzaminów typu nowa matura ustna, które kandydat wybrał przy wpisywaniu wyników matury
    LICZBA_STARYCH_MATUR liczba egzaminów typu stara matura, które kandydat wybrał przy wpisywaniu wyników matury

Przykłady

  • formuła: ważona suma wyniku z matury z matematyki + 2 razy wynik poziomu rozszerzonego z matury z fizyki
    (M_MAT_P+2*M_MAT_R)/3 + 2*M_FIZ_R
  • #LICZBA_NOWYCH_MATUR
  • przykład formuły używającej modyfikatorów _PRZED_RRRR i _PO_RRRR:
    MATURA_PO_2007 => 100 |
    MATURA => M_MAT_R+M_MAT+P |
    SCIEZKA_SWIAD_DOJRZ && SWIAD_DOJRZ_PRZED_1992 => 50 |
    SCIEZKA_SWIAD_DOJRZ && SWIAD_DOJRZ_PO_1991 => 5 |
    SWIAD_DOJRZ => 1 |
    -1
    

Przykłady formuł

  • Dla nowej matury: wymagany jest egzamin z biologii, opcjonalnie można wybrać dodatkowo jeden przedmiot (chemia, matematyka lub język nowożytny). Wynik punktowy: suma wyników egzaminów, gdzie wynik egzaminu: max(poziom podstawowy, 2*poziom rozszerzony). Dla starej matury, wymagany jest jeden z egzaminów (biologia, chemia lub matematyka). Wynik punktowy jest obliczany za pomocą tabelki (inna dla skali ocen 3-5, inna dla skali 2-6).
    formuła egzaminacyjna:
    MATURA =>
      REQ(M_BIOLOGIA) ;
      OPT(M_CHEMIA,M_MATEMATYKA,M_ANGIELSKI,M_NIEMIECKI,M_FRANCUSKI)
    | SWIAD_DOJRZ =>
      REQ(SM_BIOLOGIA,SM_CHEMIA,SM_MATEMATYKA)
    
    formuła rankingowa:
    MATURA =>
      max(0,@W_1_P,2*@W_1_R) + (@W_2_KOD !="" ? max(0,@W_2_P,2*@W_2_R) : 0)
    | SWIAD_DOJRZ_PO_1991 =>
     (W_1>5 ? 100 : (W_1>4 ? 90 : (W_1>3 ? 70 : (W_1>2 ? 50 : (W_1>1 ? 30 : 0)))))
    | SWIAD_DOJRZ_PRZED_1992 =>
     (W_1>4 ? 100 : (W_1>3 ? 75 : (W_1>2 ? 50 : 0)))
    | -1