Ghidul asistenților

Resurse folosite

    • conţine
      • scheletele laboratoarelor şi soluţiile lor
      • temele
      • codul generatorului de teste
      • alte lucruri utile
    • respectaţi formatul descris in readme-uri
  • folder partajat in google drive
    • link-uri către materialele de pe wiki (textele laboratoarelor ̧şi ale temelor)
    • pentru fiecare temă se crează un forum
    • ssh poo@elf.cs.pub.ro - puneți cheia publică în documentul de organizare ca să o adăugam pe poo@elf.
  • trello - pentru organizarea taskurilor

Laboratoare

  • Responsabilii de laboratoare trebuie să realizeze todo-urile din template-ul de pe trello. Ele sunt legate de mici corecturi legate de formatare dar și de exerciții sau exprimări. În 2020 o să păstrăm majoritatea exercițiilor nemodificate, le actualizăm/schimbăm doar pe cele neclare sau inutile.
  • Scheletul laboratorului (dacă există) trebuie adăugat şi în repository atunci când este publicat laboratorul
  • Soluţiile
    • trebuie să fie puse în repository în acelaşi timp cu scheletul
    • ar trebui să conţină comentarii care să explice studenţilor mecanismele utilizate
    • ar trebui să ofere javadoc si sa respecte coding style-ul
  • Dacă observați mici greșeli pe parcursul semestrului le puteți modifica direct. Dacă e ceva mai important/mai mult de schimbat atunci puteți să îl notați pe card-ul de trello al labului respectiv.
  • Link-ul la canalul de YouTube pentru videoclipurile explicative este acesta. Credenţialele pentru cont sunt următoarele:
    • e-mail: oop.cs.pub@gmail.com
    • parola: DristorIsLove69

Editare document note:

  • daca un student de-al vostru nu apare in catalog, va rog sa il adaugati voi si sa resortati dupa grupa si nume. (select all in afara de primele doua randuri, Data → sort range → sort by Column B, adaugati si sort by Column A). Aceasta situatie se intampla de obicei cu studentii restantieri.
  • folositi FILTER VIEWS atunci cand completati note sau doriti sa filtrati documentul (screenshots folosire filtre.
  • folositi NOTES nu COMMENTS. De ce? Textul notes-urilor se muta o data cu celula respectiva, la comments nu, si este foarte probabil sa mai fie mutari, mai ales la inceput. In plus, cand dati un comment intr-un document owner-ii primesc notificari pe mail.

Sfaturi predare

(pe scurt, pentru mai multe info, ping Adriana on Slack)

Pre-online (dar multe sunt inca aplicabile):

  • La POO nu diferă în totalitate materia de la lab vs cea de la curs (e.g. ca la pm, asc), deci ne bazăm că ei au auzit de noțiunile din lab de la curs, deci nu explicam jumătate de oră ca la alte materii, ci doar 10-15 min.
    • dacă durează prea mult ei se vor panica că nu vor termina exercițiile și se vor apuca de ele în timp ce vor vorbiți, ignorăndu-vă.
  • Explicațiile trebuie să fie cât mai engaging pentru studenți, încercați să îi atrageți în discuții, porniți eventual de la o problemă și să virați înspre cum se rezolvă cu noțiunile din laboratorul actual
    • exemple din real-world
    • problem-driven
    • nu trebuie menționat absolut tot din lab, eventual le mai explicați și în timpul exercițiilor
    • Le puteți permite să vă arate la laboratorul următor ce nu termină în laboratorul curent, dar nu acceptați să vedeți exerciții pe mail sau de la cineva care a lipsit.
  • Testele:
    • fiți punctuali și nu începeți laboratorul mai tarziu de :05
    • discutați pe scurt soluția cu ei dupa test și înainte de a începe explicațiile laboratorului
    • evaluați-le până la urmatorul laborator..why? dacă observați că au făcut foarte mulți o anumită greșeala sau vedeți că nu au înțeles un concept, e bine sa mai insistati pe el, să îl mai explicați o data în următorul lab (E.g. vedeți că au probleme cu static). Defeats the purpose of the tests să le evaluați pe toate la finalul semestrului.
  • Social skills:
    • friendly si sa îi ajutați pe toti pe tot parcursul labului, să nu stați izolați la laptop pe tot parcursul laboratorului și doar la final să le vedeți exercițiile.
    • dacă vedeți că unii sunt nesiguri pe skillurile lor, se deprimă, se panichează, try to be there for them, să le arătați că they can do it.
    • nu fiți aroganți cu ei
  • Sa îi încurajați să folosească documentația claselor de Java, nu copy-paste fără să gândească de pe stackoverflow.
  • Sa îi incurajați să întrebe pe forum, pe teams sau pe mail pentru ca sa nu să vă bată la cap pe facebook.
  • Dpdv al organizării, la primul laborator este suficient să le ziceți de regulamentul de pe wiki, pagina de organizare cu echipa și calendarul. Să le spuneți care sunt obiectivele materiei (java dar si lots of oop, design patterns, coding style, no-gui stuff.

Sfaturi in plus fata de cele de mai sus pt online:

  • Fiți cu video on voi asistenții, chiar dacă studenții nu o sa fie. Puneți-va background fake dacă nu doriți să vi se vadă ce e prin camera
  • Explicațiile
    • ei au la dispoziție videouri cu explicații însă e indicat să începeți și voi discuții cu ei pe teams, mai mult de tip Q&A axat pe ce nelamuriri au, ce ar dori sa le explicați din lab/exerciții
    • le puteti axa mai mult pe partea de exerciții, e util chiar sa dați screen pentru a le explica anumite exemple/părți
    • la primul lab e indicat să începeți prin a le arăta resursele utile de pe wiki, lucruri de oragnizare, nu vă lungiți însă prea mult
  • Code review
    • nu întârziați cu el, ei au deadline de 48 de ore, e bine ca și voi să vă uitați pe codul lor până la următorul lab
    • le dați nota după ce au adresat comentariile, iar dacă nu au timp sau nu vor, le puteți pune nota pentru cât au făcut
    • nu vă sfiiți să le dați si nit-uri, aka comentarii despre lucruri de code style sau pentru a face codul mai citibil
    • păstrați un ton neutru în comentarii și prietenos, este foarte ușor de greșit și de părut ironic/agresiv în scris

Teme

Subechipele temelor au următoarele responsabilităţi:

  • gândirea ei într-o manieră ce permite testarea automată
  • redactarea enunţului
  • elaborarea şi publicarea tester-ului
  • adăugarea soluției și checker-ului în repository (see also https://oop-pub.slack.com/messages/C5Z58FTEE/details/)
  • crearea unui forum specific temei respective şi trimiterea unui anunţ referitor la publicarea temei ̧si a eventualelor recomandări
  • răspunderea la întrebarile de pe forum din partea studenţilor
  • corectarea temei în maxim o lună de la expirarea termenului (două săptămâni în cazul primei teme si până la începerea sesiunii pentru a ultima temă)

Pentru fiecare temă, tester-ul se publică o dată cu publicarea enunţului (chiar dacă nu este încă pus pe vmcheker).

:!: Verificarea temelor de copiere se va face atunci cand se corectează temele, de către responsabilii fiecărei teme.

Instrucțiuni pt configurarea temei pe vmchecker:

Dezvoltarea unei teme și planificarea ei

Dacă tema este una nouă, făcută de la zero
  1. să vă apucați din timp - iulie pentru prima temă și august pentru proiect (ambele etape).
  2. faceți 1-2 meetings prin care să stabiliți tematica temei. Aici trebuie sa decideți și cum s-ar plia tematica pe principiile POO, mai ales pe moștenire, care trebuie să apară obligatoriu în prima temă (și în restul temelor), și cum pot fi aplicate design patterns (la proiect / temele 2 și 3). Ideea trebuie să fie cât mai practică, să se muleze pe chestii din viața reală (fără boardgames sau jocuri, s-a dovedit la ”Sheriff of Nottingham” că nu este o tactică bună, deoarece studenții stau mai mult să înțeleagă regulile jocului decât să gândească implementarea).
  3. să vă faceți un canal de Slack privat echipei temei / proiectului.
  4. lead-ul temei / proiectului să împartă task-uri celor care contribuie la temă / proiect, adică să spună cu ce ocupă fiecare (implementare, teste, cerință).
  5. să se facă meetings regulate (din 2 în 2 săptămâni, cu eveniment în Google Calendar pentru toți din echipa temei / proiectului), în care se va discuta statusul curent și ce ar mai trebui făcut.
  6. implementarea trebuie pusă pe un repository privat, la care să aibă acces doar cei care contribuie la temă / proiect, pentru a evita leak-uri (de exemplu un membru random din echipă să ia tema, să o modifice și să o vândă). Implementarea va putea fi făcută publică în cadrul echipei doar după deadline-ul hard. Aceasta nu va fi niciodată publică studenților, având în vedere că tema / proiectul pot fi reciclate în viitor.
  7. cei de la implementare vor lucra pe un branch separat (fiecare cu branch-ul său), fiecare va face pull request.
  8. lead-ul și cu cei de la implementare vor verifica funcționalitățile codului temei / proiectului, încât logica codului să fie corespunzătoare cerinței. La final, după ce codul este terminat, se vor verifica manual testele, pentru a vedea dacă este ceva greșit în logica codului.
  9. cei de la implementare vor redacta cerința, având în vedere că ei știu cel mai bine implementarea, și vor da către restul echipei temei / proiectului la review amănunțit (de redactat cerința într-un Google Docs, pentru a putea adăuga fiecare comentarii și sugestii de schimbare).
  10. când tema / proiectul (fiecare etapă) este lansat, trebuie configurat vmchecker-ul. În acest caz, vă inspirați din configurația temelor din trecut de pe vmchecker. La prima temă trebuie să creați instanța pentru anul universitar, pașii sunt aici.
  11. să verificați forumul zilnic și să răspundeți cât mai repede posibil (nu lăsați o intervenție fără răspuns, răspundeți prompt în maxim 4-6 ore la aceasta). Dacă aveți un răspuns complex, de care nu sunteți siguri, să vă consultați cu echipa temei respective pe Slack. Pe forum răspundeți obiectiv, clar și concis, fără mișto-uri și aroganțe sau că nu puteți răspunde la întrebarea respectivă (mai puțin dacă are direct legătură cu implementarea lor, aici le puteți răspunde în privat), așa ceva nu este permis (și nici nu vreți să fiți faimoși pe Overheard).
  12. faceți un meeting între deadline-ul soft și cel hard pentru corectarea temei / etapei de la proiect, unde veți stabili baremul, cine corectează teme și asignarea temelor fiecărui corector. Să vă apucați imediat după deadline-ul hard. Este de preferat să dați rezultatele la maxim o săptămână (poate două) după deadline-ul hard, pentru a avea la timp feedback pentru temele viitoare.
Dacă tema este una reciclată din trecut
  1. trebuie analizate ce a mers prost în trecut la tema respectivă din feedbacks și din intervențiile de pe forum, ale căror răspunsuri vor fi integrate în cerința adaptată a temei respective.
  2. nu faceți tema respectivă mai grea decât în trecut sau mai ambiguă (exemplu: versiunea din 2019 a temei ”Sheriff of Nottingham” a fost mult mai grea decât versiunea din 2018 și cu mai multe probleme).
  3. dacă a fost o temă cu foarte multe probleme (de exemplu ”Sheriff of Nottingham”): ori reciclați alta, ori faceți alta de la zero. Nu merită să chinuim studenții cu o temă care a cauzat multe probleme.
  4. punctele 3 - 12 de mai sus.

Corectare teme

Aici aveți un ghid detaliat pentru corectarea temelor.

  • vă conectați la poo@elf.cs.pub.ro
    • structura de foldere care vă interesează: vmchecker-storer/repo/tema{N}/studentX/current
    • in folderul current
      • grade.vmr - aici treceţi toate observaţiile legate de tema şi vă semnaţi
      • run-stdout.vmr - output-ul checker-ului
    • Recomandare: pentru fiecare temă, scrieți feedbackul într-un alt fișier, iar după ce corectați toate temele mutați conținutul în fișierele grade.vmr corespunzătoare (pot apărea schimbări de barem pe măsura ce corectați). Scriptul de copiere îl găsiți în repository în directorul moss/.
    • Recomandare: pentru a putea naviga ușor prin directoarele și prin fisierele din mașina virtuală de pe VMChecker, puteți să vă conectați prin SSH la mașina virtuală folosind Visual Studio Code, prin opțiunea de Remote SSH, astfel puteți să vă uitați ușor pe fișierele din temă când o corectați și să treceți observațiile legate de temă.

Catalog

  • Se utilizează un spreadsheet public, disponibil în drive
  • Fiecare asistent trece notele semigrupelor sale la sfârşitul fiecărei săptămâni

Teste săptămânale (OUTDATED)

  • Se dau din materia laboratorului precedent
  • Scopul lor este de a verifica înțegerea noțiunilor din labul precedent, nu să le dăm întrebări capcană care să le testeze inteligența sau timpul de răspuns.
  • 1-2 întrebari cu răspuns liber, durata de maxim 10 minute.
  • Avem un channel pe slack pentru aceste teste și aici puteți să discutați întrebări sau să cereți feedback pentru o întrebare pe care doriți să o dați.
  • Avem deja un pool de întrebări din alți ani, iar dacă propuneți altele, vă rugăm să le treceți aici. Dacă dați o întrebare existentă completați aici laboratorul la care ați dat-o (e.g. Lu 10-12).
  • Este util pentru ei să discutați soluția întrebărilor date imediat după test, înainte de a începe discuția laboratorului curent. Nu este timp să corectați și să discutați ce a făcut fiecare individual.
  • Pentru a eficientiza, puteti sa veniti cu intrebarea printata, mai ales daca contine snippet de cod, si ei scriu si direct pe acea foaie.

Test final

  • Dacă vă vin idei de întrebări pentru testul grilă, vă încurajăm să le treceți în documentul din drive
  • Este necesară prezenţa a cel puţin 3 asistenţi pentru supraveghere şi corectare
  • Subechipa acestui test se va ocupa cu alegerea întrebărilor și generarea testului

Tutoring

  • Echipa separata fata de cea de laborator
  • Pentru mai multe detalii vezi in regulament

Convenţii de redactare

poo-ca-cd/intern/regulament.txt · Last modified: 2021/10/19 21:50 by florin.mihalache
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0