Não tenho certeza se é o lugar certo para esta pergunta. Desculpe se for um pouco fora de tópico.
A escolha de um idioma adequado para o primeiro curso de programação é uma das coisas mais importantes que todo professor / professor relacionado deve ter em mente; especialmente se os alunos são jovens ou têm um conhecimento limitado de matemática.
Atualmente, estou ensinando um grupo de jovens altamente entusiasmados (entre 16 e 17 anos) com um conhecimento médio de matemática . Eles estão cursando o ensino médio na 10ª classe agora. Vou começar a ensinar uma linguagem de programação para o próximo semestre.
Eles são um grupo de estudantes escolhidos a dedo por toda a cidade, com um nível extraordinário de criatividade e diligência, então eu vejo que trabalhar com uma linguagem de programação real não seria uma tarefa difícil para eles. Portanto, a escolha de soluções gráficas simples e de arrastar e soltar, como Turtle Art, Scratch e Tynker, não são consideradas opções.
Existem alguns fatores que devem ser verificados antes de fazer uma escolha:
- Simplicidade : a maioria deles provavelmente nunca experimentou nenhum tipo de ação de codificação real antes.
- Simplicidade, Novamente : Uma das idéias principais é ensinar a pensar algorítmico . Ter uma linguagem sofisticada ou com pouca sintaxe os desviará do caminho.
- Generalidade : é melhor que a linguagem não seja projetada para casos especiais de desenvolvimento. Tome o PHP e o MATLAB como exemplos projetados respectivamente para desenvolvimento na Web e cálculo / modelagem.
- Objetivo mínimo : sem programação OO forçada (como Java). Ou pelo menos com a dependência mínima dos conceitos de OO.
- Plataforma : É importante ter o Windows como um ambiente de desenvolvimento suportado, pois quase todos eles estão no Windows.
- Fácil de configurar : é melhor ter uma maneira direta de configurar o ambiente de desenvolvimento.
- Preferência do setor : não é um problema sério. Mas deve ser pelo menos uma linguagem atualmente ativa que permita aos alunos alcançar experiências de desenvolvimento quase reais.
- Portabilidade de hardware : É importante (mas não obrigatório) que o idioma seja flexível o suficiente para ser usado na programação de hardware. (Não estou falando de linguagens de descrição de hardware como Verilog e VHDL.) O objetivo é programar para hardware mais simples baseado em processador, como AVR Microprocessors ou interface Raspberry Pi GPIO .
Eu quero saber isso
- existem outros fatores que estou perdendo?
- E quais idiomas você sugere como opções?