La base di ogni programmazione è su... enigmi

Saluti, residenti di Khabrovsk!

In questo articolo voglio parlare della mia esperienza come insegnante di programmazione C++ presso un college di un'università tecnica. È stata un'esperienza unica nella vita che mi ha insegnato molto. Quando si tratta di fatti interessanti del tuo passato personale, questo passaggio della vita è uno dei primi a venire in mente.
Andiamo.

Innanzitutto, un po' di me.
Nel 2016 mi sono laureato con lode all'istituto in Sicurezza informatica dei sistemi automatizzati. Durante i miei studi ho avuto più volte modo di realizzare il mio potenziale scrivendo articoli scientifici, partecipando a concorsi e borse di studio. Nel 2015 ho avuto l'opportunità di diventare il vincitore del concorso tutto russo per giovani scienziati “UMNIK”. Nel 2016, prima di completare gli studi, era già impiegato in una grande organizzazione della città come “Specialista in Sicurezza dell’Informazione, Crittografia e Crittografia”.
Insomma, qualcosa del genere. Puoi immaginare che avessi ancora un'idea sulla programmazione.

Ed eccoci al 2017. Studi postlaurea. Mi è stato chiesto di insegnare C++ in un college per un semestre, per il quale mi sono stati promessi buoni bonus per alleviare il carico di uno studente laureato e niente di più.

Ad essere sincero, ero sinceramente interessato a mettermi alla prova in questo credo.

Prima coppia
Settembre. Prima settimana di scuola. Gli studenti sono venuti da me. "Il gruppo più cattivo": così venivano chiamati.
23 persone. "Programmatori".

Come previsto, prima mi sono presentato. Con discrezione ho raccontato loro il contenuto della parte “Prima di tutto, un po' di me”...
Poi cominciò la cosa terribile. Alla domanda “Cosa puoi fare?” gli studenti (li chiameremo così da ora in poi) hanno risposto che potevano fare poco più di niente (beh, questo significava che alcuni di loro sapevano com'era la MS VS e potevano creare un progetto “Hello world”). .. Programmatori. Ultimo corso…

Inoltre hanno spiegato dettagliatamente, “a colori”, che non gli è stato insegnato nulla e che in generale sono rimasti delusi dalla programmazione...

Quasi tutti i giorni fino alla lezione successiva sono andati così:
La base di ogni programmazione è su... enigmi

... ma il giorno prima è nata l'idea di impegnarsi per correggere la situazione attuale nelle menti e nelle coscienze di questi giovani. E poi "Ostap si è lasciato trasportare".

Introduzione alla programmazione
Per la prossima lezione ho portato... un puzzle.
Si si. Puzzle. "Come addestrare il tuo drago." Le regole erano semplici. Il girone era diviso in 3 squadre. Ogni squadra ha assemblato la sua parte. Alcuni rappresentano la foresta, altri la terra, altri ancora il drago al centro dell'immagine. Mentre tutta la coppia metteva insieme il puzzle, glielo dissi Anche mettere insieme un puzzle è programmareche i programmatori spesso usano il codice di qualcun altro, che ogni progetto ha diversi team, funzionalità, moduli...
A poco a poco, gli studenti più letargici si unirono al processo.
Quando ho finito di inserire l'idea della programmazione in concetti, processi e... enigmi aziendali, era tempo di stabilire le regole della formazione.
Per ogni lezione, ogni studente ha dovuto scrivere 10 termini di informatica su un quaderno. Qualunque. Ognuno ha il suo. Il punto è che ho preso il taccuino di uno studente e ho trovato tra tutti i termini applicato al massimo e ho chiesto informazioni a un altro studente. Quando un altro studente dice: "Non ho scritto quel termine", non c'è stata alcuna penalità (a causa del buon senso), ma quello studente doveva scrivere i termini "mancanti" (come tutti gli altri che non li avevano) e trovare il loro significato in base alla prossima occupazione.

Questo è quello che abbiamo fatto. Ogni lezione iniziava con un'allegra casualità in relazione a due o tre studenti. I ragazzi erano entusiasti di questo processo.

Argomenti della lezione
Quando si inizia la formazione, è molto importante fornire agli studenti una buona letteratura. Secondo me il libro ideale era:
La base di ogni programmazione è su... enigmi

Un tempo dovevo leggerlo di nascosto abbracciando Microsoft Visual Studio. Poi sono riuscito a capire la programmazione quasi da zero. Opzione perfetta.

Vai con modestia dagli studenti e dici: "Per diventare programmatori, devi solo leggere e provare tutto in questo libro" e gettare il libro sul tavolo. L'importante è non confondere i libri nello zaino...

Prima di ogni argomento, dovevo sicuramente prepararmi a fondo. Ho letto lo stesso Laforet e molte altre fonti interessanti da Internet.
La spiegazione è partita quasi da zero. Inoltre, era necessario capire dove le conoscenze di base degli studenti venivano tagliate deduttivamente.
Array -> Lavorare con la memoria (costruttori) -> Collegamenti -> Come funziona la memoria -> Unità -> Cos'è un'unità fisica -> Rappresentazione binaria dei dati...
La base di ogni programmazione è su... enigmi

Un crash test molto forte della conoscenza dei fatti fondamentali sulla programmazione. Non sono più un programmatore, sono uno storico!

E quindi, significa che si stanno svolgendo battaglie storiche per più coppie di seguito. Un giorno, un segretario del dipartimento si affaccia nel nostro ufficio e, vedendo il gruppo, allarga gli occhi, scruta e chiude la porta. Come mi è stato detto più tardi, è rimasta scioccata dal fatto che QUESTO gruppo sedesse così in silenzio e mi ascoltasse così attentamente... Eh, facile.

Lavori di laboratorio
Le prime informazioni applicate sono i primi “laboratori”. In totale, il gruppo ha superato 10 lavori di laboratorio durante il semestre. All'inizio hanno realizzato la console più semplice a + b, e in quest'ultimo hanno scritto, anche se basate su console, ma applicazioni piuttosto interessanti, come il calcolo del valore dell'integrale di una funzione data arbitrariamente utilizzando uno dei tre metodi - approssimativamente gli stessi compiti erano sulla certificazione finale - lavoro del corso.

Questo è solo l'approccio di accettazione no era familiare. Durante i miei studi all'istituto, mi sono trovato di fronte al fatto che essere intelligente e riuscire a superare i rapporti non sono la stessa cosa. Questo non mi andava affatto bene.

- Ragazzi, stavo pensando. Costruiamo una relazione “concettuale”. Se qualcuno di voi pensa di non aver bisogno di programmazione, la porta è laggiù. Ti insegno gratuitamente. Voglio vedere qui solo appassionati curiosi, premurosi e premurosi. “Chiedo a tutti gli altri di non far perdere tempo a tutti”, ho detto il primo giorno di lavoro in laboratorio. Successivamente, 5 persone hanno immediatamente smesso di frequentare le lezioni. Questo era logico e previsto. Era possibile provare a fare qualcosa di intelligibile con il resto.

- ... Non mi interessa guardare qualcuno fare il tuo lavoro solo per superarlo. Potreste non essere programmatori, ma sarete persone nelle mie classi devo.

Sembrava così:

case отличник

Uno studente si siede con me per consegnarmi il suo lavoro.
— L'hai fatto tu stesso?
- Sì.
- Cos'è questo?
- *risponde correttamente*.
*Chiedo ancora un paio di punti. Rispondi correttamente*
- accettato. Grande.

case болтун

— L'hai fatto tu stesso?
- Sì.
- Cos'è questo?
- *risponde in modo errato/non risponde*.
*Chiedo ancora un paio di punti. Stesso risultato*
- Non accettato. FALLITO Sto aspettando la ripresa.

case хорошист

— L'hai fatto tu stesso?
- Sì.
- Cos'è questo?
- *risponde correttamente, ma non con sicurezza, nuota*.
*Chiedo ancora un paio di punti. Stesso risultato*
- accettato. Bene.

case ровныйТроечник

— L'hai fatto tu stesso?
- No.
- Perché no?
- Difficile. Mi ha aiutato... *nomina onestamente uno studente eccellente del gruppo*
- Hai capito?
- Sì, ho capito quasi tutto.

- Cos'è questo?
- *risponde correttamente*.
*Chiedo ancora un paio di punti. Risposte più o meno corrette, a volte completamente sbagliate, anche se sono 50/50 corrette e sbagliate*
- accettato. Bene.

Non ha senso descrivere tutti gli altri casi. Sì, un “bravo studente” potrebbe essere insoddisfatto del fatto che uno studente “C” riceva lo stesso voto, in base all’onestà. Poi tutto dipende dall'umore. Oppure chiedo al “bravo studente” di guardare per terra, perché “ora lascerò cadere un pizzico di saggezza”, e poi ti racconterò l'essenza dell'approccio, descriverò ciò che nella vita ha maggior valore e spiegherò che era molto più difficile passare per lo studente “C” che per lui, il “bravo studente.”, ecc…
... oppure, come faceva una volta il mio insegnante, disegnerò un piccolo dente nella scatola del diario di fronte a questa persona insoddisfatta e la prossima volta completerò personalmente il lavoro di laboratorio per lui. Appena. Per non “spegnere” i tuoi compagni.

La base di ogni programmazione è su... enigmi

Valutazione
Il processo educativo, come il mondo intero, sta letteralmente annegando nei cartellini dei prezzi e nei voti.
Anche gli studenti sono persone, tuttavia, a mio avviso, anche qui il “quadro” avrebbe dovuto essere “scosso”.
Durante il semestre a tutti è stato assegnato un compito bonus. Registrati per github.com, carica lì un progetto C++ vuoto, esegui 2 aggiornamenti, esegui il commit e inviali. Per queste azioni ne sono state assegnate 15. Sì, sì, non 4, non 5, ma 15. Tre l'hanno capito. Questo era in qualche modo comprensibile per lo psicotipo dello studente, ma poi c'era un altro caso.
Una volta la nostra coppia è stata spostata in modo che lei fosse l'ultima, e anche attraverso un paio di finestre. Tuttavia, sono arrivate ancora 15 persone. Non volevo spiegare un nuovo argomento in onore di tale eroismo, dato che eravamo già andati abbastanza bene sui soli argomenti + l'argomento successivo non era molto semplice per i cervelli stanchi (il mio e quello degli studenti). Poi ho deciso di parlare di filosofia.

— Annuncio un'attrazione di generosità senza precedenti. Tutti mi dicono che voto dargli per il paio di oggi.
Tutti volevano una "A".
“Consideralo già lì”, dissi. Tutti erano felici.
Silenzio.
- perché nessuno voleva farlo? 7-ku o 10-ku?
Tutti spalancarono gli occhi e cominciarono a sorridere stupidamente.
- Ci scommetti? Alla rivista?! - arrivò una voce dal retro della scrivania.
- Sì, facile! - ho detto, - annuncio un blitz sui termini, chiunque risponderà a 10 delle mie domande - scommetto il 20 alla rivista, senza inganno, chi non risponde è quello giusto all'10 ottobre (meno dieci).

"La squadra si è rianimata, è iniziato un dibattito", tutti avevano onestamente guadagnato dei voti. Due si sono offerti volontari. Con piccole imprecisioni, si sono alternati con 10 domande su stack, coda, costruttore, distruttore, garbage collector, incapsulamento, polimorfismo, funzioni hash...
Ognuno è stato disegnato su una rivista 20-ka... ma l'importanza della rivista e dei voti cadde agli occhi di tutti. Ora mi pento di non aver chiesto se vorrebbero “condividere” la loro valutazione con qualcuno. Mi sembra che condividerebbero... D'ora in poi tutti hanno consegnato il “laboratorio” con conoscenza e onestà.

Da questo momento in poi è apparso un altro tipo di consegna in laboratorio:


case честноНеЕгоНоОнПытался

— L'hai fatto tu stesso?
- No.
- Perché no?
- Difficile. Mi ha aiutato... *nomina onestamente uno studente eccellente del gruppo*
- Hai capito?
— Sergey Nikolaevich, onestamente, non capisco niente, quindi ho scritto commenti accanto a ogni riga — beh, non è il mio genere, farò il trattorista
- Cos'è questo?
— *legge il commento opposto alla riga*.
- ...
- ...
— Qual è la differenza tra Bielorussia MTZ e Don 500 e K700?
- ??!.. Il primo è un trattore gommato prodotto a Minsk, spesso utilizzato nelle produzioni agricole leggere e medie. Ha anche ruote piccole davanti e ruote grandi dietro. Il Don 500 è fondamentalmente una mietitrice, mentre il K-700 Kirovets è un trattore gommato fuoristrada sovietico per uso generale, classe di trazione 5.
- accettato. Bene (!!!).
- Grazie, Sergej Nikolaevich!!!

Nella mia terra parlare di TractorA è quasi come parlare di SOLID da noi.

genio
C'era un Genio nel mio gruppo. Lo studente era molto in ritardo fin dalla prima lezione e non ha completato il puzzle insieme a tutti gli altri. Poi gli ho chiesto di fare quello che avevo programmato per tutti per la lezione successiva: scriversi su un pezzo di carta cosa gli interessa, cosa gli interessa. Secondo i risultati, “Genius” aveva 2-3 righe: qualcosa come “Mi rendo conto dell’inutilità dell’essere”...

...Oh Dio, nel mio gruppo ho il secondo Lao Tzu e Kojima in una sola persona...
La base di ogni programmazione è su... enigmi

Con mia sorpresa, nelle prime due lezioni ha risposto davvero brillantemente alle domande sui termini, ma l'effetto non è durato a lungo. Il "genio" smise di frequentare le lezioni e la volta successiva venne solo per superare il primo lavoro di laboratorio, che completò con successo. non è passato per ragioni oggettive. Quindi, a causa dell'assenteismo, accumulò naturalmente debiti che, come credeva, Ero semplicemente obbligato a contarlo, per così dire, “in modo fraterno”.
La mancata partecipazione alle coppie e l'aumento della frequenza cardiaca erano contrari ai principi stabiliti per la frequenza alle mie lezioni. Il "Genio" aveva solo 2 vie d'uscita dalla situazione: riabilitarsi (il percorso previsto) o rinunciare alle lezioni e sperare in una "C" data dall'ufficio del preside per sbarazzarsi del fannullone.
Ecco, questo è “Genio”... bisogna agire “brillantemente” subito. Questo giovane non poteva trovare niente di meglio che scrivere nel dialogo generale su VK (dove eravamo io e tutti gli studenti di questo gruppo) un'invettiva rabbiosa con maledizioni e insulti indirizzati a me.

Uhm... Delusione.
La cosa più sorprendente è che, prima che fosse completata l'operazione punitiva da parte della direzione del college, avesse deciso di chiedermi scusa. Per quello? - Sinceramente non capisco. A quel tempo ero da tempo indipendente dalle critiche, soprattutto da quelle francamente stupide. La mia personalità non ne è stata toccata, ma i processi sono processi, e come insegnante non potevo fare a meno di denunciarlo. Come si è scoperto, durante i suoi studi si erano già accumulate così tante denunce contro di lui che questo caso si è rivelato l'ultimo. È stato espulso. Dall'ultimo anno della scuola professionale.
Forse mi osserva da molto tempo attraverso la vista di un fucile di precisione, ma, a dire il vero, non mi interessa.
Eh, genio, sei senza cuore...

Finale
Per me personalmente, l'esperienza di insegnamento è stata una delle più illuminanti. Questo mi ha aiutato a consolidare le mie conoscenze fondamentali sulla programmazione dopo aver studiato all'istituto. Mi sentivo fiducioso nella specialità che avevo scelto (la gamma di specialità disponibili). Di particolare importanza è il fatto che il "gruppo più cattivo" mi ha infuso rispetto e cordialità: questo vale molto. Sono riuscito a trovare un modo per raggiungere i loro innovatori interiori, ho cercato di instillare la realtà e non queste priorità stereotipate. È un peccato non essere arrivati ​​​​al "puzzle" della codifica: quando tutti avrebbero dovuto fare una parte del codice e, collegando tutte le parti in una, otterremmo un grande programma funzionante...
Spero che un giorno ognuno di loro provi questo... ma per ora, di seguito sono riportati gli screenshot con le recensioni di diversi studenti dopo 2 anni.

La base di ogni programmazione è su... enigmi

È troppo presto per trarre conclusioni sul successo della carriera di programmatore per qualcuno di loro, perché ora la maggior parte di questo gruppo studia all'università. Il tempo mostrerà.

Spero che l'articolo sia stato utile. Grazie per l'attenzione!
Successo creativo e stato d'animo positivo, colleghi!

Fonte: habr.com

Aggiungi un commento