Provas de Aptidão Pedagógica e Capacidade Científica

Aula Prática


Emulação da Máquina URM no Mathematica

Introdução

Na cadeira de Paradigmas da Programação os alunos familiarizaram-se com o sistema Mathematica. Aprenderam a definir funções por abstracção funcional e por atribuição paramétrica. Praticaram os paradigmas da programação recursiva, imperativa, funcional e por reescrita.

Contrariamente ao que seria desejável acaba sempre por não haver tempo para desenvolver programas mais complexos onde se apliquem os conceitos e as técnicas de programação desenvolvidos ao longo do semestre. Estes programas de aplicação podem no entanto ser introduzidos em fases posteriores do curso no âmbito de outras cadeiras.

É o que acontece, por exemplo, no caso da Teoria da Computabilidade e Complexidade. Em anos anteriores foram facultados aos alunos desta cadeira alguns programas em linguagem Mathematica capazes de resolver questões específicas referentes à matéria leccionada. Esses programas consistiam no emulador da máquina URM, no codificador de programas URM e no descodificador de programas URM.

Ao facultar o emulador da máquina URM pretendia-se dar aos alunos uma ferramenta adicional que poderiam utilizar, extra-aula, para complementar o seu estudo testando os programas URM apresentados nas aulas bem como outros que viessem a construir. Ao facultar o codificador e o descodificador de programas URM pretendia-se que os alunos constatassem a diferença entre o apenas se pretender garantir que é possível codificar e descodificar programas URM e os aspectos ligados à procura de codificações eficientes desses programas (pois os alunos facilmente verificarão que a codificação dada nas aulas teóricas não seria prática nem tal era uma preocupação no contexto desta cadeira).

Seria no entanto proveitoso para os alunos se fossem eles próprios a construir os referidos programas. Assim eles iriam, para além de praticarem a programação em Mathematica, interiorizar de forma mais marcante a matéria da disciplina de Teoria da Computabilidade e Complexidade.

Os programas descritos anteriormente poderiam ser construídos em duas aulas práticas que teriam naturalmente lugar numa sala de informática. A construção do emulador URM corresponderia à segunda aula teórico-prática. Os restantes programas seriam construídos na última aula teórico-prática.

Este relatório descreve a primeira das duas aulas (emulador da máquina URM) estando dividido em quatro partes, sendo a primeira a presente introdução.

Na segunda parte é feita uma breve apresentação da disciplina de Teoria da Computabilidade e Complexidade.

Na terceira parte é apresentada a lição, focando inicialmente o seu enquadramento na disciplina, os seus objectivos e requisitos.

Finalmente, na quarta parte, apresentam-se as conclusões.

Os programas Mathematica a construir na segunda aula prática são apresentados em anexo.


© 2004 José Laurindo de Góis Nóbrega Sobrinho