This shows you the differences between two versions of the page.
poo-ca-cd:administrativ:barem_teme [2024/11/10 17:28] florian_luis.micu [Don'ts] |
poo-ca-cd:administrativ:barem_teme [2024/11/10 17:58] (current) florian_luis.micu [Don'ts] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Indicații pentru teme ===== | ===== Indicații pentru teme ===== | ||
+ | |||
+ | * Autori: [[miculuis1@gmail.com | Florian-Luis Micu]], [[sorinabuf@gmail.com | Sorina-Anamaria Buf]], [[stefancocioran@gmail.com | Ștefan Cocioran]] | ||
+ | * Ultima modificare: 10 noiembrie 2024 | ||
Temele urmăresc exersarea cunoștințelor și abilităților voastre. | Temele urmăresc exersarea cunoștințelor și abilităților voastre. | ||
Line 13: | Line 16: | ||
* Fiți consecvenți unui [[:poo-ca-cd:administrativ:coding_style_ide|coding style]]. | * Fiți consecvenți unui [[:poo-ca-cd:administrativ:coding_style_ide|coding style]]. | ||
* Când scrieți README-ul pentru teme: | * Când scrieți README-ul pentru teme: | ||
- | * Încercați să creați README-uri care să reflecte structura internă a proiectelor voastre (ierarhii de clase, ierarhii de pachete), dar și interacțiunea dintre entități mai ales când descrieți cum ați reuși să rezolvați o cerință din temă. | + | * Încercați să creați README-uri care să reflecte structura internă a proiectelor voastre (ierarhii de clase, ierarhii de pachete), dar și interacțiunea dintre entități mai ales când descrieți cum ați reușit să rezolvați o cerință din temă. |
* Nu reproduceți cerințele din enunț și/sau comentariile din cod. | * Nu reproduceți cerințele din enunț și/sau comentariile din cod. | ||
* Exprimați-vă concentrat = clar și concis. | * Exprimați-vă concentrat = clar și concis. | ||
Line 63: | Line 66: | ||
<note tip> | <note tip> | ||
- | Pentru clarificări vă recomandăm să folosiți forum-ul aferent temei, urmând ca întrebarea voastră să primească un răspuns cât de curând. Evitați întrebările foarte specifice care oferă hint-uri la soluționarea temei. De asemenea, verificați forumul periodic pentru update-uri și pentru întrebări ca să nu se creeze intrebări duplicate.</note> | + | Despre forum: |
+ | * Pentru clarificări vă recomandăm să folosiți forum-ul aferent temei, urmând ca întrebarea voastră să primească un răspuns cât de curând (să țineți cont că în weekend se poate răspunde cu o întârziere mai mare). | ||
+ | * Evitați întrebările foarte specifice care oferă hint-uri la soluționarea temei. | ||
+ | * De asemenea, verificați forumul periodic pentru update-uri și pentru întrebări ca să nu se creeze intrebări duplicate. | ||
+ | </note> | ||
+ | |||
+ | <note warning> | ||
+ | Despre programarea în stil C: | ||
+ | * Folosiți cât mai multe concepte POO (moștenire, polimorfism, upcast, overloading, overriding etc.) | ||
+ | * Gândiți temele ca entități care interacționează cu alte entități pentru a programa în stilul POO. | ||
+ | * Unele funcționalități pot fi doar niște metode, dar pot apărea următoarele probleme: | ||
+ | * Să spunem că aveți de implementat o funcționalitate care printează //eating//, //speaking//, //playing// într-un mod special pentru fiecare tip de animal care vă este oferit la input. | ||
+ | * Acestea pot fi reprezentate direct ca metode specifice pe care le puteți apela în cadrul unui switch-case. | ||
+ | * Ce faceți dacă trebuie să mai introduceți câteva animale? Ar trebui să creați noi metode în clasa voastră unde procesați logica ceea ce ar face fișierul greu de citit. | ||
+ | * Ce faceți dacă trebuie să adăugați funcționalități noi pentru fiecare tip de animal? Din nou, adăugăm foarte multe metode, ceea ce ar reduce lizibilitatea codului. | ||
+ | * De asemenea, puteți să aveți foarte mult cod duplicat care ar fi putut fi encapsulat într-o clasă Animal care ar fi putut fi moștenită de clasele voastre specializate (ex. Wolf, Dog, Cat etc.). | ||
+ | * Totodată dacă nu aplicați corect conceptele POO este posibil să ajungeți la situații în care apelați instance of ca să verificați ce clase trebuie să apelați ceea ce vă reduce codul la o formă de cod scrisă în C (soluția ar fi să folosiți upcasting și o metodă generică suprascrisă conform laboratului în care vi se prezintă upcast/downcast, moștenire, overloading, overriding). | ||
+ | * Dacă analizați situațiile de mai sus vă puteți da seama că limbajele de tip POO vă reduc drastic din cod și vă oferă extensibilitate pe viitor, adică orice programator vă poate extinde codul mult mai ușor dacă va fi nevoie de feature-uri noi în proiect. | ||
+ | </note> | ||
==== Depunctări generale pentru teme ==== | ==== Depunctări generale pentru teme ==== | ||
Temele pe care le primim **trebuie să compileze și să ruleze** pentru a avea posibilitatea de punctaj non-zero. | Temele pe care le primim **trebuie să compileze și să ruleze** pentru a avea posibilitatea de punctaj non-zero. | ||
- | Vom aplica mici depunctări legate de calitatea codului și a abordărilor temelor. Din 10 puncte: | + | Vom aplica depunctări legate de calitatea codului și a abordărilor temelor. Din 10 puncte: |
{{:poo-ca-cd:administrativ:barem_1.png?600|}} | {{:poo-ca-cd:administrativ:barem_1.png?600|}} |