Lucrarea prezintă principalele tipuri abstracte de date: listă, stivă, coadă, arbore, graf precum si unele metode generale de rezolvare a problemelor cum ar fi: divide et impera, backtracking sau programare dinamică. Algoritmii descrisi sunt analizati din punc de vedere al eficientei si sunt însotiti de justificări referitoare la corectitudinea lor. Sunt puse în evidentă metode de dezvoltare modulară a aplicatiilor de programare, mecanisme de abstractizare procedurală sau de abstractizare a datelor. Prezentarea teoretică este însotită de exemple cu grade de dificultate diferite. (254 pagini)