A livello secondario, concetti e pratiche di informatica di base (CS) vengono insegnati in corsi tipicamente all’interno del cluster di carriera informatica (IT) sotto l’ombrello della carriera e dell’istruzione tecnica (CTE). Tuttavia, i concetti e le pratiche CS vengono sempre più incorporati negli accademici e anche negli elettivi (e sono influenzati dall’arte e dal design).
Indipendentemente dalla disciplina, la creazione di artefatti computazionali è una delle principali pratiche CS che gli studenti dovrebbero costantemente sperimentare per diventare migliori risolutori di problemi. Artefatti computazionali possono includere immagini, video, presentazioni, file audio e programmi per computer.
Una pratica precisa e coerente nella programmazione di computer (CP) aiuterà gli studenti a costruire conoscenze interdisciplinari in tandem con concetti e pratiche accademici e CS. Come CP è il processo di scrittura di un programma dall’inizio alla fine, gli studenti ricevono l’esposizione nella fusione di pratiche 3-6 trovato nel quadro informatico K-12.
Quindi, come possiamo coinvolgere con successo gli studenti in CP? Ecco come possiamo farlo in quattro fasi principali.
Passo 1: Identificare il problema
Quando gli studenti sono nuovi a CP, in genere iniziamo a insegnare loro come programmare e codificare utilizzando tutorial. Anche se non c’è niente di sbagliato in questo, non vogliamo tenerli lì.
Di solito lo scrittore di un tutorial ha già identificato sia il problema che la soluzione del programma. Il modo migliore per i bambini di imparare è scrivendo i propri problemi e soluzioni e creando i propri programmi. Altrimenti, si concentreranno maggiormente sull’apprendimento del codice di funzioni specifiche in una particolare lingua, che generalmente non è diversa dalla memorizzazione a memoria, che dovrebbe essere sostituita con lo sviluppo della memoria di lavoro.
Identificare (o definire) il problema è la parte più critica del processo CP in quanto gli studenti dovranno sviluppare un piano concreto per ciò che il loro programma completo farà. Questo processo comporta l’identificazione sia degli input noti (o dei dati dati) che di ciò che deve essere ottenuto tramite gli output (il risultato). Sebbene CP non sia un processo semplice, la pratica coerente e precisa costruirà la fiducia degli studenti nel tempo nell’articolare i dettagli sul tipo di input, elaborazione e output desiderati per i loro programmi. Per iniziare gli studenti a programmare, leggi questa fantastica introduzione a una lezione per la creazione e la condivisione di app Code.org.
Passaggio 2: Trovare una soluzione
Per trovare o pianificare la soluzione al problema identificato nel passaggio 1, gli studenti possono creare un diagramma di flusso o scrivere pseudocodice. I programmatori esperti possono e useranno uno di questi metodi per trasmettere lo sviluppo del programma a clienti, insegnanti, ecc.
Un diagramma di flusso è una soluzione passo – passo a un problema che utilizza una rappresentazione pittorica della direzione del programma e consiste in frecce, scatole e altri simboli che rappresentano azioni (ad esempio, input/output, processo, ecc.). Lo pseudocodice è simile all’inglese e viene utilizzato per trasmettere la soluzione con maggiore precisione rispetto all’inglese semplice, ma con meno meticolosità richiesta da un linguaggio di programmazione formale.
Il processo di soluzione consente al programmatore di concentrarsi sul flusso logico del programma senza dover aderire alla sintassi effettiva utilizzata dal linguaggio di programmazione per il progetto. Dai un’occhiata a questa divertente lezione di Technovation per aiutare i tuoi studenti a pianificare il loro codice.
Passo 3: Codificalo
Spesso la codifica viene confusa con la programmazione, ma la codifica è solo una parte del processo di programmazione. I buoni programmatori possono creare istruzioni dalle soluzioni (discusse nel passaggio 2) e scriverle in codice per far capire al computer. È qui che entrano in gioco le capacità di progettazione algoritmica del pensiero computazionale.
Aiuta quando pensi al tuo problema come a un problema di matematica, non perché stai sempre facendo molta matematica durante la programmazione, ma perché il processo di pensiero è lo stesso. In matematica usiamo spesso insiemi algoritmici di istruzioni che seguiamo in una sequenza di passaggi per raggiungere un obiettivo. Questo processo è paragonato sia a un diagramma di flusso ben dettagliato che a un codice (in un linguaggio di programmazione specifico).
Praticare la codifica aiuterà gli studenti a capire che la codifica non è complicata quando imparano a pensare in modo logico e graduale. Far iniziare gli studenti scrivendo semplici programmi insegnerà loro come dare istruzioni ai computer, come funzionano effettivamente i computer e che i buoni programmatori non sono vaghi e non saltano i passaggi. Capiranno anche che il codice che scrivono viene elaborato (tradotto) da un compilatore in linguaggio macchina per l’esecuzione.
Per i bambini nuovi alla codifica, consiglio di iniziare con un linguaggio di programmazione visivo (VPL), che consente ai bambini di descrivere i loro algoritmi usando illustrazioni e consente ai programmatori di descrivere il processo in termini che hanno senso per loro.
Ecco alcuni VPL popolari:
- Zero, ScratchJr
- Blockly
- Ardublock (blocco linguaggio di programmazione per Arduino)
- ROBOLAB (linguaggio di programmazione per LEGO Robotics)
- ROBOTC (grafica per il VEX Robotics)
- LabVIEW (National Instruments)
anche se ci sono diversi modi per ottenere gli studenti ha iniziato la codifica, Mi raccomando all’intera scuola, di partecipare a un’Ora di Codice e anche insegnare ai bambini di codice all’interno di un contesto STAMINALI/di VAPORE sfida di design.
Fase 4: Test it
Test in CP è un processo critico utilizzato per determinare la qualità di un programma e trovare bug (problemi). Come stagista universitario, sono stato introdotto per la prima volta al test e al debug dei controlli ActiveX nel linguaggio di programmazione Visual Basic. Anche se il test ha diversi livelli e determinerà se i programmi funzionano o no-lavorare per trovare bug per gli sviluppatori di software per correggere è stato molto potente per aiutarmi a capire la qualità dei programmi che ho usato ogni giorno e anche l’importanza di aggiornarli regolarmente.
Richiedere agli studenti di presentare il loro lavoro pubblicamente, è una tecnica eccellente per coinvolgere e instillare in loro l’importanza del processo di test per discutere e mostrare il lavoro CS di alta qualità. Ancora una volta, l’App Lab (nel passaggio 1) è una grande lezione e un progetto per aiutare i bambini a imparare CP dall’inizio al test.
CP per diversi livelli di grado
La programmazione per computer può essere insegnata a tutti i livelli di grado. Ecco alcuni strumenti da utilizzare con varie età e livelli di studenti.
Gradi 3-8: Kit codice littleBits. Il kit di codici è dotato di blocchi elettronici e di un’app con tutorial di codifica ed è un’eccellente impalcatura per insegnare agli studenti i concetti di codifica, luce, suono e movimento nel contesto di una sfida progettuale o invenzione.
Quello che trovo più potente del kit di codice è l’app perché aiuta gli utenti a fondarsi sui principi di codifica di base. Un buon programmatore, indipendentemente dalla lingua o dall’esperienza di codifica, dovrà comprendere le basi, come input / output, loop, funzioni, variabili e anche logica. Il successo si riferisce sempre allo sviluppo di auto-padronanza interna dei fondamenti. Come il Dr. Stephen R. Covey, autore di The 7 Habits of Highly Effective People, una volta disse: “Metti le cose al primo posto.”
Il kit di codice funziona anche in combinazione con tutte le risorse educative di cui un educatore avrebbe bisogno, inclusi i piani di lezione, le dispense degli studenti e l’allineamento agli standard scientifici di prossima generazione. Molte delle risorse sono state testate e sviluppate dalla coorte di educatori di littleBits di 2017 e come membro orgoglioso, sono stato molto fortunato ad aver lavorato e imparato con un gruppo di educatori di talento!
Gradi 6-8: robotica. Far iniziare i bambini nella programmazione è abbastanza facile. Nel mio precedente ruolo di specialista del curriculum, abbiamo usato il robot Lego Mindstorms come introduzione. Questi sono stati i passi che abbiamo preso per aiutare i bambini a capire i concetti chiave, così come la programmazione:
- Costruire i loro robot. Praticamente ogni bambino amava questa parte.
- Impara le basi. Attraverso l’esplorazione di tutorial, hanno imparato a conoscere motori, sensori, ingranaggi e altri componenti.
- Impara a programmare. Il mattone aveva sei missioni integrate, che hanno permesso agli studenti di vedere come far muovere il robot con i motori e rispondere al tatto o al movimento con i sensori. Man mano che si sono abituati ai programmi integrati, hanno iniziato a creare i propri programmi, utilizzando i blocchi di programmazione ROBOLAB.
- Collegare a CS e STELO. Abbiamo scoperto che questo ha contribuito notevolmente a chiarire i concetti e la pratica sia del riconoscimento dei pattern che della progettazione algoritmica. E poi, naturalmente, lezioni di CS e STEM, che includevano codifica, forza e movimento, design e tecnologia. Abbiamo anche scoperto che il VEX IQ Kit era ottimo per scopi simili e abbiamo usato sia VEX che Lego, in base ai diversi eventi competitivi a cui i nostri studenti hanno partecipato.
Gradi 8-12: robotica avanzata. Per gli studenti delle scuole superiori che hanno già praticato la codifica utilizzando un VPL e hanno o stanno padroneggiando i principi di programmazione fondamentali, il passo successivo è quello di farli codifica in un settore ricercato linguaggio di programmazione come JavaScript, Python, Pearl o C++. Fortunatamente la programmazione di un robot come il VEX EDR offre ai liceali un’introduzione a questa preziosa esperienza di apprendimento. Gli studenti che programmano il VEX EDR imparano ad usare il linguaggio di programmazione basato su ROBOTC C e possono vedere gli effetti del codice che scrivono in tempo reale risolvendo i problemi utilizzando il processo di progettazione ingegneristica.
Recentemente ho iniziato ad imparare a programmare il VEX EDR quando ho partecipato a un corso di formazione di progettazione ingegneristica con l’International Technology and Engineering Educator’s Association. E “stato lì che ho incontrato ed è stato collaborato con Tim Oltman — il Martha Layne Collins insegnante di scuola superiore dell” anno. Lui e il collega insegnante Shane Ware hanno una notevole esperienza nell’insegnare ai bambini a programmare robot per vari eventi competitivi di VEX robotics e hanno vinto numerosi premi in Kentucky.
Ho chiesto a Tim i suoi pensieri su come gli insegnanti dovrebbero procedere quando si spostano i bambini dalla programmazione in un VPL a un programma basato su C come per VEX, e ha detto: “Prima, costruisci relazioni con i tuoi studenti e poi impara con loro. Lascia che ti vedano provare e fallire, e si divertiranno a lottare attraverso il processo con te. Alla fine, ti supereranno e diventeranno gli insegnanti.”
Jorge Valenzuela è un allenatore educativo e un assistente di insegnamento laureato alla Old Dominion University. Egli è anche l’allenatore di piombo per l’apprendimento permanente definito, Inc., una facoltà nazionale del Buck Institute for Education, un insegnante nazionale efficacia allenatore con la tecnologia internazionale e Ingegneria Educatori Association (ITEEA) e parte del programma di piombo educatore per littleBits. È possibile connettersi con Jorge su Twitter @ JorgeDoesPBL per continuare la conversazione.