O ensino da primeira disciplina de programação corresponde a uma tarefa de grande responsabilidade pelo seu carácter marcante nos alunos em relação à atitude futura face ao desenvolvimento de programas. Ao longo da evolução da jovem área científica de Informática, o ensino da primeira disciplina de programação tem sido alvo de múltiplos debates e discussões acesas. Não existe consenso na comunidade científica sobre a melhor forma de abordar o ensino da primeira disciplina de programação, existindo várias linhas, defendidas, por vezes, por argumentos que tocam mais o “religioso” do que o científico.
Num mundo em rápida evolução tecnológica, adoptámos por abordar a introdução à programação através da apresentação rigorosa dos principais conceitos subjacentes à programação, conceitos esses que tendem a ser estáveis, ilustrando-os recorrendo a uma linguagem com uma sintaxe mínima, e preparando assim os alunos para lidar com a evolução tecnológica que estará omnipresente na sua vida profissional. Consideramos que o domínio da programação transcende o conhecimento de linguagens específicas, necessitando de uma compreensão profunda de conceitos e da natureza da computação.
Neste livro apresentamos uma abordagem à programação baseada em abstracções, tanto de abstracções de procedimentos, como de abstracções de dados, fornecemos uma abordagem disciplinada à actividade de programação e, simultaneamente, transmitimos conceitos genéricos relacionados com linguagens de programação. Apresentamos e discutimos comparativamente diversos paradigmas de programação, incluindo a programação funcional, a programação imperativa e a programação por objectos.
Este livro é o resultado da evolução do ensino de uma primeira disciplina de programação no Departamento de Engenharia Informática do Instituto Superior Técnico desde o ano lectivo de 1998/99. Paralelamente com o ensino de conceitos de programação, pretende-se desenvolver nos alunos a capacidade mental para lidar com conceitos essenciais de programação como a recursão, abstracções e processamento simbólico.
João Pavão Martins obteve o doutoramento em Inteligência Artificial pela “State University of New York at Buffalo” em 1983 e a agregação em Engenharia Informática pela Universidade Técnica de Lisboa em 1991. É Professor Catedrático no Instituto Superior Técnico. Foi um dos proponentes da Licenciatura em Engenharia Informática e de Computadores (LEIC) do IST, tendo sido o seu coordenador durante cinco anos. Tem leccionado cadeiras de introdução à programação desde 1980, preocupando-se com o ensino de programação disciplinada. É autor de dois livros de introdução à programação, um deles publicado nos Estados Unidos. É investigador no Grupo de Inteligência Artificial do IST, inserido no IDMEC, desenvolvendo a sua investigação nas áreas de Representação do Conhecimento e Revisão de Crenças. Foi compilador de dois livros e autor de múltiplos artigos científicos.
Maria dos Remédios Cravo obteve o doutoramento em Engenharia Electrotécnica e de Computadores, área de Inteligência Artificial, pelo Instituto Superior Técnico, em 1992. Actualmente é Professora Auxiliar no Departamento de Engenharia Informática do IST, onde lecciona, para além da disciplina de Fundamentos de Programação, várias disciplinas da área de Inteligência Artificial. É investigadora do Grupo de Inteligência Artificial do IST, inserido no IDMEC, desenvolvendo a sua investigação nas áreas de Raciocínio e Revisão de Crenças, tendo nos últimos tempos estudado a influência das emoções nestes processos. Tem publicado artigos científicos nestas áreas. Desde 1987 que se encontra envolvida no ensino de disciplinas de introdução à programação, dando ênfase aos seus conceitos fundamentais. É co-autora de um livro com exercícios resolvidos de programação publicado nos Estados Unidos.