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

July 17, 2017 | Autor: Isabel Pedrosa | Categoria: Computer Science Education, Higher Education, Learning And Teaching In Higher Education
Share Embed


Descrição do Produto

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 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

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.