Corectare Tema 1
Depunctări
De marcat în spreadsheet, doar dacă ceva este în neregulă, următoarele rubrici:
(generic) efecte laterale —— 1 dacă folosește funcții cu efecte laterale
(generic) checker tricks —— numele funcțiilor care sunt inginerite astfel încât să treacă mai multe teste decât ar trebui
(etapa 2) funcții curry —— un număr între 1 și 3, în funcție de câte dintre tt+, et+, add-to-counter nu sunt implementate în formă curry
(etapa 2) lipsă abstractizare —— 1 dacă min-tt și min-et nu sunt derivate dintr-o funcție mai abstractă, evitând rescrierea aceluiași cod
(etapa 3) incorect TDA —— 1 dacă TDA-ul queue nu este folosit doar prin intermediul interfeței sale
(etapa 4) fluxuri ineficiente —— un număr între 1 și 3, în funcție de câte dintre rotate, enqueue, dequeue trec testele fără a fi implementate eficient (conform indicațiilor); numărați funcția doar dacă sursa ineficienței este în funcția respectivă; ex: dacă enqueue și dequeue sunt ineficiente din cauză că folosesc un rotate ineficient, atunci scrieți 1, nu 3)
Sugestii de întrebări la prezentare
(etapa 1)
(etapa 2)
unde exploatăm faptul că am definit funcții curry
cum determinăm câte case noi trebuie deschise și care sunt indecșii acestora
cum este folosit remove-first-from-counter
(etapa 3)
cum tratăm cazul în care în numărul dat de minute ies mai mulți clienți (de la aceeași casă / de la case diferite)
cum ordonăm clienții care ies simultan
de ce este implementată coada cu 2 stive
(etapa 4)
ce operație pe coadă optimizăm și cum
s-a modificat în vreun fel structura counter
ce se întâmplă cu clienții de la casele care se închid
(generic)
ce se schimbă de la o etapă la alta
câte moduri diferite de a reprezenta coada de clienți s-au folosit în cele 4 etape
care sunt situațiile tratate de funcția serve
unde s-au putut / s-ar fi putut folosi funcționale