[vmchecker-dev] penalty.sh & co

Lucian Adrian Grijincu lucian.grijincu at gmail.com
Sun Sep 7 22:36:34 EEST 2008


penalty.py pare bun pentru SO/PSO.
pentru PT nu e bun al doilea. La PT (dacă nu se schimbă nimic până la
începutul semestrului) nu se vor scădea x puncte, ci, după ce se pune
nota pe temă, va fi înmulțită cu (1-x/10). În plus, întârzierea nu se
va face de la "deadline-ul" oficial până la "data uploadului". Va fi
un deadline intermediar ... anyways, e mai complicat. trebuie să mă
gândesc la o soluție.
Oricum e bun pentru alte materii care vor așa ceva.

comentarii
a) 84600 -> 24 * 3600 ... să fie mai evident pentru cine s-o apuca să
modifice scripturile astea
b) comentariile din penalty_weighted.py pentru variabila "penalty"
sunt false (copy-pasta)
   # Pentru fiecare zi intarziere se scade valoarea penalty
   penalty = 0.25
   # Ponderea penalizarii pe zile
   wheights = (1, 2, 4, 8, 0)
c) mă gândeam că ai putea să le unești:
la SO/PSO weights = (1) și limit = 3
la alte materii    wheights = (1, 2, 4, 8, 0) și limit = 10
d) n-ar trebui să dai printf() la rezultat? văd că argumentele sunt
luate din linia de comanda. Presupun că nu penalty.py va fi chemat
dintr-un script de undeva. E cam ciudat să-și ia rezultatele din $?
(variabila de return a scriptului).
e) separă în trei bucăți (ca să poți chema funcțiile astea din alte
scripturi python dacă va fi nevoie și ca să mărești lizibilitatea
codului).

main()
   -- ia un argv[] și apelează compute_new_grade_str
   -- printează la stdout rezultatul

compute_new_grade_str(string_data_upload, string_data_deadline)
  -- parsează stringurile și cheamă compute_new_grade_time_t

compute_new_grade_time_t(time_t__data_upload, time_t__data_deadline)
  -- primește obiecte de tip timp, calculează și returnează noua notă.

(desigur, folosește niște nume mai puțin brain-dead față de astea pe
care le-am trântit eu aici).

-- 
Lucian


More information about the vmchecker-dev mailing list