This shows you the differences between two versions of the page.
pp:21:teme:haskell-corectare [2021/05/16 19:07] mihnea.muraru |
pp:21:teme:haskell-corectare [2021/05/16 19:47] (current) mihnea.muraru [Sugestii de întrebări la prezentare] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Corectare Tema 2 ===== | ===== Corectare Tema 2 ===== | ||
+ | |||
+ | ==== Precizări ==== | ||
+ | |||
+ | Bonus-ul părții 1 (funcția ''circle'') trebuie **testată manual** (vezi mai jos). Prin urmare, checker-ul acordă maxim **110 puncte**. | ||
==== Depunctări ==== | ==== Depunctări ==== | ||
- | De marcat în spreadsheet, doar dacă ceva este în neregulă, următoarele rubrici: | + | De marcat în spreadsheet, atât pentru bonus-ul Părții 1, cât și dacă ceva este în neregulă, următoarele rubrici: |
- | * a | + | * **Recursivitate explicită (0--5)**: câte dintre funcțiile ''%%gameAsString%%'', ''%%successors%%'', ''%%suitableSuccs%%'', ''%%insertSuccs%%'' și ''%%extractPath%%'' sunt implementate cu recursivitate explicită. |
- | | + | * **circle (0/0.5/1)**: pentru **bonus-ul Părții 1**, singurul aspect **testat manual**, treceți: |
+ | * **1**, dacă au implementat corect funcția ''circle''. Trebuie să vă demonstreze live că target-ul realizează o **rotație completă** în jurul centrului, pe o traiectorie care seamănă cât mai mult cu un **cerc** (nu e necesar un cerc perfect); | ||
+ | * **0.5**, dacă face o rotație completă, dar traiectoria e **evident diferită de un cerc** (de exemplu, dreptunghi); | ||
+ | * **0**, dacă **nu** realizează o rotație completă. | ||
+ | * **Euristică trivială (0/1)**: pentru **bonus-ul Părții 2**, treceți **1** dacă au definit o euristică trivială, de forma h(x) = 0 sau altă constantă. | ||
==== Sugestii de întrebări la prezentare ==== | ==== Sugestii de întrebări la prezentare ==== | ||
- | * a | + | * Partea 1 (''Basics.hs'') |
+ | * Cum au definit tipul ''Game''. | ||
+ | * Cum au implementat reprezentarea ca ''String'' (funcția ''gameAsString''). | ||
+ | * Dacă au avut nevoie să instanțieze vreo **clasă** pentru tipul ''Game'' (în afară de ''Show'', instanțiată în schelet). | ||
+ | * Cum a fost utilizat **currying-ul** pentru definirea behavior-urilor (de exemplu, la funcția ''bounce''). | ||
+ | * Partea 2 (''Search.hs'') | ||
+ | * Cum au definit tipul ''Node''. | ||
+ | * Cum au instanțiat clasele ''Eq'' și ''Ord'' pentru tipul ''Node''. | ||
+ | * Cum au definit funcțiile de acces ''nodeState'', ''nodeParent'' etc. | ||
+ | * Cum au instanțiat clasa ''ProblemState''. | ||
+ | * Cum a fost exploatată **evaluarea leneșă**. | ||
+ | * General | ||
+ | * Unde au folosit **funcționale**. | ||
+ | * Unde au folosit **list comprehensions** (nu era obligatoriu, dar încurajat). | ||
+ |