Como ensino Python aos nenos?

Como ensino Python aos nenos?

O meu traballo principal está relacionado cos datos e a programación en R, pero neste artigo quero falar sobre a miña afección, que incluso trae algún ingreso. Sempre me interesou contar e explicar cousas a amigos, compañeiros e compañeiras. Tamén sempre me resultou doado atopar unha linguaxe común cos nenos, non sei por que. En xeral, creo que criar e ensinar aos fillos é unha das actividades máis importantes de todas, e a miña muller é mestra. Entón, hai aproximadamente un ano, anunciei nun grupo local de Facebook, formei un grupo e comecei a ensinar Scratch e Python unha vez por semana. Agora teño cinco grupos, a miña propia clase na casa e clases individuais. Como cheguei a vivir deste xeito e exactamente como ensino aos nenos, vouvos contar neste artigo.

Vivo en Calgary, Alberta, Canadá, polo que algunhas cousas serán específicas locais.

A sala

A dispoñibilidade de espazo para practicar foi unha preocupación importante desde o principio. Tentei buscar oficinas e aulas para alugar por horas, pero non tiven moito éxito. A nosa universidade e SAIT, o equivalente local do MIT, ofrecen clases con e sen ordenadores. Os prezos alí resultaron pouco humanos, e ao final resultou que a universidade non admite menores, e SAIT en xeral só aluga aos seus propios estudantes. Entón, esta opción foi eliminada. Hai moitos centros de oficinas que alugan salas de reunións e oficinas por horas, hai empresas enteiras que ofrecen unha morea de opcións desde unha aula completa ata unha sala para catro persoas. Tiña esperanzas, xa que Alberta é unha provincia petroleira, estivemos nunha crise lenta desde 2014 e moitos espazos comerciais están baleiros. Non debería ter esperanzas; os prezos resultaron tan escandalosos que nin os crin ao principio. É máis fácil para os propietarios sentarse en oficinas baleiras e pagar custos que botar.

Nese momento, recordei que pago os meus impostos regularmente e se o noso querido estado, ou mellor dito, a cidade de Calgary, ten algo alí. Resultou que realmente hai. A cidade ten áreas para o hóckey e outros deportes de patinaxe artística, e nestes ámbitos hai salas onde os duros guerreiros de xeo discuten estratexias para futuras batallas. En definitiva, cada areal ten un par de cuartos con mesas, cadeiras, un encerado branco e ata unha pía con chaleira. O prezo é bastante divino: 25 tugriks canadenses por hora. Inicialmente decidín facer clases durante hora e media, polo que fixen o prezo dunha clase en 35 dólares por clase nun grupo de cinco persoas, para compensar o aluguer e para meter algo no peto. En xeral, gustoume traballar nas arelas, resolveu un dos problemas: a maioría da xente de fala rusa vive no sur e eu vivo no norte da cidade, polo que escollín unha area aproximadamente no medio. Pero tamén houbo inconvenientes. A burocracia canadense é boa e amigable, pero, por dicilo suavemente, pode ser algo torpe. Non hai problemas cando te acostumas ao ritmo e planificas con antelación, pero ás veces xorden momentos desagradables. Por exemplo, na páxina web da cidade pode seleccionar convenientemente unha hora e un lugar e reservar unha habitación, pero non pode pagar, de ningún xeito. Eles fan as chamadas telefónicas eles mesmos e aceptan pagos con tarxeta. Podes ir á oficina e pagar en efectivo. Houbo un momento divertido pero non moi agradable no que agardaba a súa chamada para pagar a segunda lección, non chegou, e o último día cheguei quince minutos tarde á oficina. Tiven que achegarme á seguridade con cara descarada e mentir que a habitación estaba reservada. Os canadenses asumimos a miña palabra; deixáronme entrar con calma e non comprobaron nada, pero non o faría se a xente non estivese xa camiño da clase.

Así traballei o inverno e a primavera, e despois producíronse cambios que foron o colmo. En primeiro lugar, a oficina estaba pechada aos visitantes e ofrecéronse a aceptar pagos por teléfono á volta da esquina. Senteime no corredor polo menos media hora antes de pasar. En segundo lugar, se antes a miña querida tía me cobraba unha hora e media, agora unha rapaza contestaba o teléfono e dicía que o pago era só por unha hora. Nese momento, o meu grupo era de tres ou dúas persoas, e os 12.5 dólares extra non eran para nada superfluos. Claro que son ideolóxico, pero se a miña muller me bota á rúa, non haberá quen ensine. Daquela aínda estaba no paro.

E decidín ir á biblioteca. As bibliotecas alugan salas marabillosas de xeito totalmente gratuíto, pero hai un problema: non podes realizar actividades comerciais. Incluso as organizacións benéficas non están autorizadas a recoller diñeiro alí. Dixéronme que isto non está especialmente controlado, o principal é non levar cartos na entrada, pero realmente non me gusta romper as regras. Outro problema é que as salas adoitan estar ocupadas e é difícil realizar clases programadas á vez nun só lugar. Daba clases en bibliotecas durante o verán e principios do inverno, tiña que escoller as que tiñan espazo, e ao final cambiei cinco ou seis bibliotecas. Entón comecei a reservar unha praza con dous meses de antelación, e aínda así, só conseguín facelo nunha pequena biblioteca; o resto habitualmente non tiña prazas durante o tempo necesario. E entón decidín facer unha clase de informática na casa. Colguei o taboleiro, merquei unha segunda mesa e un par de monitores vellos do anuncio. No traballo, a empresa comproume un novo portátil potente porque a análise no meu ordenador levou case 24 horas. Entón, tiña un novo ordenador vello, un vello ordenador vello, un portátil no que o meu pequeno esmagaba a pantalla e un antigo netbook no que eu mesmo esmagaba a pantalla. Conecteinos todos aos monitores e instalei Linux Mint en todas partes, agás no netbook, no que instalei un kit de distribución moi lixeiro, ao parecer, Pappy. Aínda teño un portátil novo e vello, comprado por 200 dólares, conecteino á televisión. O que tamén é importante é que o noso dono cambiou recentemente as nosas fiestras e, en lugar da desorde terrible e desmoronada da habitación, agora temos novos marcos brancos. A miña muller garda a sala de estar, a cociña e o segundo dormitorio para un xardín de infancia, polo que todo o piso resultou ser puramente pedagóxico. Entón, agora todo está ben coas premisas, pasemos á docencia.

Rascar

Estou comezando a ensinar os conceptos básicos de programación usando a linguaxe Scratch. Esta é unha linguaxe que usa bloques prefabricados, inventados nun tempo no MIT. A maioría dos nenos xa viron Scratch na escola, polo que collen bastante rápido. Hai programas e plans de clases preparados, pero non me gustan nada. Algúns son estraños: crea a túa propia historia, por exemplo. Todo o programa consta de incontables bloques say '<...>' for 2 seconds. Pódese ver que foi inventado por persoas moi creativas, pero con este enfoque podes ensinar a escribir o código clásico de espagueti indio. Desde o principio, falo de principios como DRY.Outras coleccións de tarefas son bastante boas, pero os nenos axiña captan a esencia e comezan a facelos como unha metralleta. Como resultado, fan nunha lección o que deberían ter feito en cinco. E buscar e seleccionar tarefas leva moito tempo persoal. En xeral, Scratch non lembra máis a unha linguaxe, senón a un IDE, onde só tes que lembrar onde facer clic e onde buscar que. En canto os alumnos se senten máis ou menos cómodos, intento transferilos a Python. Incluso a miña nena de sete anos escribe programas sinxelos en Python. O que vexo como beneficio de Scratch é que contén conceptos básicos que se aprenden dun xeito lúdico. Por algún motivo, é moi difícil para todos, sen excepción, entender a idea dunha variable. Ao principio despeitei rapidamente o tema e seguín adiante ata que me atopei co feito de que nin sequera sabían que facer ao respecto. Agora dedico moito tempo ás variables e volvo constantemente a elas. Tes que facer uns martelos estúpidos. Cambio diferentes variables na pantalla e fágoas falar os seus valores. Scratch tamén ten estruturas de control e comprobacións de valores, como while, for ou if en pitón. Son bastante fáciles, pero hai problemas cos bucles aniñados. Intento dar varias tarefas cun bucle aniñado, e para que a súa acción estea clara. Despois diso paso ás funcións. Mesmo para os adultos, o concepto de función non é obvio, e máis aínda para os nenos. Sigo moito tempo sobre o que é unha función en xeral, falo dunha fábrica que recibe artigos como entrada e emite mercadorías, dun cociñeiro que elabora alimentos a partir de materias primas. Despois elaboramos un programa de "facer un bocadillo" con produtos, e despois elaboramos unha función á que se pasan os produtos como parámetros. Remato as funcións de aprendizaxe con Scratch.

Python

Con python todo é máis sinxelo. Hai un bo libro Python for Kids, que é o que eu ensino. Todo é estándar alí: liñas, orde de operacións, print(), input() etc. Escrito en linguaxe sinxela, con humor, gústalle aos nenos. Ten un defecto común a moitos libros de programación. Como na famosa broma - como deseñar unha curuxa. Oval - círculo - curuxa. A transición de conceptos simples a conceptos bastante complexos é demasiado brusca. Levo varias sesións anexar o obxecto ao método dot. Por outra banda, non teño présa, repito o mesmo de diferentes xeitos ata que polo menos se xunte algunha imaxe. Comezo coas variables e volvo a martelo, esta vez en Python. As variables son unha especie de maldición.

Un estudante intelixente, que hai un par de meses fixo clic con habilidade nas variables en Skratch, parece un carneiro na nova porta e non pode engadir a X coa Y, que está claramente escrita no encerado nunha liña superior. Repetimos! Que ten unha variable? Nome e significado! Que significa o signo igual? Asignación! Como comprobamos a igualdade? Signo de dobre igual! E repetimos isto unha e outra vez ata a iluminación completa. Despois pasamos ás funcións, onde a explicación sobre os argumentos leva máis tempo. Argumentos nomeados, por posición, por defecto, etc. Aínda non chegamos ás clases en ningún grupo. Ademais de Python, estudamos os algoritmos populares do libro, máis sobre iso máis tarde.

En realidade, formación

A miña lección estrutúrase así: dou teoría durante media hora, comprobo coñecementos e consolido o aprendido. Chegou a hora dos laboratorios. Moitas veces déixome levar e falo ata unha hora, despois queda media hora para a práctica. Cando estaba aprendendo python, vin o curso Algoritmos e estruturas de datos Khiryanov do MIPT. Gustoume moito a súa presentación e a estrutura das súas conferencias. A súa idea é esta: os frameworks, a sintaxe, as bibliotecas están quedando obsoletos. Arquitectura, traballo en equipo, sistemas de control de versións - aínda é cedo. Como resultado, permanecen algoritmos e estruturas de datos que se coñecen desde hai moito tempo e que sempre estarán nunha forma similar. Eu mesmo só recordo números enteiros do instituto pascal. Dado que os meus estudantes son na súa maioría novos, de sete a quince anos, creo que para o seu futuro é máis importante sentar as bases que escribir rapidamente un xogo de plataformas en Python. Aínda que queren máis un xogo de plataformas, e eu entendoos. Doulles algoritmos sinxelos: unha burbulla, busca binaria nunha lista ordenada, notación polaca inversa usando unha pila, pero analizamos cada un con gran detalle. Resultou que os nenos modernos non saben en principio como funciona un ordenador, tamén cho contarei. Intento ligar varios conceptos en cada conferencia. Por exemplo, un ordenador - memoria/porcentaxe - memoria formada por celas (deixareiche manter o chip de memoria, adiviña cantas celas hai) - cada cela é como unha bombilla - hai dous estados - verdadeiro/falso - e/ou - binario/decimal - 8bit = 1 byte - byte = 256 opcións - tipo de datos lóxico nun bit - enteiros nun byte - float en dous bytes - string nun byte - o número máis grande en 64 bits - unha lista e unha tupla dos tipos anteriores. Fago unha reserva de que nun ordenador real todo é algo diferente e a cantidade de memoria para estes tipos de datos é diferente, pero o principal é que nós mesmos no proceso creamos tipos de datos máis complexos a partir doutros máis sinxelos. Os tipos de datos son quizais o máis difícil de lembrar. É por iso que comezo cada lección cun rápido quecemento: un alumno nomea o tipo de datos, o seguinte dá dous exemplos e así sucesivamente en círculo. Como resultado, conseguín que ata os máis pequenos gritan alegremente: flota! booleano! sete, cinco! pizza, coche! Durante unha charla, tiro constantemente dun ou doutro, se non, axiña comezan a coller o nariz e mirar para o teito. E o nivel de coñecemento de todos hai que comprobar de cando en vez.

Os meus alumnos non deixan de sorprenderme, tanto pola súa estupidez como pola súa inesperada intelixencia. Afortunadamente, con máis frecuencia con intelixencia.

Quería escribir máis, pero resultou ser só unha folla. Estarei encantado de responder a todas as preguntas. Acepto calquera crítica de todos os xeitos posibles, só vos pido que sexades máis tolerantes uns cos outros nos comentarios. Este é un bo artigo.

Fonte: www.habr.com

Engadir un comentario