
Per tutto lo scorso anno ho lavorato come insegnante in uno dei centri di formazione provinciali (di seguito - CF), specializzati nell'insegnamento della programmazione. Non citerò questo centro di formazione e cercherò di evitare di menzionare nomi di aziende, nomi di autori, ecc.
Quindi, ho lavorato come insegnante di Python e Java. Questo CF acquistava materiali didattici per Java e hanno avviato Python quando sono arrivato io e glielo ho proposto.
Il materiale didattico per gli studenti (in sostanza un libro di testo o un manuale di autodidatta) l'ho scritto per Python, ma l'insegnamento di Java e i materiali didattici utilizzati lì hanno avuto un notevole impatto.
Dire che erano orribili è poco. La modalità del libro di testo di Java fornito da una molto nota azienda in Russia non era quella di insegnare a una persona le basi di questo linguaggio in generale e la paradigmaticità della OOP in particolare, ma piuttosto che i genitori, venendo alle lezioni aperte, vedessero come il loro bambino aveva copiato dal libro di testo un serpente o gli scacchi. Perché dico copiato? Molto semplice, il fatto è che il libro di testo conteneva interi fogli (A4) di codice, alcune parti del quale non venivano spiegate. Alla fine, l'insegnante doveva controllare in quale punto del codice si trovava ogni studente, spiegando ogni riga, oppure tutto si riduceva a copiare.
Direte: «E allora, che c'è di così strano? Lasciate che l'insegnante lavori meglio, e il serpente e gli scacchi sono comunque fantastici!»
Beh, sarebbe tutto fantastico se il numero di persone nel gruppo non fosse di 15, il che è già significativo se intendete seguire tutti, spiegando: «Ma cosa stiamo scrivendo, dopo tutto?»
Oltre al numero di persone nel gruppo, c'è un altro problema legato a questo materiale didattico. Il codice è scritto... come dire, semplicemente terribile. Un insieme di antipattern, arcaismi, poiché il libro non è stato aggiornato da tempo, e il nostro preferito, ovviamente — le linee guida di stile. Quindi, anche se riuscite a controllare tutti i vostri discepoli e a spiegare rapidamente e chiaramente cosa significa il codice copiato, il codice stesso è così terribile che insegnerà, per usare un eufemismo, tutt'altro.
E così siamo arrivati alla fine, distruggendo letteralmente questo manuale — sin dall'inizio manca un'introduzione almeno adeguata che spieghi cosa sono i tipi di dati, che esistono tipi di oggetto e primitivi, quale criterio verifica la proprietà che genera questa dicotomia, ecc. Nella prima stessa capitolo, a voi e ai vostri studenti viene proposto di scrivere un programma che crea una finestra e visualizza "Ciao!", tuttavia non viene spiegato cosa significhi effettivamente questo codice, ma solo rimandi a future lezioni, ad esempio si menziona "main" — il punto di entrata, ma nemmeno viene definito il concetto stesso di "punto di entrata".
Per riassumere, questo libercolo era un meme anche tra i docenti e la dirigenza. Non insegnava ai ragazzi assolutamente nulla; una volta mi sono imbattuto in un gruppo che studiava da un anno con questi materiali, e alla fine non riuscivano nemmeno a scrivere un ciclo, e segnalo che erano tutti molto intelligenti e presto la situazione non era così negativa. La maggior parte dei colleghi cercava di allontanarsi dai materiali didattici, affinché il materiale fosse assimilato e non finisse solo nel vuoto, anche se c'erano persone meno scrupolose che consideravano normale che il loro studente copiasse senza alcuna spiegazione.
Quando è diventato chiaro che avrei lasciato il centro di formazione, ma dovevo in qualche modo continuare il programma di Python l'anno successivo, ho iniziato a scrivere il mio manuale. In breve, l'ho diviso in due parti; nella prima spiegavo tutto sui tipi di dati, il loro significato, le operazioni e le istruzioni del linguaggio. Tra i vari argomenti ho creato delle domande e risposte, affinché il futuro insegnante potesse capire come lo studente avesse assimilato l'argomento. E alla fine ho preparato un piccolo progetto. La prima parte spiega così le basi del linguaggio e le chiarisce, coprendo circa 12-13 lezioni da 30-40 minuti. Nella seconda parte ho già scritto sull'OOP, descrivendo in cosa l'implementazione di questa paradigma in Python differisca dalla maggior parte degli altri linguaggi, ho fatto molti riferimenti alla guida allo stile, ecc. Per riassumere — ho cercato di non assomigliare minimamente a ciò che era presente nel manuale Java. Recentemente ho scritto all'attuale insegnante di Python, chiedendo un feedback sui materiali e ora sono felice che tutto vada bene, e che i ragazzi capiscano realmente la programmazione in Python.
Quale conclusione vorrei trarre da questa storia: cari genitori, se decidete di mandare vostro figlio in un centro di formazione, seguite attentamente ciò che fanno, affinché il vostro bambino non perda tempo inutilmente e in futuro non si allontani dalla voglia di programmare.
UPD: Come giustamente sottolineato nei commenti, non ho praticamente detto nulla sulla presentazione del materiale. Dico subito che ritengo che ci debba essere più pratica, il più possibile. Alla fine di ogni lezione della prima parte, ho proposto 4-5 piccole esercitazioni pratiche sul tema del capitolo. Tra i capitoli c'erano sessioni di QnA (lezioni di controllo), dove c'erano anch'esse esercitazioni pratiche, ma già valutative; alla fine della prima parte c'era anche un progetto su un tema a scelta tra quelli proposti. Nella seconda parte, ho fatto un'introduzione alla programmazione orientata agli oggetti creando un mini-gioco da console, il cui sviluppo è stato l'intera seconda parte e l'introduzione alla paradigma.
Solo gli utenti registrati possono partecipare al sondaggio. , per favore.
Il tuo bambino sta imparando a programmare in un centro di formazione?
4,6%Sì3
95,4%No62
Hanno votato 65 utenti. 27 utenti si sono astenuti.
Fonte: habr.com
