Como ensino Python para crianças?

Como ensino Python para crianças?

Meu principal trabalho está relacionado a dados e programação em R, mas neste artigo quero falar sobre meu hobby, que até traz alguma renda. Sempre tive interesse em contar e explicar coisas para amigos, colegas de classe e colegas estudantes. Também sempre foi fácil para mim encontrar uma linguagem comum com as crianças, não sei porquê. Em geral, acredito que criar e ensinar os filhos é uma das atividades mais importantes de todas, e minha esposa é professora. Então, há cerca de um ano, anunciei em um grupo local do Facebook, formei um grupo e comecei a ensinar Scratch e Python uma vez por semana. Agora tenho cinco turmas, aula própria em casa e aulas individuais. Como passei a viver dessa maneira e exatamente como ensino as crianças, contarei a vocês neste artigo.

Eu moro em Calgary, Alberta, Canadá, então algumas coisas serão específicas do local.

O quarto

A disponibilidade de espaço para praticar foi uma grande preocupação desde o início. Tentei procurar escritórios e salas de aula para alugar por hora, mas não tive muito sucesso. Nossa universidade e o SAIT, o equivalente local do MIT, oferecem aulas com e sem computadores. Os preços lá acabaram não sendo muito humanos e, no final, descobriu-se que a universidade não permite menores e o SAIT geralmente só aluga para seus próprios alunos. Portanto, esta opção foi eliminada. Existem muitos centros de escritórios que alugam salas de reunião e escritórios por hora, existem empresas inteiras que oferecem um monte de opções desde uma sala de aula completa até uma sala para quatro pessoas. Eu tinha esperanças, uma vez que Alberta é uma província petrolífera, estamos numa crise lenta desde 2014 e muitos espaços comerciais estão vazios. Eu não deveria ter esperado; os preços acabaram sendo tão exorbitantes que a princípio nem acreditei neles. É mais fácil para os proprietários ficarem sentados em escritórios vazios e pagarem os custos do que despejarem.

Naquele momento, lembrei que pago regularmente meus impostos, e se o nosso querido estado, ou melhor, a cidade de Calgary, tem alguma coisa lá. Acontece que realmente existe. A cidade possui arenas para hóquei e outros esportes de patinação artística, e nessas arenas há salas onde robustos guerreiros do gelo discutem estratégias para futuras batalhas. Resumindo, cada arena possui algumas salas com mesas, cadeiras, quadro branco e até pia com chaleira. O preço é divino - 25 tugriks canadenses por hora. Decidi inicialmente fazer aulas de uma hora e meia, então estabeleci o preço da aula em US$ 35 por aula em um grupo de cinco pessoas, para compensar o aluguel, e para colocar algo no bolso. No geral gostei de malhar nas arenas, resolveu um dos problemas - a maioria dos falantes de russo mora no sul e eu moro no norte da cidade, então escolhi uma arena aproximadamente no meio. Mas também houve inconvenientes. A burocracia canadense é boa e amigável, mas, para dizer o mínimo, pode ser um tanto desajeitada. Não há problemas quando você se acostuma com o ritmo e planeja com antecedência, mas às vezes surgem momentos desagradáveis. Por exemplo, no site da cidade você pode convenientemente selecionar um horário e local e reservar um quarto, mas não pode pagar, de forma alguma. Eles próprios fazem as ligações e aceitam pagamentos com cartão. Você pode ir ao escritório e pagar em dinheiro. Teve um momento engraçado, mas não muito agradável, quando eu estava esperando a ligação deles para pagar a segunda aula, ela não chegou e no último dia cheguei quinze minutos atrasado ao escritório. Tive que abordar o segurança com uma cara atrevida e mentir que o quarto estava reservado. Nós, canadenses, acreditamos na minha palavra; eles me deixaram entrar com calma e não verificaram nada, mas eu não faria isso se as pessoas já não estivessem a caminho da aula.

Foi assim que trabalhei durante o inverno e a primavera, e então ocorreram mudanças que foram a gota d'água. Em primeiro lugar, o escritório foi fechado à visitação e eles se ofereceram para aceitar pagamentos por telefone na esquina. Fiquei sentado no corredor por pelo menos meia hora antes de terminar. Em segundo lugar, se antes minha querida tia recebia meu pagamento por uma hora e meia, agora uma garota atendeu o telefone e disse que o pagamento era apenas por uma hora. Naquela época, meu grupo era composto por três ou duas pessoas, e os US$ 12.5 extras não eram supérfluos. Claro, sou ideológico, mas se minha esposa me jogar na rua, não haverá ninguém para ensinar. Eu ainda estava desempregado naquela época.

E decidi ir à biblioteca. As bibliotecas alugam salas maravilhosas de forma totalmente gratuita, mas há um problema: você não pode realizar atividades comerciais. Mesmo as instituições de caridade não estão autorizadas a arrecadar dinheiro lá. Disseram-me que isso não é particularmente controlado, o principal é não levar dinheiro na entrada, mas realmente não gosto de quebrar as regras. Outro problema é que as salas costumam estar ocupadas e é difícil realizar aulas programadas ao mesmo tempo e em um só lugar. Dei aulas em bibliotecas durante o verão e início do inverno, tive que escolher aquelas que tinham espaço, e no final troquei cinco ou seis bibliotecas. Aí comecei a reservar vaga com dois meses de antecedência e, mesmo assim, só consegui fazer isso em uma pequena biblioteca; as demais regularmente não tinham vaga para o tempo exigido. E então resolvi fazer uma aula de informática em casa. Desliguei o quadro, comprei uma segunda mesa e alguns monitores antigos do anúncio. No trabalho, a empresa comprou para mim um novo laptop poderoso porque a análise no meu computador demorou quase 24 horas. Então, eu tinha um computador novo e antigo, um computador antigo, um laptop no qual meu filho quebrou a tela e um netbook antigo no qual eu mesmo esmaguei a tela. Conectei todos aos monitores e instalei o Linux Mint em todos os lugares, exceto no netbook, no qual instalei um kit de distribuição bem leve, ao que parece, Pappy. Ainda tenho um laptop novo e velho, comprado por US$ 200, conectei-o à TV. O que também é importante é que nosso proprietário mudou recentemente nossas janelas e, em vez da terrível miséria do quarto, agora temos novas molduras brancas. A minha mulher guarda a sala, a cozinha e o segundo quarto para um jardim de infância, pelo que todo o piso acabou por ser puramente pedagógico. Então, agora que está tudo bem com as instalações, vamos passar ao ensino.

Arranhar

Estou começando a ensinar o básico de programação utilizando a linguagem Scratch. Esta é uma linguagem que usa blocos prontos, inventados uma vez no MIT. A maioria das crianças já viu o Scratch na escola, então elas aprendem rapidamente. Existem programas e planos de aula prontos, mas não gosto nada deles. Algumas são estranhas – crie sua própria história, por exemplo. Todo o programa consiste em inúmeros blocos say '<...>' for 2 seconds. Pode-se ver que ele foi inventado por indivíduos muito criativos, mas com essa abordagem você pode ensinar como escrever o clássico código espaguete indiano. Desde o início falo sobre princípios como DRY.Outras coleções de tarefas são muito boas, mas as crianças rapidamente captam a essência e começam a executá-las como uma metralhadora. Como resultado, eles fazem em uma aula o que deveriam ter feito em cinco. E pesquisar e selecionar tarefas exige muito tempo pessoal. Em geral, o Scratch lembra mais não uma linguagem, mas um IDE, onde você só precisa lembrar onde clicar e onde procurar o quê. Assim que os alunos se sentem mais ou menos confortáveis, tento transferi-los para Python. Até minha filha de sete anos escreve programas simples em Python. O que vejo como benefício do Scratch é que ele contém conceitos básicos que são aprendidos de forma lúdica. Por alguma razão, é muito difícil para todos, sem exceção, entender a ideia de variável. No início, dei uma olhada rápida no assunto e segui em frente até me deparar com o fato de que eles nem sabiam o que fazer a respeito. Agora gasto muito tempo com variáveis ​​e volto constantemente a elas. Você tem que fazer algumas marteladas estúpidas. Eu mudo diferentes variáveis ​​na tela e as faço falar seus valores. O Scratch também possui estruturas de controle e verificações de valores, como while, for ou if em python. Eles são bastante fáceis, mas existem problemas com loops aninhados. Tento dar várias tarefas com um loop aninhado, e para que sua ação fique clara. Depois disso passo para as funções. Mesmo para os adultos o conceito de função não é óbvio, e ainda mais para as crianças. Falo muito sobre o que é uma função em geral, falo de uma fábrica que recebe itens como insumo e distribui mercadorias, de um cozinheiro que faz alimentos a partir de matérias-primas. Aí fazemos um programa “fazer um sanduíche” com produtos, e a partir dele fazemos uma função, para a qual os produtos são passados ​​​​como parâmetros. Termino de aprender funções com o Scratch.

Python

Com python tudo é mais simples. Existe um bom livro Python for Kids, onde eu ensino. Tudo é padrão lá - linhas, ordem de operações, print(), input() etc. Escrito em linguagem fácil, com humor, as crianças gostam. Tem uma falha comum a muitos livros de programação. Como na famosa piada - como desenhar uma coruja. Oval - círculo - coruja. A transição de conceitos simples para conceitos bastante complexos é demasiado abrupta. Demoro várias sessões para anexar o objeto ao método dot. Por outro lado, não tenho pressa, repito a mesma coisa de maneiras diferentes até que pelo menos alguma imagem se forme. Começo com variáveis ​​e as crio novamente, desta vez em Python. Variáveis ​​são uma espécie de maldição.

Um aluno inteligente, que há alguns meses clicou habilmente em variáveis ​​no Skratch, parece um carneiro no novo portão e não consegue somar o X com o Y, que está claramente escrito no quadro, uma linha acima. Nós repetimos! O que uma variável tem? Nome e significado! O que significa o sinal de igual? Atribuição! Como verificamos a igualdade? Sinal de igual duplo! E repetimos isso continuamente até a iluminação completa. Depois passamos para as funções, onde a explicação sobre os argumentos é mais demorada. Argumentos nomeados, por posição, por padrão e assim por diante. Ainda não alcançamos turmas em nenhum grupo. Além do Python, estudamos algoritmos populares do livro, mais sobre isso mais tarde.

Na verdade, treinar

Minha aula está estruturada assim: dou teoria durante meia hora, testo conhecimentos e consolido o que foi aprendido. É hora dos laboratórios. Muitas vezes me empolgo e converso por até uma hora, depois sobra meia hora para praticar. Quando eu estava aprendendo python, assisti ao curso Algoritmos e estruturas de dados Khiryanov do MIPT. Gostei muito de sua apresentação e da estrutura de suas palestras. A ideia dele é esta: frameworks, sintaxe, bibliotecas estão se tornando obsoletos. Arquitetura, trabalho em equipe, sistemas de controle de versão – ainda é cedo. Como resultado, permanecem algoritmos e estruturas de dados que são conhecidos há muito tempo e sempre terão uma forma semelhante. Eu mesmo só me lembro de números inteiros do instituto pascal. Como meus alunos são em sua maioria jovens, de sete a quinze anos, acredito que é mais importante para o futuro deles estabelecer as bases do que escrever rapidamente um jogo de plataforma em Python. Embora eles queiram mais um jogo de plataforma, e eu os entendo. Eu dou a eles algoritmos simples - uma bolha, pesquisa binária em uma lista ordenada, notação polonesa reversa usando uma pilha, mas analisamos cada um deles detalhadamente. Acontece que as crianças modernas não sabem em princípio como funciona um computador, também vou lhe contar. Tento unir vários conceitos em cada palestra. Por exemplo, um computador - memória/porcentagem - memória composta de células (deixarei você segurar o chip de memória, adivinhe quantas células existem) - cada célula é como uma lâmpada - existem dois estados - verdadeiro/falso - e/ou - binário/decimal - 8 bits = 1 byte - byte = 256 opções - tipo de dados lógicos em um bit - inteiros em um byte - float em dois bytes - string por byte - o maior número de 64 bits - uma lista e uma tupla dos tipos anteriores. Faço uma ressalva que em um computador real tudo é um pouco diferente e a quantidade de memória para esses tipos de dados é diferente, mas o principal é que nós mesmos, no processo, criamos tipos de dados mais complexos a partir dos mais simples. Os tipos de dados são talvez a coisa mais difícil de lembrar. É por isso que começo cada lição com um rápido aquecimento - um aluno nomeia o tipo de dados, o próximo dá dois exemplos e assim por diante em círculo. Como resultado, consegui que até as crianças mais novas gritassem alegremente - flutuassem! boleano! sete, cinco! pizza, carro! Durante uma palestra, eu constantemente puxo primeiro um ou outro, caso contrário eles rapidamente começam a cutucar o nariz e a olhar para o teto. E o nível de conhecimento de todos precisa ser verificado de vez em quando.

Meus alunos nunca param de me surpreender, tanto com sua estupidez quanto com sua inteligência inesperada. Felizmente, mais frequentemente com inteligência.

Queria escrever mais, mas acabou sendo apenas uma folha. Terei prazer em responder a todas as perguntas. Aceito qualquer crítica de todas as formas possíveis, só peço que sejam mais tolerantes uns com os outros nos comentários. Este é um bom artigo.

Fonte: habr.com

Adicionar um comentário