Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pa:laboratoare:laborator-00 [2026/02/25 18:59]
darius.neatu [Exercitii]
pa:laboratoare:laborator-00 [2026/02/27 18:59] (current)
aureliu.antonie [Exercitii]
Line 16: Line 16:
  
 ====  De ce PA? ====  ====  De ce PA? ==== 
-> "​Pentru că scrie în orar." (Radu Nichita, 2021) 
-> "​Pentru că m-a pus mama să termin ACS." (Cristian Olaru, 2021) 
-> "​Pentru că nu există seriale pe Netflix mai lungi decât laburile lui Darius."​ (Miruna Banu, 2021)  
-> "Gigel be with you!" (Darius-Florentin Neațu, 2017) 
- 
- 
  
 La PA se studiază principalele categorii de algoritmi, care reprezintă baza de gândire pentru un inginer în proiectarea și dezvoltarea viitoarelor sisteme, pornind de la probleme abstracte (ex. o problemă de tip parcurgere pe un graf neorientat se poate mapa pe găsirea unor sugestii de prietenie în rețele sociale precum Facebook). La PA se studiază principalele categorii de algoritmi, care reprezintă baza de gândire pentru un inginer în proiectarea și dezvoltarea viitoarelor sisteme, pornind de la probleme abstracte (ex. o problemă de tip parcurgere pe un graf neorientat se poate mapa pe găsirea unor sugestii de prietenie în rețele sociale precum Facebook).
Line 36: Line 30:
  
 ===== Limbaje de programare ===== ===== Limbaje de programare =====
-La PA este permisă folosirea ​limbajelor ​de programare: **C++** / **Java** / **C** / **Rust** / **Python**. ​+La PA este permisă folosirea ​următoarelor limbaje ​de programare: **C++** / **Java** / **Rust** / **Python**. ​
  
-<​note>​ +Veți discuta cu asistentul în acest laborator ​și veți primi recomandăriîn funcție de experiențele anterioare ale studentului.
-Din cauză că aproape orice algoritm studiat se bazează pe folosirea unor structuri de date implementate deja, **NU** recomandăm folosirea limbajului C, întrucât bibliotecile standard nu le conțin. +
-</​note>​ +
- +
-===== De ce C++? ===== +
-STL (Standard Template Library) din C++ reprezintă o bibliotecă generică de structuri de date șalgoritmi, care facilitează implementarea rapidă ​și eficientă a algoritmilor studiați.  +
- +
-===== De ce Java? ===== +
-Asemănător C++Java Collections oferă implementarea tuturor structurilor și algoritmilor necesari la PA. De asemenea, a fost un limbaj deja studiat la POO.+
  
 ===== De ce nu alte limbaje? ===== ===== De ce nu alte limbaje? =====
  
-Considerăm că acestea sunt 4 limbaje foarte folosite și că, prin funcționalitățile oferite, studentul se poate concentra efectiv pe implementarea algoritmilor și nu pe alte aspecte legate de limbaj. De asemenea, infrastructura necesară la teme / teste este asigurată doar pentru cele 4 limbaje menționate. NU este permisă folosirea altor limbaje la testul practic.+Considerăm că acestea sunt 4 limbaje foarte folosite și că, prin funcționalitățile oferite, studentul se poate concentra efectiv pe implementarea algoritmilor și nu pe alte aspecte legate de limbaj. De asemenea, infrastructura necesară la testele practice ​este asigurată doar pentru cele 4 limbaje menționate. ​Așadar, **NU** este permisă folosirea altor limbaje la testul practic.
  
 ===== Coding Style ===== ===== Coding Style =====
 Recomandăm următoarele conveții de coding style: Recomandăm următoarele conveții de coding style:
  
-* [[https://​google.github.io/​styleguide/​cppguide.html | Google C++ Style Guide]]+  ​* [[https://​google.github.io/​styleguide/​cppguide.html | Google C++ Style Guide]]
  
-* [[https://​google.github.io/​styleguide/​javaguide.html | Google Java Style Guide]]+  ​* [[https://​google.github.io/​styleguide/​javaguide.html | Google Java Style Guide]]
  
-* [[TODO TODO Rust Style Guide]]+  ​* [[https://​doc.rust-lang.org/​style-guide/​index.html ​The Rust Style Guide]]
  
-* [[TODO TODO Python Style Guide]]+  ​* [[https://​google.github.io/​styleguide/​pyguide.html ​Google ​Python Style Guide]]
  
  
Line 68: Line 54:
 ====== Desfășurare laborator ===== ====== Desfășurare laborator =====
  
-În prima săptămână se va clona repo-ul de laborator conform instrucțiunilor de pe pagina [[https://​ocw.cs.pub.ro/​courses/​pa/​laboratoare/​pa-lab |pa-lab]]. În fiecare săptămână se rulează comanda "git pull" pentru obținerea ​scheletului ​actualizat înainte de fiecare laborator.+În prima săptămână se va clona repo-ul de laborator conform instrucțiunilor de pe pagina [[https://​ocw.cs.pub.ro/​courses/​pa/​laboratoare/​pa-lab |pa-lab]]. În fiecare săptămână se rulează comanda "git pull" pentru obținerea ​conținutului ​actualizat înainte de fiecare ​laborator. 
 + 
 +Secțiunile de **Algoritmi** / **Exerciții ** / **Diverse** reprezintă seturi de probleme grupate pe nivele de dificultate (de la ușor la greu). Recomandăm rezolvarea tuturor problemelor propuse, în ordinea propusă, pentru înțelegerea algoritmilor studiați. 
 + 
 +  * **Algoritmi**:​ Secțiunea aceasta conține descrierea și implementarea concretă a unor algoritmi standard în limbajele menționate. Reprezintă implementarea suportului teoretic din laborator.
  
-Secțiunile de **Exerciții ** / **Bonus** / **Extra** reprezintă seturi ​de probleme ​grupate pe nivele ​de dificultate (de la ușor la greu). Recomandăm rezolvarea tuturor exercițiilor propuse, pentru înțelegerea algoritmilor studiați.+  * **Exerciții**: Secțiunea aceasta conține un set de 3-5 probleme ​folosite în partea ​de prezentări a laboratorului.
  
 +  * **Probleme diverse**: Secțiunea aceasta conține un set larg probleme din aceeași tematică pe care le recomandăm să le lucrați pentru a vă pregăti și consolida cunoștințele algoritmice. Acestea pot fi utile pentru pregătirea evaluărilor (scrise sau teste practice) de la PA.
  
 ===== Exercitii ===== ===== Exercitii =====
Line 154: Line 145:
  
 <spoiler Soluția 3> <spoiler Soluția 3>
-Hint: Soluția 2 nu este optimă! Se poate și $O(n)$, dar considerăm că este înafara ​scopului laboratorului 0.+Hint: Soluția 2 nu este optimă! Se poate și $O(n)$, dar considerăm că este în afara scopului laboratorului 0.
 </​spoiler>​ </​spoiler>​
  
-  * **Task02**: ​Discutați problema [[https://​leetcode.com/​problems/​sliding-window-maximum/​| Sliding Window Maximum]] ​și problema [[https://​leetcode.com/​problems/​longest-substring-without-repeating-characters| Longest Substring without repeating characters]]. Implementați și testați cel puțin o problemă.+  * **Task02**: ​Rezolvați problema [[https://​leetcode.com/​problems/​sliding-window-maximum/​| Sliding Window Maximum]]
  
   * **Task03**: Rezolvați problema [[https://​leetcode.com/​problems/​min-stack/​description/​| Min Stack]].   * **Task03**: Rezolvați problema [[https://​leetcode.com/​problems/​min-stack/​description/​| Min Stack]].
pa/laboratoare/laborator-00.1772038783.txt.gz · Last modified: 2026/02/25 18:59 by darius.neatu
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