Scopul cursului „Utilizarea tehnicilor clasice de programare” este de a familiariza studenții cu metode consacrate în informatică și algoritmică, care stau la baza rezolvării eficiente a problemelor complexe. Cursul urmărește să dezvolte atât gândirea algoritmică, cât și abilitățile practice de implementare a soluțiilor, utilizând strategii bine fundamentate și validate de-a lungul timpului.

Conform curriculei, pe parcursul cursului se vor studia:

1. Metode de optimizare combinatorială

  • Metoda „Simulated Annealing” – tehnică inspirată din procesele fizice de răcire, folosită pentru găsirea unor soluții aproape optime în probleme complexe.
  • Rezolvarea problemei rucsacului cu Tabu Search – algoritm euristic de explorare a soluțiilor, ce utilizează o memorie de tip „tabu” pentru a evita revenirea la soluții anterioare.

2. Metode de căutare

  • Căutarea informată – utilizarea euristicilor pentru a orienta căutarea în spațiul de stări.
  • Strategia „întâi cel mai bun” – selecția drumului cel mai promițător pe baza unei funcții de evaluare.
  • Căutarea Greedy – alegerea locală a celei mai bune opțiuni în fiecare pas, cu scopul de a obține o soluție globală acceptabilă.

3. Metode de sortare

  • Bubble Sort – metoda clasică de sortare prin comparări succesive și interschimbări.
  • Selection Sort – alegerea repetată a minimului din sublista rămasă.
  • Insertion Sort – inserarea elementelor într-o listă parțial ordonată.
  • Merge Sort – sortare prin interclasare, utilizând paradigma „divide et impera”.
  • Quick Sort – sortare rapidă bazată pe pivot și partiționare.
  • Cifrul DES și funcții hash – noțiuni elementare de criptografie și securitate, asociate proceselor de manipulare a datelor.

4. Programarea dinamică (DP)

  • Relațiile de recurență – fundamentul teoretic al DP.
  • Aplicații DP – probleme clasice (de ex. drumuri minime, rucsac, secvențe).
  • Ce determină aplicabilitatea DP? – condiții și criterii de utilizare.
  • Tiparul general DP – pașii de construcție a soluției prin memorarea subproblemelor.