Exemplo da teoria aplicada à Educação
A proposta da instrução programada na escola é
ensinar linguagens tais como o BASIC bem como ensinar Resolução
de Problemas. Como a pesquisa tem mostrado, a habilidade de resolução
de problemas parece ser muito mais uma disciplina específica do
que foi pensado inicialmente (e.g.Larkin, McDermott,Simon & Simon,
1980; Linn,1985 a; Resnick, 1983)
Então, o mecanismo que leva a generalização da
habilidade de resolução de problema a partir de uma disciplina
a outra, requer especificação.
A performance na programação pode ser influenciada por
certas características do estudante. Uma preocupação
importante é saber se a instrução é igualmente
efetiva para todos os estudantes ou se alguns grupos de estudantes se beneficiam
mais que outros. Além disso, podem haver interações
entre características dos estudantes e a instrução.
Características da Linguagem
-
Para usar uma linguagem de programação é importante
compreender algumas características da linguagem ou elementos não
decompostos da linguagem, dizer como funcionam e fazer os estudantes usá-los.
O conhecimento do estudante sobre as características da linguagem
está seguidamente avaliada pela compreensão de itens pedindo
que predigam como programar.Além disso, o conhecimento da característica
da linguagem é avaliada pedindo ao estudante para reformular ou
mudar a característica da linguagem em um programa para que o programa
possa fazer algo um pouco diferente. Os estudantes precisam aprender características
das linguagens. Entretanto, este conhecimento é de pouco uso geral
ou benefício.
Design Habilidades-
São um grupo de técnicas usadas para combinar características
de linguagem para fazer programas de resolução de problemas.
Inclui templates e habilidades procedurais. Tais habilidades são
essenciais para que estudantes escrevam programas de alguma complexidade.
Templates
São modelos esterotipados de código que usam mais de
uma característica de linguagem. Templates realizam funções
complexas tais como escolher nomes alfabéticamente, encontrar o
último múltiplocomum de um grupo de números, ou contando
o número de palavras num texto. ..Quando os estudantes têm
um repertório de templates, eles tem uma série flexível
e poderosa de técnicas que lhes permite resolver muitos problemas
sem inventar um código novo. Além disto templates podem reduzir
a demanda cognitiva de programação dando caminhos óbvios
para decompor o problema. Os estudantes podem decompor os problemas em
tamanhos que possam utilizar o template. Eles então podem implementar
a solução usando seus templates. Os estudantes podem ter
um repertório de templates, além disso, podem escrever programas
mais complicados que aqueles sem o repertório de templates.
Habilidades Procedurais-
São usadas para combinar características de linguagem
e templates para resolver novos problemas. Habilidades procedurais incluem
planejar, testar e reformular. Note que reformular foi mencionado
como uma técnica para testar o conhecimento de característica
de linguagem, mas pode ser também usado para modificar longas sequencias
de codificação. Os programadores necessitam de um plano para
combinar as características da linguagem e templates para resolver
problemas de programação. Então eles decompoem
o problema em partes e planejam como combinar essas partes. Quando
o plano é implementado, os programadores necessitam testar o plano
para saber se está correto.
Testar envolve determinar se o programa atinge as especificações
decidindo que dados ou outras condições podem causar dificuldades
e então rodar o programa sob essas condições para
ver se está operando corretamente. Quando o teste de um programa
revela problemas, o programador decide se ele necessita refinamento.
Planejamento
É requerido para resolver complexos problemas de programação.
Os novices raramente trabalham sobre programas suficientemente complexos
para demandar planejamento. Programação que envolve somente
combinações linerares de características simples de
linguagem geralmente falham para ilustrar a vantagem de planejamento. Então
a instrução de planejamento deve ser cuidadosamente designada
para assegurar que os estudantes compreendem a importancia de planejar
e tem a oportunidade de praticar isto. Só então eles ganham
conhecimento sobre as condições sobre as quais o template
irá funcionar. Planejamento é um importante componente do
comportamento do programador expert. em alguns estudos, os programadores
gastam muito tempo na programação (Kurland et al.,1984).
Em contraste, planejar não é um aspecto do comportamento
do novato (Dalbey, Tourniaire, & Linn, 1986). Diferenças similares
no tempo gasto em soluções de planejamento são relatadas
por experts e novatos resolvedores de problemas físicos (Larkin
et al.,1980).
Testar-É uma habilidade importante que pode ser destacada
pedindo aos estudantes para descobrir como os programas se comportam como
o planejado. Experts e novatos diferem nesta habilidade. Os experts não
só reconhecem as vantagens de testar seus programas, mas são
bons como testadores de desing para revelar possiveis problemas. Eles tem
um conhecimento bem desenvolvido de estratégias anti-bugs associadas
com seus templates. Por ex. experts tendem a testar as condições
limites para assegurar que não divisão por zéro é
possivel, e para considerar dificuldades resultantes das interações
entre partes de seus programas.
Em suma, programas escritos por experts tendem a ter testes construidos
para confusões potenciais tais como testes para estar seguro que
o input encontra os problemas especificados. Em contraste, os novices seguidamente
testam somente o óbvio ou forma usual de input e falham em testar
todo o código (e.g. Mandinach & Linn, 1985).
Reformular
- reformulação mede habilidades quando é exigido
que se modifique o planejamento do programa. É uma outra habilidade
que diferencia experts e novatos.
Experts tendem a responder os resultados de testes considerando uma
ampla escala bem como menores reformulações de seus programas.
...A aquisição de habilidade de design podem ser avaliadas
pelos estudantes pedindo que escrevam programas para resolver problemas.
Para requerer planejamento, testagem e maiores reformulações,
tais problemas devem ser razoavelmente complexas. Para medir a aquisição
do template os problemas devem requerer templates aprendidos.
Habilidades de Resolução de Problemas
- O terceiro link do canal consiste de habilidades de resolução
de problemas útil para aprender novos sistemas formais. Estes são
templates e procedimentos comuns a muitos sistemas formais. A habilidade
procedural de planejar, testar e reformular são aplicáveis
na aprendizagem de novas linguagens de programação e na aprendizagem
para usar novos sistemas forais tais como software de gerenciamento de
base de dados, ou processadores de textos. Estas habilidades de resolução
de problemas gerais são adquiridas quandos estudantes tentam aplicar
templates ou procedimentos aprendidos em um sistema a um novo sistema (veja
Dalbey & Linn, 1985).A habilidade de resolução de problemas
pode ser avaliada pedindo aos estudantes que resolvam problemas usando
um sistema não familiar tal como uma nova linguagem de programação.
O canal da realização cognitiva que culmina em expertise
tecnológica é longa. Os estudantes necessitam resolver problemas
complexos antes que usem habilidades cognitivas exigidas tais como o planejamento.
Eles provavelmente necessitam experiencia com vários sistemas formais
antes que adquiram habilidades gerais de resolução de problemas.