Utilização de simulador LMC em contexto de aprendizagem

Transcrição

Utilização de simulador LMC em contexto de aprendizagem
293
Utilização de simulador LMC em contexto de
aprendizagem de Arquitectura de Computadores e de
Programação em C: um estudo de caso dos alunos da
licenciatura em Informática de Gestão do ISCAC
Isabel Pedrosa1, Mário Rela2 e António Mendes2
1
Instituto Superior de Contabilidade e Administração de Coimbra
Centro de Informática e Sistemas da Universidade de Coimbra
[email protected], [email protected], [email protected];
2
Resumo – Uma das maiores dificuldades no ensino da
programação em linguagem C está relacionada com a
transmissão dos conceitos associados a ponteiros. No
universo considerado, o problema revelava-se mais
complexo do que o habitual uma vez que, dada a estrutura
curricular desta Licenciatura bietápica em Informática de
Gestão, apenas no 3.º ano os alunos tomam contacto com a
aprendizagem de uma linguagem de programação. A
escolha de um simulador que permitisse, no contexto da
cadeira de Arquitectura de Computadores, elucidar os
alunos sobre o modo de funcionamento da memória
perseguia três objectivos: 1- compreensão de conceitos
associados à memória e ciclo de instrução; 2- domínio da
programação numa linguagem muito próxima do Assembly
com um conjunto muito reduzido de instruções; 3- facilitar
a aprendizagem dos conceitos de algoritmia e de ponteiros,
permitindo um certo grau de transversalidade entre as
cadeiras de Arquitectura e de Programação.
Palavras Chave – Arquitectura de Computadores, LMC,
Programação em C, Simulação.
INTRODUÇÃO
Do plano curricular da Licenciatura bietápica em Informática
de Gestão (LBEIG) do Instituto Superior de Contabilidade e
Administração de Coimbra (ISCAC) faz parte uma cadeira de
Arquitectura de Computadores (AC) e uma outra de
Algoritmos e Programação I (AP I). Nos primeiros anos
lectivos em que estas cadeiras funcionaram (2000-2001 e
2001-2002) não foi possível coordenar qualquer tipo de acções
conjuntas, uma vez que os docentes que leccionaram as
cadeiras estavam a fazê-lo pela primeira vez e não havia
nenhum docente associado a ambas as cadeiras. Sendo a
cadeira de AC normalmente considerada transversal, quer
porque o tipo de conteúdos aí leccionados é muito abrangente,
quer por ser considerada uma cadeira estruturante na formação
dos alunos da LBEIG, também é verdade que, na maioria dos
casos, essa potencialidade não tem sido explorada de modo a
facilitar a abordagem e a compreensão de outros conceitos.
VII Simpósio Internacional de Informática Educativa – SIIE05
Como tentaremos mostrar, estas vertentes, porque indutoras de
aprendizagens de qualidade, poderão revelar-se muito
proveitosas no que concerne ao binómio ArquitecturaProgramação.
ENQUADRAMENTO
Os alunos sobre os quais incidiu este estudo frequentaram os
3.º e 4.º anos da LBEIG do ISCAC durante vários anos
lectivos (de 2000/2001 a 2004/2005). O primeiro contacto
com algoritmia e programação em C surge apenas no último
ano do bacharelato (3.º ano) na cadeira de Algoritmos e
Programação I (AP I). Nesta fase e na maioria dos casos, o
raciocínio dos alunos já se encontra formatado para a
resolução de problemas por repetição, segundo fórmulas
directas de cálculo, e/ou ainda por memorização.
Neste contexto, a iniciação dos alunos em programação
torna-se uma tarefa complexa, não só por ser efectuada
tardiamente, como por surgir após a frequência de um
conjunto de cadeiras onde se recorre a estratégias de
trabalho/raciocínio completamente diferentes das adoptadas
nas de algoritmia e programação. Dadas as dificuldades
evidenciadas pelos alunos nos dois primeiros anos em que esta
cadeira funcionou, traduzidas em baixas taxas de sucesso tanto
em AP I como, e de forma ainda mais acentuada, nas cadeiras
que se lhe seguiam (Algoritmos e Programação II, AP II, e
Linguagens Orientadas a Objectos, LOO, respectivamente nos
3.º e 4.º anos da LBEIG), parecia imprescindível e imperioso o
desenvolvimento de metodologias que se demonstrassem mais
eficazes na compreensão de conceitos, particularmente nos de
complexidade mais elevada. Assim, pareceu-nos ser uma
mais-valia interligar AC com AP II (esta última a funcionar no
semestre seguinte a AC).
Partindo do pressuposto de que, em AP II, os conteúdos
relacionados com «ponteiros» são os de maior complexidade,
então estava diagnosticada uma das géneses do problema e,
portanto, aqueles conteúdos constituiriam a temática mais
adequada para interligar as cadeiras. Conforme também
referido em [1]: como se pode esperar que os alunos
compreendam variáveis do tipo ponteiro se eles não
Leiria, Portugal, 16-18 Novembro de 2005
294
compreenderem que uma localização de memória tem tanto
um endereço como um valor que lá se encontra guardado e
que as duas coisas nada têm a ver uma com a outra?
Deste modo, partiu-se para a utilização de um simulador
que pudesse ajudar à compreensão do funcionamento da
memória em AC de modo a que, quando se introduzissem os
conceitos sobre «ponteiros» em AP II, os conhecimentos
(adquiridos em AC e em aquisição em AP II) pudessem ser
mais facilmente relacionáveis.
DESCRIÇÃO
A cadeira de AC é propícia à utilização de simuladores. Como
a maioria dos conceitos relacionados com máquinas
computacionais não é fácil de conceptualizar, o recurso aos
simuladores simplifica esse processo. De facto, na maioria dos
casos, os simuladores utilizados no contexto de AC não são
tão bons como o mundo real: são melhores! [2]. Aliás, basta
consultar [3] para ter acesso a uma quantidade razoável de
exemplos. Todavia, é importante referir que a intervenção
relativamente ao programa da cadeira e as abordagens
metodológicas no contexto do público-alvo da LBEIG não
podem estar ao nível do que se exige a alunos de engenharia
informática; devem ser mais simples, intuitivas e não exigir
background significativo.
Em Englander [4], um dos livros adoptados em AC, partese do paradigma de programação designado por Little Man
Computer (LMC), que foi proposto em 1965 por Stuart
Madnick e John Donovan (Massachusetts Institute of
Technology, MIT, USA) e, posteriormente, desenvolvido pelo
próprio Irv Englander (Bentley College, USA). Contudo,
sendo certo que este paradigma constitui uma ferramenta
conceptual poderosa, pode tornar-se limitada se for
apresentada apenas com recurso a um suporte teórico, sem que
haja aprendizagem activa através de interactividade visual [5].
Em concordância com os pressupostos da afirmação anterior,
optou-se por usar simulação a fim de que o paradigma
constituísse um ponto de partida a complementar visualmente.
Privilegiou-se um simulador intuitivo e de utilização
relativamente simples, de modo a que a ênfase fosse colocada
nos conteúdos que se pretendiam transmitir e não na
ferramenta. Analisadas várias possibilidades expostas em [2] e
[7] a escolha recaiu num simulador, desenvolvido em
Macromedia Director™ por uma equipa da Universidade de
Hertfordshire, Reino Unido, constituída por James Finlay,
Shirley Davis e Glyn Hanton, que pode ser utilizado
directamente a partir da web em [6], embora nas aulas de AC
se tivesse decidido optar por efectuar o seu download e por
uma utilização local. Para efectuar a demonstração, o
simulador disponibiliza a execução de uma implementação
exemplo em código fonte, com base em códigos de 3 dígitos.
Um dos ecrãs correspondentes a esta operação é evidenciado
na Figura 1 em que se pode observar o Little Man a aguardar
que seja finalizada a instrução correspondente à introdução de
um número.
VII Simpósio Internacional de Informática Educativa – SIIE05
FIGURA 1
JANELA DE APLICAÇÃO DO SIMULADOR LMC [6]
O PARADIGMA LITTLE MAN COMPUTER (LMC)
Sob o ponto de vista conceptual, o paradigma Little Man
Computer (LMC) assenta sobre conceitos de fácil
compreensão e tem correspondência directa no modelo
arquitectural de Von Neumann, conforme a Tabela I. A
estrutura é constituída por uma mailroom, que contém uma
calculadora, cem mailboxes, um contador de localização de
instrução, recipientes para entrada e saída de dados e o Little
Man.
TABELA I
COMPONENTES DO PARADIGMA DE PROGRAMAÇÃO LITTLE MAN COMPUTER E
CORRESPONDÊNCIA COM O MODELO DE VON NEUMANN
Componente
Objectivos
Correspondência
paradigma
na Arquitectura
LMC
Von Neumann
Mailboxes
Armazenar dados codificados com base
Memória
em números decimais de 3 dígitos.
Podem ser instruções do programa,
resultados de cálculos ou valores
introduzidos pelo utilizador (Input).
Contador de
Identificar a instrução que está a ser
Contador de
localização de executada. Começa em 00.
Programa
instrução
Input / Output Recipientes para E/S (permitem
Entrada/Saída
Baskets
comunicação com o utilizador)
Calculadora
Armazenar, temporariamente, dados.
Unidade
Entradas e saídas de dados implicam
Aritmética e
passagem pela calculadora. Cálculos
Lógica
simples.
Little Man
Memorizar instruções e dados das
Unidade de
mailboxes.
Controlo
Percursos do
Ligações BUS
Little Man
O paradigma LMC permite a concepção de programas
simples, com base num conjunto de instruções em número
reduzido, que se encontra explicado na Tabela II.
Basicamente, as instruções permitem movimentação de dados
(LOAD – código 5 e STORE – código 3), execução de
cálculos simples (ADD – código 1 e SUB – código 2), entrada
e saída de dados (IN – código 901 e OUT – código 902),
paragem do programa (COB – código 000) e alteração do
Leiria, Portugal, 16-18 Novembro de 2005
295
fluxo de instruções do programa (BR – código 6, BRZ –
código 7 e BRP – código 8). Exceptuando as três últimas, as
restantes são suficientes para resolver programas simples que
executem apenas sequências lineares de operações, não
permitindo “saltos” [4] (alteração da sequência predefinida de
instruções do programa). Na descrição abaixo, usa-se “[.]”
para indicar conteúdo da mailbox, “←” para indicar “toma o
valor de” e “=” para estabelecer comparação.
TABELA II
CONJUNTO DE INSTRUÇÕES USADO NO PARADIGMA LMC
Tipo
Mnemónica Código Descrição
Movimentação LDA
5XX
Calculadora←[mailbox XX]
de Dados
STO
3XX
[mailbox XX]←calculadora
Cálculos
ADD
1XX
Calculadora←calculadora+
[mailbox XX]
SUB
2XX
Calculadora←calculadora–
[mailbox XX]
Entrada/Saída IN
901
Calculadora←Valor entrada
de Dados
OUT
902
Valor saída←Calculadora
Parar
COB/HLT
000
Pausa no programa
Controlo de
BR
6XX
Salta para a instrução XX
Fluxo do
BRZ
7XX
SE calculadora=0 ENTÃO
programa
salta para a instrução XX
SENÃO
continua na instrução seguinte
BRP
8XX
Se calculadora>=0 ENTÃO
salta para a instrução XX
SENÃO
continua na instrução seguinte
As mailboxes, numeradas de 00 a 99, apenas podem
conter valores correspondentes a 3 dígitos. O número da
mailbox nada tem a ver com o seu conteúdo, o que traduz
claramente uma equivalência entre o conceito de mailbox e o
de memória (também aplicável quando se fala de
«ponteiros»): o endereço de uma posição de memória (ao qual
pode estar associado um ponteiro) nada tem a ver com o
conteúdo dessa posição. Todavia, uma das diferenças entre o
paradigma LMC e a memória real corresponde ao facto de, no
primeiro caso, ser utilizada numeração decimal enquanto, nos
sistemas reais, é mais comum o sistema binário.
Existem três utilizações possíveis para as mailboxes: as
primeiras (a partir de 00) estão reservadas às instruções do
programa; nas outras podem constar valores introduzidos pelo
utilizador ou resultados de cálculos efectuados e armazenados
nessas posições, e, por último, valores para fazer algo
equivalente à inicialização de variáveis em C. Nestes dois
últimos casos, começa-se por armazenar esses valores na
mailbox 99 continuando, por ordem decrescente, de forma a
não interferirem com as instruções do programa.
METODOLOGIA
I. Primeiras abordagens usando o paradigma LMC
O primeiro programa realizado com os alunos corresponde ao
código que se encontra na Tabela II e permite somar dois
números pedidos ao utilizador. Este é um dos exemplos
sugeridos em [8] e em [4]. Uma das primeiras dificuldades
sentidas pelos alunos prendeu-se com a utilização das
VII Simpósio Internacional de Informática Educativa – SIIE05
instruções como códigos de 3 dígitos. Ora, sendo o raciocínio
(e não o domínio dos códigos) o que se pretende
privilegiar/educar/modelar, optou-se por escrever inicialmente
os programas usando as mnemónicas e converter,
posteriormente, para os códigos correspondentes. Por último,
efectuou-se a simulação teórica recorrendo a valores
hipotéticos, NUM1 e NUM2 (por esta ordem de entrada), de
modo a testar o percurso do programa.
Mailbox
00
01
02
03
04
05
TABELA III
PRIMEIRO PROGRAMA REALIZADO COM OS ALUNOS
Instrução
Mnemónica
Descrição
901
IN
calculadora←NUM1
599
STO 99
[mailbox 99] ←calculadora
901
IN
calculadora←NUM2 (NUM1 é
perdido com esta instrução)
399
ADD 99
calculadora←calculadora+
[mailbox 99]
902
OUT
Valor saída←Calculadora
000
COB
Pára o programa
Apesar de se ter usado um programa tão simples como o
que se apresenta na Tabela III, foi possível ilustrar vários
conceitos de programação:
• Armazenamento de valor em variável (STO 99 permite
esse armazenamento na mailbox 99 e, assim, quando esse
valor voltar a ser necessário, basta colocá-lo, de novo na
calculadora através de uma instrução de LDA);
• Sobreposição de valores: ao ser introduzido um valor na
calculadora o que lá se encontrava (entretanto já
armazenado na mailbox 99) desapareceu. Se não tivesse
sido guardado seria, definitivamente, perdido;
• Utilização de mailboxes não ocupadas: para guardar o
primeiro valor introduzido foi utilizada a última das 100
mailboxes que não estava ocupada com nenhum valor.
Também em termos de memória quando se declara uma
nova variável ela ocupará um local livre.
Estas são apenas considerações a título de exemplo que
são proferidas no contexto da análise deste programa,
extrapolando para Linguagem C e, simultaneamente, tirando
partido de conceitos de algoritmia já conhecidos dos alunos.
A partir deste ponto, a metodologia adoptada nas aulas
incidiu na resolução de problemas mais complexos que
envolveram concepção de algoritmos e escrita de programas
(primeiro em papel e depois usando o simulador LMC), de
modo a testar as soluções concebidas e, posteriormente,
melhorar a optimização do algoritmo. Incidiu-se sobre
problemas que explorassem a necessidade de inicializar
variáveis, utilizassem alteração de fluxo do programa baseado
em decisões (através das instruções BRP …), de repetições
(encadeando instruções BRP ou BRZ com BR e outros blocos
de instruções) e, ainda, tentando resolver problemas já
abordados em AP I.
II. Paradigma LMC versus Simulador
Para se passar da teoria à prática - utilização do simulador surgiram alguns problemas que foi necessário ultrapassar. É,
Leiria, Portugal, 16-18 Novembro de 2005
296
pois, necessário conhecer as vantagens e desvantagens da
utilização do simulador adoptado, as quais podem ser
consultadas na Tabela IV.
TABELA IV
VANTAGENS E DESVANTAGENS DA UTILIZAÇÃO DO SIMULADOR ADOPTADO
Vantagens
Desvantagens
- ambiente de simples utilização e - conjunto de instruções diferente do
visualmente agradável
abordado no livro, tanto em código
numérico como em constituição (pode
conduzir à alteração do algoritmo para o
mesmo programa)
- ambiente próximo do paradigma - impossibilidade de guardar o programa
LMC
para utilizações futuras
- simplicidade na demonstração
- trabalho exclusivamente com códigos
do funcionamento das instruções das instruções. As mnemónicas são mais
simples de utilizar
- comentários associados às
- problemas no tratamento de números
instruções
negativos
- distinção fácil entre as fases
- funcionalidades reduzidas a pouco mais
associadas a cada instrução (fetch do que programas de divertimento [4]
e execute)
A primeira desvantagem, resultante dos conjuntos de
instruções não serem exactamente iguais, resolveu-se criando
uma tabela de conversão entre estes conjuntos. Ora, esta
situação obrigava a que o próprio algoritmo tivesse que ser
implementado de forma diferente. No entanto, esse factor não
pareceu ser negativo, uma vez que se revelou como mais uma
possibilidade de os alunos melhorarem os seus conhecimentos
de programação.
III. Conjunto de instruções: paradigma LMC versus
Simulador
A Tabela V apresenta o conjunto de instruções do simulador.
TABELA V
CONJUNTO DE INSTRUÇÕES DO SIMULADOR LMC
Mnemónica
Código
Descrição
LDA
1xx
LDA
STO
2xx
STO
ADD
3xx
ADD
SUB
4xx
SUB
IN
500
IN
OUT
600
OUT
COB ou HLT
700
COB ou HLT
Skip if negative 800
Se calculadora <0 ENTÃO
instrução←instrução + 1
Skip if zero
801
Se calculadora=0 ENTÃO
instrução←instrução + 1
Skip if positive
802
Se calculadora> =0 ENTÃO
instrução←instrução + 1
Jump
9xx
O mesmo que BR no paradigma LMC
No simulador, além dos códigos das instruções serem
diferentes, existem ainda três novas instruções: Skip if
Negative, Skip if Positive e Skip if Zero, desaparecendo as
BRZ e BRP. A alteração é significativa porque, enquanto no
simulador, as instruções Skip if… ignoram apenas a instrução
seguinte, no caso do valor da calculadora verificar a condição,
as instruções BR permitem saltar para uma instrução e
continuar, a partir daí, de forma sequencial.
VII Simpósio Internacional de Informática Educativa – SIIE05
III. Abordagens usando o simulador LMC
Aos alunos, já habituados a um raciocínio baseado na vertente
teórica associada ao paradigma, pareceu-lhes mais complicado
usar o simulador com novas instruções e novos códigos,
embora considerassem estes últimos mais fáceis de memorizar
(porque sequenciais). Assim, decidiu-se que, futuramente, se
utilizaria o conjunto de instruções associado ao simulador,
uma vez que este lhes permitiria testar os seus programas. No
entanto, como se iniciou a programação pelo paradigma LMC,
elaborou-se uma tabela de conversão (Tabela VI).
TABELA VI
TABELA DE CONVERSÃO ENTRE PARADIGMA E SIMULADOR
Mnemónica
Paradigma
Simulador
LDA
5xx
1xx
STO
3xx
2xx
ADD
1xx
3xx
SUB
2xx
4xx
IN
901
500
OUT
902
600
COB
000
700
BRZ
7xx
Não existe
BRP
8xx
Não existe
BR/JUMP
6xx
9xx
Skip if negative
Não existe
800
Skip if Zero
Não existe
801
Skip if positive
Não existe
802
Recorreu-se, inicialmente, a programas muito simples
com o intuito de permitir apenas a familiarização com o
simulador, e pelas várias utilizações que foram sendo feitas
com alunos dos vários anos lectivos, constatou-se não haver
quaisquer problemas nesta fase. Note-se que este simulador é
aconselhado para alunos de licenciaturas em áreas, que não as
das ciências informáticas [5].
Para facilitar a compreensão dos alunos relativamente à
implementação dos seus programas, recorreu-se, sempre que
possível, a enunciados semelhantes aos que já haviam sido
utilizados na cadeira de programação AP I, estimulando-lhes o
uso e a tomada de consciência e, portanto, o aprofundamento
de raciocínios a que já estavam rotinados nesta cadeira. Ou
seja, o raciocínio seria idêntico, a ferramenta de programação
é que seria outra.
A simulação foi sempre encorajada, embora com um
senão: à medida que os alunos foram ganhando mais
experiência no simulador, quase já não precisavam de o usar
para concluir da funcionalidade do programa.
IV. Interligação AC e AP II
À medida que os programas foram sendo desenvolvidos e
testados com o simulador, houve sempre uma chamada de
atenção para a relevância da compreensão destes conceitos,
pois só assim seria possível dominar, com sucesso, outros
conceitos posteriores. Foi sendo feita a transição do paradigma
e do simulador para um sistema real, explorando o conteúdo
das mailboxes e o seu número e comparando-os com o
conteúdo de uma posição de memória e o seu endereço.
Em AP II, foi possível constatar, por observação directa,
que os alunos que utilizaram o simulador pareciam ter maior
Leiria, Portugal, 16-18 Novembro de 2005
297
facilidade na compreensão dos novos conceitos. De modo a
comprovar a observação optou-se pela realização de um
inquérito.
V. Resultados esperados e Resultados efectivos
O inquérito foi realizado junto dos alunos que frequentaram a
cadeira de AC entre 2000/2001 e 2004/2005. A resposta, uma
vez que o formulário do inquérito foi enviado por e-mail,
estava condicionada aos alunos que ainda consultam o e-mail
do ISCA ou que têm activas as contas de e-mail alternativas
que forneceram no momento em que foram alunos da cadeira.
Consequentemente, dos 55 inquéritos enviados, obtiveram-se
18 respostas que correspondem aos alunos dos 3 últimos anos
lectivos. No inquérito, pretendia-se avaliar:
• As dificuldades relatadas relativas às cadeiras de
programação, AP I e AP II, pelos alunos que utilizaram o
simulador em AC e pelos que não o utilizaram. O
simulador produziu algum efeito positivo relativamente à
aprendizagem dos alunos ou as dificuldades com/sem
simulador são idênticas?
• Qual o impacto dos conhecimentos obtidos através da
programação no simulador? Foram aplicáveis noutros
contextos, facilitaram a aprendizagem de outras
linguagens? Globalmente, os alunos consideram que
tiraram proveito do simulador?
• Os alunos que não utilizaram o simulador, estariam
disponíveis a fazê-lo?
Relativamente ao primeiro e ao último ponto, não foi
possível estabelecer conclusões comparativas uma vez que
apenas um aluno de 2002/2003 respondeu – o simulador
apenas foi utilizado nos dois últimos anos lectivos. Esse aluno
apresenta um padrão de resposta idêntico ao dos colegas.
Conforme se previa, os alunos classificaram, entre um
conjunto de dificuldades possíveis ao nível de AP I, a
“Aprendizagem tardia de Algoritmia e Programação” como a
mais difícil de contornar. O gráfico de resposta encontra-se na
Figura 2, e todos os alunos que responderam consideraram
esta situação “Extremamente Difícil” (67%) ou “Muito
Difícil” (33%) de contornar.
Uma outra dificuldade que havia sido diagnosticada e que foi
confirmada pelas respostas dos alunos ao inquérito relacionase com as mudanças ao nível do raciocínio que é necessário
operar quando se comparam os métodos de resolução de
problemas em algoritmia com os da maioria das cadeiras que
frequentaram anteriormente na LBEIG. Neste caso, os alunos
consideraram,
equitativamente,
este
factor
como
“Extremamente Difícil”, “Muito Difícil” ou “Difícil” em 17%
das respostas, respectivamente.
Quando instados a pronunciarem-se sobre as vantagens
que extraíram da utilização do simulador, de modo a ser
possível avaliar o impacto em termos da sua utilidade
enquanto facilitador de outras aprendizagens, os alunos
responderam, globalmente, de forma bastante favorável,
considerando-o, quase sempre, “Bastante Útil”. As questões
que foram colocadas, destinavam-se a avaliar se o simulador
havia sido útil para melhorar a compreensão de:
• Funcionamento de instruções simples, condicionais e de
repetição;
• Algoritmos simples;
• Conceitos associados a ponteiros.
Os resultados apurados são apresentados nas Figuras 3, 4 e 5.
FIGURA 3
DISTRIBUIÇÃO DAS RESPOSTAS SOBRE A UTILIDADE DO SIMULADOR LMC NA
COMPREENSÃO DE INSTRUÇÕES SIMPLES, CONDICIONAIS E DE REPETIÇÃO
FIGURA 4
DISTRIBUIÇÃO DAS RESPOSTAS SOBRE A UTILIDADE DO SIMULADOR LMC NA
COMPREENSÃO GENÉRICA DE ALGORITMOS SIMPLES
FIGURA 2
DISTRIBUIÇÃO DAS RESPOSTAS SOBRE O NÍVEL DE DIFICULDADE SENTIDO
PELOS ALUNOS EM AP I EM QUE A CAUSA É A “APRENDIZAGEM TARDIA DE
ALGORITMOS E PROGRAMAÇÃO”
VII Simpósio Internacional de Informática Educativa – SIIE05
Curiosamente, no que respeita à utilidade do simulador
em relação aos ponteiros, as respostas distribuíram-se, pela
primeira vez por todas as possibilidades, tendo existido alunos
que consideraram o simulador apenas “Razoavelmente útil” ou
“Inútil”. Todavia, a maioria das respostas estão no extremo
oposto.
Leiria, Portugal, 16-18 Novembro de 2005
298
FIGURA 5
DISTRIBUIÇÃO DAS RESPOSTAS SOBRE A UTILIDADE DO SIMULADOR LMC NA
COMPREENSÃO DE CONCEITOS ASSOCIADOS A PONTEIROS
Em relação à questão “Considera que globalmente
extraiu proveito positivo dos conhecimentos aprendidos com o
simulador LMC?”, os alunos responderam de forma positiva,
referindo 33% “Muito Bom”, 11% classificaram-no como
“Bom”. Os restantes 56% responderam “Razoável”, não
havendo nenhum aluno que considerasse não ter extraído
“Nenhum” ou “Pouco” proveito do simulador.
VI.O caso particular dos alunos de LBEIGN
Para além dos alunos LBEIG que, simultaneamente, têm AC e
AP I, existem os da mesma licenciatura em regime nocturno
(LBEIGN) que, devido a um plano curricular diferente,
frequentam as cadeiras de AP I e AP II num ano e AC só no
ano seguinte. Apesar de particular, esta situação, diferente da
descrita, também permitiu obter dados e estabelecer
comparações com base na utilidade do simulador.
Recorrentemente, os alunos que já frequentaram AC
mencionam que determinado exercício é idêntico ao que
fizeram usando o simulador e o LMC, facto em si mesmo
revelador de que o simulador cumpre os objectivos
estabelecidos aquando da decisão pela sua inclusão em AC.
No entanto, o sucesso dos alunos relativamente às cadeiras AP
I e AP II em regime nocturno não tem sido inferior ao dos do
regime diurno. Todavia, ressalva-se que esta comparação é
apenas um mero indicador e não pode não ser conclusiva pelo
facto da amostra não ser significativa: o número de alunos que
frequenta, à noite, a cadeira de AC é reduzido (cerca de 5 nos
dois anos em que já funcionou).
CONCLUSÕES
As cadeiras de programação da LBEIG, porque leccionadas
tardiamente na estrutura curricular do curso, não facilitam a
adaptação dos alunos ao método de raciocínio exigido na
aprendizagem de uma linguagem de programação. Com a
utilização de um simulador LMC em AC, pretende-se que os
alunos, através de técnicas de simulação que lhes permitem
visualizar o funcionamento da memória e exercitar
VII Simpósio Internacional de Informática Educativa – SIIE05
conhecimentos de algoritmia de que já dispõem nesta fase,
melhorem globalmente o seu nível de raciocínio através da
utilização de uma linguagem composta por um conjunto
reduzido de instruções, obrigando-os a ser criativos na forma
como constroem resoluções para os problemas. Através do
simulador LMC é possível desenvolver soluções para
problemas de carácter simples embora, teoricamente, qualquer
problema possa ser resolvido utilizando esta ferramenta.
No universo e contexto considerado, a utilização do
paradigma LMC e de um simulador visualmente atractivo
mostrou constituir-se como uma boa prática para superar a
difícil adaptação evidenciada pelos alunos nos primeiros anos
em que funcionaram as cadeiras de AP I e AP II. Explorar a
transversalidade de conceitos e conteúdos (AC, AP I, AP II e
LOO) permite que os alunos adquiram uma melhor preparação
para as cadeiras de programação avançada e, objectivo último,
que nelas possam obter um melhor nível de aproveitamento.
AGRADECIMENTOS
Um agradecimento especial aos alunos de AC das LBEIG e
LBEIGN do ISCAC que aceitaram a proposta de testar, no
contexto desta cadeira, novas abordagens respondendo sempre
com motivação positiva aos novos desafios que lhes foram
colocados.
REFERÊNCIAS
[1]
Patt, Y. N., “Computer Architecture Education should start in the
Freshman Year”, HPCA-4 Workshop on Computer Architecture
Education, Feb1998.
[2]
Yurcik, W., “Guest Editorial: Computer Architecture Simulators are Not
as Good as the Real Thing -- They are Better!", ACM Journal of
Educational Resources in Computing (JERIC), Vol. 1 No. 4, Mar 2002.
[3]
Computer Architecture Simulators,
http://www.sosresearch.org/caale/caalesimulators.html#Historic, Abril
2005.
[4]
Englander, I.– “The Architecture of Computer Hardware and Systems
Software: an information technology approach”, 2.ª Edição, John Willey
and Sons Inc., 2000.
[5]
Osborne, H., Yurcik, W., “The Educational Range of Visual Simulations
of the Little Man Computer Paradigm”, 32nd ASEE/IEEE Frontiers in
Education Conference, Boston, MA, 2002
[6]
The Little Man Computer Web-Based Simulator, University of
Hertfordshire, http://www.herts.ac.uk/ltdu/projects/mm5/, Abril 2005
[7]
Yurcik, W., Brumbaugh, L.- “A Web-Based Little Man Computer
Simulator”, Proceedings of the 32nd Technical Symposium on Computer
Science Education (SIGCSE), Charlotte NC USA, 2001, pp. 204-208
[8]
Yurcik, W., Vila, J., Brumbaugh, L.- “An Interactive Web-Based
Simulation of a General Computer Architecture”, IEEE International
Conference on Engineering and Computer Education (ICECE 2000),
San Paulo Brazil, August 2000.
Leiria, Portugal, 16-18 Novembro de 2005

Documentos relacionados

Ficha de Unidade Curricular

Ficha de Unidade Curricular de hardware do Computador, desvendando o mistério da "caixa negra" relativamente aos componentes internos de uma máquina computacional. Inicia-se o estudo da unidade curricular com conceitos elemen...

Leia mais