Fernando Nunes Ferreira é Professor Catedrático da Faculdade de Engenharia da Universidade do Porto (FEUP), onde é docente desde 1972. Tem sido responsável por disciplinas de Introdução à Programação e de Computação Gráfica. Obteve o grau de Docteur-Ingénieur (1981) e o Diplôme d’Études Approfondies (1979), em Informática, pela École National Supérieur d’Informatique et de Mathematiques Appliquées de Grenoble (ENSIMAG), Grenoble, França. É membro da associação Eurographics e foi responsável do Grupo Computação Gráfica do INESC Porto, de 1985 a 1998. Tem participado em projectos nacionais e internacionais na área da Computação Gráfica e foi orientador de vários estudantes de pós-graduação. Os seus interesses científicos centram-se na Computação Gráfica, Realidade Virtual e Interacção Humano-Computador. É sub-Director da FEUP desde 2001, e foi Presidente do Departamento de Engenharia Electrotécnica de Computadores (DEEC/FEUP), de 1997 a 2001, Membro da Comissão Executiva da Fundação para a Computação Científica Nacional (FCCN), de 1994 a 1997 e Director do Centro de Computação da FEUP, de 1990 a 1996. António Fernando Coelho é Professor Auxiliar da Faculdade de Engenharia da Universidade do Porto (FEUP), ocupando as funções de docente universitário desde 1996. Doutorou-se em Engenharia Electrotécnica e de Computadores em 2006, na FEUP. Lecciona diversas disciplinas nas áreas da Introdução à Programação, Computação Gráfica, Interacção, Multimédia e Sistemas de Informação. É coordenador pedagógico do 1.º ano do Mestrado Integrado em Engenharia Informática e Computação da FEUP. É também investigador do INESC Porto, desenvolvendo actividades de investigação nas áreas da Computação Gráfica, dos Sistemas Geoespaciais e da Interacção Humano-Computador. Tem participado em projectos nacionais e internacionais e tem orientado vários estudantes de pós-graduação. É membro da associação Eurographics, tendo pertencido à Comissão Científica de diversas conferências nacionais e internacionais na área da Computação Gráfica (como a SIGGRAPH e a EUROGRAPHICS), foi presidente da Comissão Organizadora do Encontro Português de Computação Gráfica de 2005 e co-presidente da Comissão Científica do Encontro Português de Computação Gráfica de 2009.
Scheme
na descoberta da programação Fernando Nunes Ferreira António Fernando Coelho
5
Uma parte substancial desta obra tem sido utilizada na primeira unidade curricular de programação do curso de informática da Faculdade de Engenharia da Universidade do Porto (FEUP). Os trabalhos realizados no âmbito desta unidade curricular apoiam-se em plataformas onde se evidencia a linguagem Scheme, uma linguagem de programação pouco difundida em Portugal, apesar da sua larga utilização em importantes universidades americanas e europeias. Em Portugal, para além da FEUP, só conhecemos a sua utilização em cursos de informática do Instituto Superior Técnico (IST) da Universidade Técnica de Lisboa. Esta obra apresenta algumas características inovadoras, como um manual de apoio aos estudantes de programação, pois os autores tiveram a preocupação de ir ao encontro de novas atitudes pedagógicas, apostando no paradigma da aprendizagem activa, no qual o estudante é incentivado a ser o actor principal. Com este objectivo em vista, foi também incluído no DVD anexo todo o material necessário à realização das diversas actividades propostas. Não foi ignorada a crítica que classifica o Scheme como uma linguagem apenas para uso no ensino da programação, tendo sido reservado espaço para o estabelecimento de pontes entre esta linguagem e outras tecnologias importantes para a construção de software (testes unitários, desenvolvimento de GUI, programação 00, aplicações multimédia, jogos). Em termos de público-alvo, identificam-se os estudantes com interesse na iniciação à programação: estudantes do ensino superior, sobretudo, mas também estudantes do ensino secundário da área da informática.
110930-scheme NOVO_NOR.indd 5
11/10/12 15:35
6
Aprender programação com a linguagem Scheme é uma opção já com alguns anos em importantes universidades americanas (MIT, Yale e Indiana) e europeias. Na Faculdade de Engenharia da Universidade do Porto (FEUP), a utilização do Scheme teve lugar pela primeira vez em 1991, na Licenciatura de Gestão Industrial, e em 1994 na Licenciatura de Engenharia Informática e Computação. Em Portugal, fora da FEUP, apenas se conhece a sua utilização no Instituto Superior Técnico da Universidade Técnica de Lisboa. A simplicidade sintáctica desta linguagem permite que o esforço do estudante incida principalmente sobre a programação e não sobre as ferramentas de apoio à aprendizagem. Para combater o argumento de que o Scheme é sobretudo uma linguagem de aprendizagem de programação, procurou-se estabeler pontes entre o Scheme e outras tecnologias importantes para construção de software (testes unitários, desenvolvimento de GUI, programação 00, aplicações multimédia, jogos). Ficam assim garantidas a ligação do Scheme a outras disciplinas desta área e também a sua quota de espaço na resolução de problemas em ambiente “menos académico”. Numa altura em que tanto se fala na mudança de paradigma de ensino, aposta-se aqui no paradigma da aprendizagem, através do incentivo ao estudante para que “aprenda fazendo”. Procura-se atingir este objectivo através de um estilo de apresentação de conteúdos que promove uma aprendizagem activa, provocando a atenção, e estimulando a experimentação e a procura de respostas.
A inserção de perguntas ou de pequenos desafios, relacionados com os temas em presença, tem por objectivo despertar a atenção do estudante. O que acha desta estratégia de actuação?
110930-scheme NOVO_NOR.indd 6
11/10/12 15:35
7
Os conteúdos surgem organizados em Partes, compostas por módulos de uma a três dezenas de páginas, tanto quanto possível autónomos, para possibilitar uma sequência personalizada de aprendizagem e de aprofundamento de conhecimentos. Em sintonia com este estilo de apresentação, é também incluído um espaço de interacção ligado ao texto, designado por Laboratório Scheme, que permite o desenvolvimento e teste dos numerosos exemplos e exercícios propostos, sem que a atenção do estudante seja muito perturbada pela entrada em cena de outra plataforma de trabalho. Se está disposto e com vontade de enfrentar este desafio, vai ter que começar por instalar uma implementação do Scheme no seu computador. Combinado? Vamos utilizar o DrScheme, uma plataforma onde foram testados os muitos exemplos que irá encontrar neste percurso que agora inicia, uma plataforma de domínio público, disponível para sistemas Linux, Mac e Windows. Depois da instalação do DrScheme, está tudo preparado para poder experimentar o primeiro, entre muitos, exercícios de laboratório, no espaço que se segue.
Experimente o Laboratório Scheme, com o programa preenche-totoloto.
110930-scheme NOVO_NOR.indd 7
11/10/12 15:35
8
Entre parêntesis curvos, escreva o nome do programa e o número de apostas… (preenche-totoloto 4)
Actue o botão run… tudo recomeça e pode continuar a pedir apostas… Boa sorte!
110930-scheme NOVO_NOR.indd 8
11/10/12 15:35
9
Panorâmica da obra Esta obra é composta por um conjunto de Partes e Anexos, que agora são apresentados de uma forma resumida. Parte 1 – O essencial do Scheme Parte 2 – Recursividade Parte 3 – Abstracção de dados Parte 4 – Procedimentos como objectos de 1.ª classe Parte 5 – Abstracções com dados mutáveis Parte 6 – Scheme e outras tecnologias Parte 7 – Exercícios e projectos Anexo A – Principais procedimentos do Scheme Anexo B – Abstracção Janela Gráfica Anexo C – Reutilização de código Anexo D – Abstracção Tabuleiro
Parte 1 – O essencial do Scheme Módulo 1.1 – Dialogar com o Scheme através de expressões Módulo 1.2 – O Scheme não pode saber tudo! Módulo 1.3 – Projecto – Vamos acertar no totoloto! Módulo 1.4 – O Scheme sabe trabalhar com ângulos Módulo 1.5 – Tomar decisões com o Scheme Módulo 1.6 – Saber lidar com os erros! Módulo 1.7 – Introdução à programação através de abstracções Esta Parte faz uma breve introdução à linguagem Scheme, considerando os números, expressões, símbolos, definição de procedimentos e estruturas de selecção. Pelo meio, ainda poderá ver como se lida com um pequeno projecto – Vamos acertar no Totoloto. Numa situação desta natureza, é fundamental entender o
110930-scheme NOVO_NOR.indd 9
11/10/12 15:35