Como eu ensino crianças Python

imagem

Meu trabalho principal está relacionado a dados e programação R , mas neste artigo eu quero falar sobre meu hobby, que até gera alguma renda. Eu sempre estava interessado em contar e explicar coisas para amigos, colegas e colegas de classe. Sempre foi fácil para mim encontrar uma linguagem comum com crianças, não sei por quê. Em geral, acredito que criar e educar filhos é uma das ocupações mais importantes de todas, e minha esposa é professora. Em geral, há cerca de um ano, eu anunciava em um grupo local no Facebook, digitei um grupo e comecei a ensinar scratch e python uma vez por semana. Agora eu tenho cinco grupos, minha própria turma em casa e aulas individuais. Como cheguei a tal vida e como exatamente ensino crianças, explicarei neste artigo.

Eu moro no Canadá, a cidade de Calgary, Alberta, então alguns pontos estarão relacionados a detalhes locais.

Quarto


Ter espaço para as aulas era um grande problema desde o início. Tentei procurar escritórios e aulas para alugar a cada hora, mas não com muito sucesso. Nossa universidade e a SAIT, a contraparte local do MIT, fazem aulas com e sem computadores. Os preços acabaram não sendo muito humanos, mas, no final, a universidade não deixou menores, e a SAIT geralmente passou apenas para seus alunos. Portanto, esta opção desapareceu. Existem muitos centros de escritórios que alugam salas de reuniões e escritórios por hora; há empresas inteiras que oferecem várias opções, desde uma classe completa até uma sala para quatro pessoas. Eu tinha esperanças, já que Alberta é uma província de petróleo, temos uma crise lenta desde 2014 e muitas áreas de negócios estão vazias. Em vão, esperava que os preços fossem tão atraídos que a princípio nem sequer acreditei. É mais fácil para os proprietários sentar-se em escritórios vazios e pagar custos do que despejar.

Nesse momento, lembrei-me de que pago regularmente impostos e se nosso querido estado tem algo lá, ou melhor, a cidade de Calgary. Descobriu-se que há muito. A cidade possui arenas para jogar hóquei e outras patinação artística, e essas arenas têm salas onde os duros guerreiros do gelo discutem estratégias para futuras batalhas. Em resumo, em cada arena há duas salas com mesas, cadeiras, quadro branco e até uma pia com chaleira. O preço é bastante divino - 25 tugriks canadenses por hora. Inicialmente, decidi fazer as aulas por uma hora e meia, então fixei o preço de uma lição de US $ 35 do nariz em um grupo de cinco pessoas para compensar o aluguel, bem, coloque algo no meu bolso. Em geral, eu gostava de estudar em arenas, isso resolveu um dos problemas - a maioria das pessoas de língua russa vive no sul e eu moro no norte da cidade, então escolhi a arena no meio. Mas houve inconvenientes. A burocracia canadense é boa e amigável, mas, por assim dizer, pode ser um pouco lenta. Não há problema 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 escolher convenientemente a hora e o local, reservar um quarto, mas não pode pagar de forma alguma. Eles ligam por telefone e aceitam pagamento com cartão. Você pode ir ao escritório e pagar em dinheiro. Houve um momento engraçado, mas não muito agradável, quando eu estava esperando a ligação deles para pagar a segunda lição, não esperei e fiquei quinze minutos atrasado para o escritório no último dia. Eu tive que abordar o guarda com um rosto descarado e mentir que o quarto estava reservado. Nós, canadenses, aceitamos nossa palavra, calmamente, permitimos que eu entrasse e não verificássemos nada, mas eu não faria isso se as pessoas não tivessem ido às aulas.

Então, estudei o inverno e a primavera, e depois houve mudanças que se tornaram a gota d'água. Em primeiro lugar, o escritório foi fechado para visitantes e se ofereceu para aceitar o pagamento por telefone na esquina. Sentei-me por pelo menos meia hora no corredor antes de telefonar. Em segundo lugar, se antes minha querida tia me aceitava o pagamento por uma hora e meia, agora uma garota atendia o telefone e dizia que o pagamento era feito apenas a uma hora. Naquela época, eu tinha um grupo de três ou duas pessoas, e os US $ 12,5 extras não eram nada extras. É claro que sou ideológico, mas se minha esposa me levar para a rua, não haverá ninguém para ensinar. Eu ainda estava sem trabalho então.

E eu decidi ir à biblioteca. As bibliotecas alugam quartos bonitos gratuitamente, mas há uma coisa: você não pode realizar atividades comerciais. Mesmo organizações de caridade não têm o direito de coletar dinheiro lá. Eles me disseram que isso não é particularmente controlado, a principal coisa ali é não levar dinheiro na entrada, mas eu realmente não gosto de violar as regras. Outro problema - as salas costumam estar ocupadas e é difícil realizar aulas em horário programado ao mesmo tempo em um só lugar. Ensinei bibliotecas no verão e no começo do inverno, tive que escolher aquelas onde havia um lugar; no final, troquei cinco ou seis bibliotecas. Então ele começou a reservar um lugar em dois meses e, depois, acabou sendo feito apenas em uma pequena biblioteca; no resto, não havia lugares regularmente no momento certo. E então eu decidi fazer uma aula de informática em casa. Pendurei o quadro, comprei um anúncio para uma segunda mesa e dois monitores antigos. Para o trabalho, a empresa comprou um laptop novo e poderoso para mim, porque a análise levou quase 24 horas no meu computador. No total, eu tinha um computador antigo, um computador antigo, um laptop, no qual minha pequena tela esmagada e um netbook antigo, no qual eu mesmo esmagava a tela. Conectei todos eles aos monitores e instalei o Linux mint em qualquer lugar, exceto o netbook, no qual instalei uma distribuição muito leve, ao que parece, pappi. Eu ainda tenho um laptop novo e antigo, comprado por US $ 200, eu o conectei à TV. Outra coisa importante é que nosso proprietário mudou recentemente as janelas para nós, e agora na sala há novas molduras brancas em vez de uma terrível miséria desabada. A esposa mantém a sala de estar, a cozinha e o segundo quarto em um jardim de infância, de modo que todo o andar acabou sendo puramente pedagógico. Então, agora está tudo bem com a sala, vamos diretamente para o ensino.

Scratch


Estou começando a dar o básico de programação com a linguagem zero. Essa é uma linguagem que usa blocos prontos, criados no momento no MIT. A maioria das crianças já viu recados na escola, tão rapidamente dominados. Existem programas prontos e planos de aula, mas não gosto deles. Um pouco estranho - crie sua própria história, por exemplo. Todo o programa consiste em inúmeros blocos, say '<...>' for 2 seconds . Pode-se ver que foi inventado por personalidades muito criativas, mas com essa abordagem você pode aprender a escrever o código clássico de espaguete indiano. Estou falando de princípios como o DRY desde o início. Outras coleções de tarefas são muito boas, mas as crianças rapidamente chegam ao fundo do assunto e começam a fazê-las como uma metralhadora. Como resultado, em uma lição, eles fazem o que deveriam ter em cinco. E a pesquisa e a seleção de tarefas levam muito tempo pessoal. Em geral, o rascunho lembra mais uma linguagem, mas um IDE, onde você só precisa se lembrar onde clicar e onde procurar. Assim que os alunos aprendem mais ou menos, tento transferi-los para python. Eu até tenho uma menina de sete anos em python que escreve programas simples. O que vejo o benefício do zero - existem conceitos básicos assimilados de maneira lúdica. Por alguma razão, sem exceção, é muito difícil para todos entenderem a ideia de uma variável. No começo, eu rapidamente examinei esse tópico e segui em frente até me deparar com o fato de que eles geralmente não sabiam o que fazer sobre isso. Agora dedico muito tempo às variáveis ​​e volto a elas constantemente. Eu tenho que fazer um groove estúpido. Eu mudo variáveis ​​diferentes na tela e as faço dizer o significado delas. Também no zero, existem estruturas de controle e verificações de valores, como while , for ou if em python. Eles são dados com bastante facilidade, somente em ciclos aninhados há problemas. Eu tento executar várias tarefas com um loop aninhado e para que sua ação seja clara. Depois disso, passo para as funções. Mesmo para adultos, o conceito de função não é óbvio, e mais ainda para crianças. Por um longo tempo, crucifico o que é uma função em geral, falo sobre uma fábrica que recebe objetos como insumos e distribui bens, sobre um cozinheiro que produz alimentos a partir de produtos crus. Em seguida, criamos um programa "faça um sanduíche" com produtos e, em seguida, fazemos uma função para a qual os produtos são passados ​​como parâmetros. No estudo das funções, acabo com um arranhão.

Python


Python é mais fácil. Existe um bom livro sobre Python para crianças e estou aprendendo com ele. Tudo é padrão lá - strings, ordem de operações, print() , input() , etc. Escrito em linguagem fácil, com humor, as crianças gostam. Ele tem uma falha inerente a muitos livros de programação. Como em uma piada famosa - como desenhar uma coruja. Oval - círculo - coruja. De conceitos simples, uma transição muito nítida para conceitos bastante complexos. São necessárias algumas lições para anexar o objeto ao método point. Por outro lado, não tenho pressa, repito a mesma coisa de uma maneira diferente até que pelo menos uma imagem se desenvolva. Começo com as variáveis ​​e as martelo novamente, já em python. Variáveis ​​são algum tipo de maldição.

Um aluno inteligente que clicou as variáveis ​​de maneira inteligente alguns meses atrás, parece um carneiro em um novo portão e não pode adicionar X ao jogador, que está claramente escrito na linha do quadro acima. Repita! O que uma variável possui? Nome e significado! O que significa o sinal de igual? Tarefa! E como verificamos a igualdade? Duplo sinal de igual! E assim repetimos várias vezes, até a completa iluminação. Em seguida, passamos às funções, onde a explicação sobre argumentos leva mais tempo. Argumentos nomeados, por posição, por padrão e assim por diante. Ainda não alcançamos as aulas em nenhum grupo. Além de python no livro, estudamos algoritmos populares, mais sobre isso mais tarde.

Na verdade, treinando


Minha lição está organizada assim - por meia hora, dou uma teoria, testo conhecimentos e consolido o que aprendi. Hora - Laboratórios. Freqüentemente eu me empolgo e transmito até uma hora, e então meia hora é deixada para o treino, respectivamente. Quando eu estava aprendendo python, passei pelo MIPT no curso de Algoritmos e Estruturas de Dados de Khiryanov. Gostei muito da apresentação e da estrutura das palestras. A ideia dele é que isso - estruturas, sintaxe, bibliotecas - se tornem obsoletas. Arquitetura, trabalho em equipe, sistemas de controle de versão são muito cedo. Como resultado, permanecem algoritmos e estruturas de dados que são conhecidas há muito tempo e sempre terão uma forma semelhante. Eu mesmo do instituto pascal apenas números inteiros e lembro. Como meus alunos são em sua maioria jovens, de sete a quinze anos, acredito que é mais importante para o futuro deles lançar as bases do que escrever rapidamente um jogo de plataformas em python. Embora eles se pareçam mais com um jogo de plataformas, e eu os entendo. Dou-lhes algoritmos simples - uma bolha, uma pesquisa binária em uma lista classificada, a notação polonesa reversa usando a pilha, mas analisamos cada uma com mais detalhes. Descobriu-se que as crianças modernas não sabem, em princípio, como o computador está organizado, eu também digo. Em cada palestra, tento conectar vários conceitos. Por exemplo, um computador - memória / porcentagem - memória das células (deixe-me segurar um cartão de memória, adivinhe quantas células estão aqui) - cada célula é como uma lâmpada - há dois estados - verdadeiro / falso - e / ou - binário / decimal - 8 bits = 1 byte - byte = 256 opções - um tipo de dados lógicos em um bit - números inteiros em um byte - float em dois bytes - string em um byte - o maior número em 64 bits - uma lista e tupla dos tipos anteriores. Faço uma reserva de que em um computador real tudo é um pouco diferente e uma quantidade diferente de memória para esses tipos de dados, mas o principal é que, no processo, nós mesmos 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. Portanto, inicio cada lição com um aquecimento rápido - um aluno nomeia o tipo de dados, o próximo dá dois exemplos e assim por diante. Como resultado, eu tive certeza de que até as crianças mais novas gritavam alegremente - flutuam! booleano! sete, cinco! pizza, carro! Durante a palestra, eu constantemente abalo um ou outro, caso contrário, eles rapidamente começam a picar o nariz e olhar para o teto. E o nível de conhecimento de cada um deve ser verificado entre os casos.

Meus alunos não deixam de me surpreender com sua estupidez e raciocínio rápido e inesperado. Felizmente, esperteza, mais frequentemente.

Eu queria escrever mais, mas mesmo assim a folha acabou. Responderei com prazer a todas as perguntas. Congratulo-me com qualquer crítica em todos os sentidos, apenas um pedido - para ser mais tolerante um com o outro nos comentários. Este é um bom artigo.

Source: https://habr.com/ru/post/pt485424/


All Articles