Insegnare a programmare a 14enni con il Javascript. – 2 – Una scansione degli argomenti per la classe prima

Entriamo nel vivo: come si può costruire un corso del biennio di un istituto tecnico informatico?

Gli obiettivi dell’insegnamento dell’informatica nel primo biennio sono definiti a livello ministeriale e si possono ritrovare in questo PDF, alla pag. 47

Sappiamo di avere in totale 33 settimane utili di corso, con tre ore per settimana. In totale un centinaio di ore, durante le quali insegnare loro i rudimenti della programazione ma anche entusiasmarli e motivarli…… Bella sfida!

Risorse web:

Cominciamo dai libri di testo…… per degli informatici niente di più logico che questi siano sul web. Ecco alcuni spunti utili (sono ben accetti suggerimenti)

Come potrebbe essere organizzato il programma nella classe prima


Settimane n°1-3: Concetto di algoritmo – 1

Usare diagrammi a blocchi per risolvere semplici algoritmi su dati scalari, facendo loro intravedere cosa significano sequenza, selezione ed iterazione, cosa significano input e output. Gli algoritmi dovrebbero essere proprio elementari, senza neanche una struttura annidata dentro l’altra, con poche variabili; introdurre, al più, sommatori e contatori. In questa prima fase stiamo molto attenti a che non prendano l’abitudine ad una programmazione non strutturata (evitiamo il rischio del GOTO)

Verifica

Fargli fare semplici algoritmi e fargli fare le relative tabelle di tracing per vedere se sanno seguire l’evolversi di un algoritmo e se lo sanno ideare


Settimane n° 4 – 6: Concetto di algoritmo – 2

Aumentare la complessità degli algoritmi ed inserire strutture annidate, aumentare il numero di variabili in gioco, introducendo anche variabili di tipo flag per pilotare cicli e selezioni

Verifica

Fargli fare algoritmi con strutture annidate, che prevedano l’uscita dal ciclo sulla base di flag e fargli fare le relative tabelle di tracing


Settimane n° 7 – 8: Internet: la struttura del web e i linguaggi di scritpting -1

In questa prima parte ci si concentra sulla pagina web come contenitore strutturato per i nostri futuri programmi. Imparare come è strutturata una pagina web statica e come è organizzato un sito statico. Uso dei tag fondamentali. Creazione di pagine con contenuto multimediale (inserire immagini e filmati recuperati dalla rete). Imparare a usare link.

Spiegare bene il concetto di percorso di memorizzazione su disco (indispensabile per i tag che includono contenuti e per i link)

Introdurre da subito la formattazione dei tag di base tramite CSS a livello di pagina, evitando come la peste la formattazione a livello di codice html. I CSS oltre ad essere la soluzione privilegiata in ambito web 2.0, hanno anche una fortissima valenza didattica: imparano a distinguere fra il linguaggio ed il metalinguaggio. Si pensi alla difficoltà che hanno i nostri studenti quando devono leggere un manuale di un linguaggio di programmazione. Inoltre, successivamente, i CSS abbinati a Javascript consentiranno ottimi approfondimenti (ma questo dovrebbe essere argomento del secondo anno)

Attività di laboratorio

Realizzare pagine web con editor a sintassi evidenziata.

Verifica

Realizzare un mini-sito di 3 pagine che abbia una struttura di navigazione un minimo decente, contenga i tag principali, immagini, filmati e rimandi ad altre pagine sul web. Il tema potrebbe essere anche concordato con il docente di un’altra disciplina ed in tal caso potrebbe avere anche qualche ora in più


Settimane n° 9 – 11: Internet: la struttura del web e i linguaggi di scritpting -2

Approfondimento su layout più articolati della pagina (ad esempio con colonne, header e footer), CSS esterni, e introdurre il concetto di form come metodo per l’input dei dati (senza però ancora processarli, ma solo spiegando il significato dei controlli principali e l’uso che se ne potrebbe fare

Attività di laboratorio

Realizzare pagine web con editor a sintassi evidenziata.

Verifica

Realizzare un mini sito con un layout più elaborato e gestito con un CSS esterno. Una delle pagine deve essere un modulo con tutti i controlli principali


Settimane n° 12-15: Internet: la struttura del web e i linguaggi di scritpting -3

Direi che dopo undici settimane a Dicembre sia finalmente giunto il momento di fargli realizzare le prime funzioni con Javascritp! Ricordiamoci che proveniamo da un inizio d’anno in cui le prime 18 ore di lezione le abbiamo utilizzate per ragionare sugli algoritmi, mentre le successive 15 sono servite per prendere confidenza con gli strumenti per il web (un editor, il browser, html e css).

Il contenuto dovrebbe essere: Introduzione alla programmazione con Javascript. Realizzare semplici pagine che chiedano in input dei dati, li elaborino e forniscano dei risultati. Devono essere utilizzate esclusivamente funzioni presenti nel tag <script> e non “in-line”. Evitando di inserire gli script nell’html abituiamo gli studenti ad avere il codice tutto raggruppato, e quindi quando in futuro il codice verrà tolto e messo in un file esterno incorporato, o meglio ancora quando si passerà ad un altro linguaggio (esempio il C) per gli studenti sarà naturale avere “uno o più file sorgente”. Un consiglio, in questa fase non raccontiamogli “tutto il DOM evento x evento” altrimenti scappano tutti!!!!!

Attività di laboratorio

Implementare algoritmi semplici di elavorazione sui dati scalari. Sarebbe l’ideale se si riprendessero quelli studiati ad inizio d’anno, per trasformarli in qualcosa di “concreto”. E’ anche il momento buono per introdurre Firebug (ma se volete stare sul facile va bene anche la console di javascript). La cosa importante è introdurre il debugging. Ecco un esempio!

Verifica

Vanno fatte due verifiche. Una iniziale, nella quale si fanno semplicemente cose del tipo “la somma di due numeri” o altro del genere, uno finale in cui si fa qualcosa di più interessante che comporti l’uso di metodi degli oggetti math e string. In questa fase si resta ancora con una sola funzione in cui viene svolto l’intero algoritmo.


Settimane n° 16-17: Ciclo di interrogazioni quadrimestrali

Interrogare tutta la classe sul programma sin qui svolto. Interrogare 3 – 4 studenti per ora, quindici minuti a studente, toccare gli argomenti: algoritmi, web, htm, css, programmazione javascript.

Settimane n° 18-19: Codifica delle informazioni – 1

Come previsto dalle linee guida dobbiamo introdurre la rappresentazione e la codifica delle informazioni. Tuttavia anche questi argomenti si prestano bene ad attività di laboratorio che sconfinano nella programmazione.

In questa fase dobbiamo spiegare perchè l’elaboratore utilizza il binario, far vedere come in binario possono essere codificati numeri e in generale N elementi di un insieme utilizzando una quantità di cifre binarie pari a log2(N). Questi argomenti vengono proposti ad un livello elementare. Sarà nel triennio il momento in cui verranno approfonditi adeguatamente quando si tratterà di rappresentazione e trasmissione delle informazioni

Attività di laboratorio

L’attività può consistere nel realizzare semplici pagine web che effettuano le conversioni binario ->decimale e viceversa, magari utilizzando diverse tecniche come 8 checkbox che simulano il numero binario e una casella di testo in cui inserire il risultato, oppure pagine che consentano di calcolare il numero di bit necessari per codificare degli insiemi, etc etc… Anche in questo caso l’argomento trattato a lezione diventa un ottimo pretesto per fare “programmazione” e continuare quindi a scrivere codice, come è giusto che degli informatici in erba facciano 🙂

Verifica

Far eseguire semplici conversioni di numeri interi in binario e viceversa, far codificare a loro piacimento una serie di elementi


Settimane n° 20-21: Struttura logico funzionale dell’elaboratore

Illustrare il modello di Von Neumann, spiegargli il ruolo delle componenti principali, dare una vaga idea di cosa significa, a grandi linee, l’esecuzione di una istruzione (per fare un ciclo macchina semplificato si può ricorrere ad un pseudo assembly che avevo costruito per spiegare queste cose anni fa agli studenti, in cui avevo codificato in binario le operazioni principali e alcuni indirizzi di memoria).
In questa fase vanno introdotti in modo molto intuitivo i concetti di indirizzo di memoria, registro, istruzione macchina

Attività di laboratorio

Beh, qui forse più che programmi in javascript sarebbe meglio una lezione di laboratorio in cui si fanno vedere fisicamente le componenti hw

Verifica di “Teoria”

Domande su CPU, Memoria, Bus, periferiche, istruzioni. Far loro eseguire lo svolgimento di un algoritmo di somma in pseudo-assembly

Verifica di “laboratorio”

Domande su componenti hw e loro riconoscimento


Settimane n° 22-24: Codifica delle informazioni – 2

Approfondimento sul sistema di numerazione binario e sui sistemi posizionali in genere. Introdurre le operazioni in basi diverse su numeri naturali

Attività di laboratorio

Ad esempio, si potrebbe realizzare una pagina web che effettui la conversione fra basi diverse o effettui la somma binaria. In questo modo anche se ci si mette più tempo, i concetti si apprendono meglio e si rinforza contemporaneamente la programmazione.

Verifica

Eseguire operazioni (somma, differenza, prodotto, fra varie basi. Sarebbe, ad esempio, utile che agli studenti venisse chiesto di realizzare l’algoritmo per effettuare la somma binaria attraverso un ipotetico programma che effettua le somme un bit alla volta (in pratica realizzare un sommatore seriale)


Settimane n° 25-26: Ciclo di interrogazioni quadrimestrali

Interrogare tutta la classe sul programma sin qui svolto. Interrogare 3 – 4 studenti per ora, quindici minuti a studente, toccare gli argomenti: codifica, struttura elaboratore e richiamare comunque anche la programmazione


Settimane n° 27-29: Problem solving -1

Metodi di risoluzione dei problemi: individuare i dati, definire gli obiettivi, strategie risolutive, top-down e bottom up, SCOMPOSIZIONE IN SOTTOPROBLEMI. Questa parte del programma, oltre alla valenza didattica che ha in sé, si rivela fondamentale anche per introdurre il concetto di “funzione”, che è fondamentale per proseguire nel percorso di apprendimento della programmazione.

Attività di laboratorio

Siccome è previsto che si insegni allo studente a padroneggiare anche strumenti informatici diversi dal linguaggio di programazione, in questa prima fase si può proporre l’utilizzo del foglio di calcolo per la risoluzione di problemi. In questa fase insistere sui problemi che possono avere legami con fisica e matematica. Devono imparare a impostare un foglio di calcolo suddividendo bene i dati dalle loro elaborazioni, saper usare formule e funzioni, usare in particolare la funzione SE, così si riallacciano a concetti già visti in programmazione

Verifica

Realizzazione di foglio elettronico per risolvere qualche problema, magari fra quelli già proposti in precedenza. Ad esempio un sommatore binario con le 8 celle perciascuno dei due addendi, correttamente incolonnate, con i riporti, e tutto gestito a suon di AND, OR, XOR……. così approfittiamo del problem solving per riprendere l’algebra di Boole che il collega di Matematica dovrebbe aver già trattato, ma non si sa mai!


Settimane n° 30-33: Problem solving – 2

Continuare con il problem solving e introdurre il concetto di funzione, applicato alla programmazione.  Si parla quindi di ambito di visibilità delle variabili, uso di parametri passati per valore e riferimento.

Attività di laboratorio

Si riprende ad utilizzare il linguaggio di programmazione e si rifanno le stesse cose vista con il foglio di calcolo però questa volta utilizzando il javascript. La possibilità di sperimentare in laboratorio due strumenti differenti (un foglio di calcolo ed un linguaggio di programmazione) per risolvere lo stesso problema contribuisce senz’altro a migliorare la capacità dello studente di scegliere consapevolmente gli strumenti

Verifica

Realizzare una pagina web con abbondante uso di funzioni


Settimane n° 34 – 37

Fine anno: recuperi, valutazioni finali e approfondimento

Approfittare di questa fase per le ultime interrogazioni, far fare ai più bravi lavori di approfondimento in laboratorio, mentre per i più deboli insistere con lezioni di rinforzo e dare qualche ultima possibilità di recupero dei requisiti minimi, che devono esistere su tutte le unità di apprendimento in cui è suddiviso il programma.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...