Sinopse
Este livro apresenta os principais conceitos das linguagens de programação imperativas e centradas em objectos, para além das estruturas de dados e algoritmos usados no dia a dia de um programador, através da linguagem java.
Numa primeira parte são vistos conceitos fundamentais como memória, algoritmo, recursão, classes, objectos, ficheiros e excepções através de vários exemplos.
Numa segunda parte são introduzidas algumas técnicas da engenharia de software que permitem controlar a inevitável complexidade inerente ao desenvolvimento de programas mais complexos, nomeadamente a programação por contrato e o processo de especificação.
Finalmente, numa terceira parte, são descritos algoritmos comuns (por exemplo, como ordenar um conjunto de valores, quando se utiliza a programação dinâmica) e estruturas de dados (listas, pilhas, filas, conjuntos, árvores, tabelas, heaps).