| Previous | Table of Contents | Next | 
Cartea noastra isi propune in primul rand sa fie un curs si nu o "enciclopedie" 
  de algoritmi. Pornind de la structurile de date cele mai uzuale si de la analiza 
  eficientei algoritmilor, cartea se concentreaza pe principiile fundamentale 
  de elaborare a algoritmilor: greedy, divide et impera, programare dinamica, 
  backtracking. Interesul nostru pentru inteligenta artificiala a facut ca penultimul 
  capitol sa fie, de fapt, o introducere - din punct de vedere al algoritmilor 
  - in acest domeniu.
  
  Majoritatea algoritmilor selectati au o conotatie estetica. Efortul necesar 
  pentru intelegerea elementelor mai subtile este uneori considerabil. Ce este 
  insa un algoritm "estetic"? Putem raspunde foarte simplu: un algoritm 
  este estetic daca exprima mult in cuvinte putine. Un algoritm estetic este oare 
  in mod necesar si eficient? Cartea raspunde si acestor intrebari.
  
  In al doilea rand, cartea prezinta mecanismele interne esentiale ale limbajului 
  C++ (mosteniri, legaturi dinamice, clase parametrice, exceptii) si trateaza 
  implementarea algoritmilor in conceptul programarii orientate pe obiect. Totusi, 
  aceasta carte nu este un curs complet de C++.
  
  Algoritmii nu sunt pur si simplu "transcrisi" din pseudo-cod in limbajul 
  C++, ci sunt reganditi din punct de vedere al programarii orientate pe obiect. 
  Speram ca, dupa citirea cartii, veti dezvolta aplicatii de programare orientata 
  pe obiect si veti elabora implementari ale altor structuri de date. Programele 
  au fost scrise pentru limbajul C++ descris de Ellis si Stroustrup in "The 
  Annotated C++ Reference Manual". Acest limbaj se caracterizeaza, in principal, 
  prin introducerea claselor parametrice si a unui mecanism de tratare a exceptiilor 
  foarte avansat, facilitati deosebit de importante pentru dezvoltarea de biblioteci 
  C++. Compilatoarele GNU C++ 2.5.8 (UNIX/Linux) si Borland C++ 3.1 (DOS) suporta 
  destul de bine clasele parametrice. Pentru tratarea exceptiilor se pot utiliza 
  compilatoarele Borland C++ 4.0 si, in viitorul apropiat, GNU C++ 2.7.1.
  
  Fara a face concesii rigorii matematice, prezentarea este intuitiva, cu numeroase 
  exemple. Am evitat, pe cat posibil, situatia in care o carte de informatica 
  incepe - spre disperarea ne-matematicienilor - cu celebrul "Fie ... ", 
  sau cu o definitie. Am incercat, pe de alta parte, sa evitam situatia cand totul 
  "este evident", sau "se poate demonstra". Fiecare capitol 
  este conceput fluid, ca o mica poveste, cu putine referinte si note. Multe rezultate 
  mai tehnice sunt obtinute ca exercitii. Algoritmii sunt prezentati intr-un limbaj 
  pseudo-cod compact, fara detalii inutile. Am adaugat la sfarsitul fiecarui capitol 
  numeroase exercitii, multe din ele cu solutii.
  
  Presupunem ca cititorul are la baza cel putin un curs introductiv in programare, 
  nefiindu-i straini termeni precum algoritm, recursivitate, functie, procedura 
  si pseudo-cod. Exista mai multe modalitati de parcurgere a cartii. In functie 
  de interesul si pregatirea cititorului, acesta poate alege oricare din partile 
  referitoare la elaborarea, analiza, sau implementarea algoritmilor. Cu exceptia 
  partilor de analiza a eficientei algoritmilor (unde sunt necesare elemente de 
  matematici superioare), cartea poate fi parcursa si de catre un elev de liceu. 
  Pentru parcurgerea sectiunilor de implementare, este recomandabila cunoasterea 
  limbajului C.
  Cartea noastra se bazeaza pe cursurile pe care le tinem, incepand cu 1991, la 
  Sectia de electronica si calculatoare a Universitatii Transilvania din Brasov. 
  S-a dovedit utila si experienta noastra de peste zece ani in dezvoltarea produselor 
  software. Colectivul de procesare a imaginilor din ITC Brasov a fost un excelent 
  mediu in care am putut sa ne dezvoltam profesional. Le multumim pentru aceasta 
  celor care au facut parte, alaturi de noi, din acest grup: Sorin Cismas, Stefan 
  Jozsa, Eugen Carai. Nu putem sa nu ne amintim cu nostalgie de compilatorul C 
  al firmei DEC (pentru minicalculatoarele din seria PDP-11) pe care l-am "descoperit" 
  impreuna, cu zece ani in urma.
  
  Ca de obicei in astfel de situatii, numarul celor care au contribuit intr-un 
  fel sau altul la realizarea acestei carti este foarte mare, cuprinzand profesorii 
  nostri, colegii de catedra, studentii pe care am "testat" cursurile, 
  prietenii. Le multumim tuturor. De asemenea, apreciem rabdarea celor care ne-au 
  suportat in cei peste doi ani de elaborare a cartii.
  
  Speram sa cititi aceasta carte cu aceeasi placere cu care ea a fost scrisa.
Brasov, ianuarie 1995
  Razvan Andonie
  Ilie Garbacea
| Previous | Table of Contents | Next |