Apresenta uma discussão de diversos aspectos relacionados às dificuldades de aprendizado para quem está começando a trabalhar com Java.
Para que serve:
O conteúdo apresentado neste artigo serve como um guia para auxiliar tanto professores de programação como alunos iniciantes.
Em que situação o tema é útil:
O tema é útil para aqueles que estão ministrando ou participando de um curso introdutório de Java e percebe que existem certos aspectos didáticos, conceituais e práticos da programação em Java que não estão sendo compreendidos facilmente.
Como professor de programação e banco de dados já há algum tempo, não posso deixar de notar a dificuldade de alunos durante o aprendizado inicial da programação em Java. Estas dificuldades são relacionadas à quantidade de recursos, regras e detalhes do Java em si. Porém, uma vez que estas principais dificuldades são ultrapassadas, o aluno possui uma excelente ferramenta de trabalho para demonstrar todo o seu potencial e explorar as quase infinitas possibilidades limitadas apenas pela sua criatividade.
Com base neste cenário, este artigo apresenta uma discussão de diversos aspectos relacionados às dificuldades de aprendizado para quem está começando a trabalhar com Java. São apresentados aspectos relacionados à didática, estilo de aprendizado, material, ambiente, atitudes do professor e do aluno e também aspectos teóricos e práticos específicos da programação em Java.
O aprendizado em sala de aula
Para começar a discussão a respeito do aprendizado em sala de aula é preciso inicialmente indicar que uma sala de aula pode ser um laboratório com computadores, uma sala do tipo ‘giz, saliva e apagador’ ou mesmo um ambiente virtual de um curso de ensino a distância.
O ato de programar em uma sala de aula é parecido com a brincadeira de uma criança que está em um tanque de areia no parquinho: o aluno tem certa liberdade para errar e aprender com seus erros. Um exemplo claro disso é o uso de comentários, tipagem econômica e regras de nomenclatura de identificadores. Na sala de aula o uso destas técnicas é citado e apenas recomendado. Porém, em um ambiente profissional é provável que a falta de comentários ou a criação de uma variável fora dos padrões de nomenclatura tenha consequências mais severas.
Quando o aluno está começando a aprender programação é comum que ele faça algum curso introdutório de lógica ou fundamentos da computação que aborde, entre outros tópicos, o que é um bit, um byte, lógica booleana e afins. Também é comum o pré-requisito de lógica de programação para ensinar a desenvolver o pensamento como sequências de passos para resolver problemas, a diferença entre um algoritmo e um programa e notações como pseudo-código, diagrama de blocos ou outra notação similar que permite a representação da solução algorítmica de um problema. Estes conceitos e habilidades são pré-requisitos importantes para os alunos que desejam começar a aprender a programar em Java independente da plataforma ou tipo de aplicação (componentes, web, desktop, dispositivos móveis, etc.).
Diferença entre algoritmo e programa: Um algoritmo é definido formalmente como uma sequência finita de passos que levam a execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. Já a definição de programa relaciona algoritmos e linguagem de programação (Java, C#, Pascal, C, C++, Cobol, Fortran, Visual Basic entre outras) que são interpretados e executados por uma máquina que pode ser um computador, celular, video-game ou outro dispositivo.
Atualmente é comum encontrar formações que contenham pacotes de curso do tipo lógica de programação+introdução a java+programação Java desktop+programação Java web. Apesar de serem focadas e possuírem muito conteúdo, agrupar tanta informação em um espaço curto de tempo é potencialmente negativo para o aprendizado, especialmente se forem cursos diários que não permitam ao aluno reservar tempo o suficiente para digerir o que foi aprendido durante o curso. A propósito, vale a pena fazer uma analogia no que diz respeito a estudo e presença em sala de aula: ficar presencialmente dentro de uma sala de aula não faz do aluno um estudante, assim como ficar dentro de uma garagem não faz do aluno um carro. É preciso compreender que a presença em sala de aula é uma coisa e o estudo é outra. Muitos alunos confundem isso e acreditam que apenas pelo fato de estarem dentro da sala de aula eles não precisam estudar. O estudo é algo que precisa ser feito tanto dentro da sala de aula como fora dela, sendo que esta última situação é recomendada para a fixação do conteúdo visto em sala de aula.
A programação, seja ela em qual linguagem computacional for, é uma tarefa que não é manual, como apertar parafusos ou montar iPhones ou iPods em uma fábrica chinesa. Ela requer concentração e dedicação. Em sua forma mais básica, programar é resolver problemas. Isso é muito parecido com o que fazemos na aula de matemática: o professor geralmente passa um pouco de teoria e depois já segue passando exercícios que contêm uma ordem crescente e gradual de dificuldade.
...