Examen PP (sesiunea 2021)

Examenul la PP se va desfasura online, si va consta intr-o proba de programare ce va contine:

  • (L/P) o intrebare legata de Calcul Lambda sau un exercitiu de programare din Prolog
  • (E1) un exercitiu de programare functionala scurt
  • (E2,E3) doua exercitii de programare functionala elaborate

Mentiuni:

  • tematica subiectului (L/P) nu va fi la alegere ci va fi stabilita aleator.
  • intrebarile nu se vor modifica in timpul examenului.
  • exista posibilitatea ca, pe langa cele 4 intrebari, studentii sa primeasca alte intrebari din solutia lor la proiect, sau din laboratoarele rezolvate pe parcursul semestrului.
  • examenul va fi open-book. Puteti consulta resurse online si folosi functii din biblioteca. Daca vor exista restrictii in acest sens, acestea vor fi mentionate explicit in timpul examenului.
  • examenul se rezolva individual, prin toate mijloacele ce tin exclusiv de studentul examinat. Orice suspiciune vizavi de asistenta externa in timpul examenului poate prelungi durata acestuia, precum si numarul de intrebari.

Punctaje si promovare:

  • Subiectele (L/P) si (E1) vor valora fiecare cate 1p, si vor fi punctate binar (1-rezolvat, 0-nerezolvat).
  • Subiectele (E2) si (E3) vor valora fiecare cate 2p, si vor fi punctate: 0(nerezolvat), 1(partial), 2(complet).
  • La examen se pot obtine maxim 6p ce reprezinta echivalentul a 40% din nota finala la PP. Sunt necesare minim 3p pentru promovare (50% din valoarea examenului).

Organizare si durata:

  • Examenul se va desfasura pe durata a trei zile (6,7,8 iunie).
  • In fiecare zi, examinarea va incepe la ora 10:00.
  • Studentii vor putea stabili ziua in care doresc sa participe la examen, in limita locurilor disponibile, pe principiul “primul-venit, primul-servit”, folosind un spreadsheet care va fi publicat ulterior.
  • Un examen va dura 20min (durata fixa!) si se va desfasura intr-un slot de 25 min.
  • Programarea studentilor din fiecare zi, pe sloturi, va fi afisata cu 24h inaintea examenului din ziua respectiva.

Exemplu de examen

(L/P) Ilustrati pasii de evaluare normala pentru expresia $ (\lambda x.(x\;x)\;(\lambda y.y\;\lambda z.z))$

(E1) Scrieti o functie care primeste o lista de string-uri si transforma in uppercase ultimul caracter din fiecare string.

(E2) Definiti tipul de date abstract polimorfic Stack, precum si operatiile push si pop. Inrolati tipul in clasa Show. Scrieti o functie care primeste doua stive sortate si intoarce interclasarea lor.

(E3) Definiti lista infinita a aproximarilor lui $ e^x$ , folosind relatia: $ e^x = \displaystyle\sum_{n = 0}^\infty \frac{x^n}{n!}$