UNIMORE University of Modena and Reggio Emilia L’Informatica nella scuola Linguaggi tools e fondamenti Simone Calderara [email protected] Perché l’informatica adesso University of Modena and Reggio Emilia • Modello Inglese: Dal 2013 «England will become the first country in the world to mandate computer programming in primary and secondary schools” fonte DailyTelegragph 2013 UNIMORE Nuova Scuola: • Introdurre l’informatica dalla primaria • Nel 2014, Barack Obama è passato alla storia come il primo presidente che sa programmare un computer • Nazioni attive nell’insegnamento della programmazione già dalla primaria: Inghilterra, Estonia, Repubblica Ceca, Israele, Cina, Brasile. 2 In Italia… University of Modena and Reggio Emilia l’alfabetizzazione digitale fin dalla scuola primaria tramite il coding, un programma di “ digital makers” per i ragazzi delle scuole superiori, e La formazione degli insegnanti. UNIMORE Il documento la Buona Scuola contiene un intero capitolo, il quarto, dedicato alle competenze che secondo il governo e il ministro la scuola dovrebbe avere. Le attuali scelte guardano in tre diverse direzioni: Perché l’informatica adesso • Iniziative nei vari paesi sono generalmente individuali University of Modena and Reggio Emilia • Possiamo essere tra le prime nazioni che capiscono questa esigenza. -> #Labuonascuola (governo Renzi) UNIMORE • Esitono strumenti validi per portare il codice nella scuola 4 Perché Programmare I metodi caratteristici e gli strumenti intellettuali che costituiscono la base del “pensiero computazionale ” hanno un loro posto naturale nell’educazione degli studenti del 21-mo secolo. University of Modena and Reggio Emilia •favorisce lo sviluppo della creatività - per la molteplicità di modi che offre per affrontare e risolvere un problema; UNIMORE L’insegnamento dell’informatica nella scuola ha le seguenti specificità: •è costruttiva - la progettazione di algoritmi è un’attività ingegneristica che produce risultati visibili (anche se nel mondo virtuale); •aiuta a padroneggiare la complessità - imparare a risolvere problemi informatici aiuta a risolvere problemi complessi in altre aree; •sviluppa il ragionamento accurato e preciso - la scrittura di programmi che funzionano bene richiede l’esattezza in ogni dettaglio. 5 Perché Programmare University of Modena and Reggio Emilia • dal punto di vista formativo l’informatica è un validissimo strumento intellettuale per sviluppare abilità concettuali essenziali che saranno utili agli studenti, qualunque sia il loro sviluppo professionale. UNIMORE • dal punto di vista pratico l’informatica è un’abilità utile per gli studenti perchè qualunque lavoro svolgeranno in futuro la componente digitale sarà importante; 6 USA: Il progetto Code.Org http://code.org/ University of Modena and Reggio Emilia UNIMORE 7 I tools a livello internazionale •Hopscotch is the free iPad app for upper elementary and above. University of Modena and Reggio Emilia •Lightbot has a version on just about any platform and even has an online one-hour version. This puzzle game has a free version which lasts an hour but sells full versions on iTunes and Google Play. It teaches planning, testing, debugging, procedures, and loops. UNIMORE •Scratch is a programming game that can be downloaded or used on the Web and is supported by MIT. •Alice is another popular platform with a unique storytelling aspect. You can use it to create a game, tell a story, or make an animated video. •Minecraft.edu is an option that lets you install and use Minecraft in the classroom. While this does require some purchase and setup, Minecraft seems to be gaining in popularity among educators as an in-house, 3D world-programming environment that kids love. 8 Italia: Il progetto Programma il Futuro http://www.programmailfuturo.it/ University of Modena and Reggio Emilia UNIMORE Il MIUR, in collaborazione con il CINI – Consorzio Interuniversitario Nazionale per l’Informatica, ha avviato questa iniziativa (che fa parte del programma #labuonascuola) con l’obiettivo di fornire alle scuole una serie di strumenti semplici, divertenti e facilmente accessibili per formare gli studenti ai concetti di base dell'informatica. 9 In Italia, nei prossimi 3 anni… • “Programma il Futuro” le varie classi iscritte alla piattaforma stanno raccontando le proprie esperienze nello svolgimento dell’attività inerente al progetto. • Al momento il progetto è in fase di sperimentazione e nel prossimo triennio entrerà a regime (circolare 29/09/2014). Italia: Il progetto Programma il Futuro http://studio.code.org/ University of Modena and Reggio Emilia UNIMORE 11 Italia: Il progetto Programma il Futuro • Lezioni Interattive disponibili via web per familiarizzare con lo strumento • Una modalità base (denominata "L'Ora del Codice ") Il labirinto • Una modalità avanzata (denominata "Corso Introduttivo ") ulteriori 9 lezioni di approfondimento: lezione 5: L'artista. Leggi le informazioni di supporto per L'artista. lezione 7: L'artista 2. Leggi le informazioni di supporto per L'artista 2. lezione 9: La contadina. Leggi le informazioni di supporto per La contadina. lezione 11: L'artista 3. Leggi le informazioni di supporto per L'artista 3. lezione 13: La contadina 2. Leggi le informazioni di supporto per La contadina 2. lezione 15: L'artista 4. Leggi le informazioni di supporto per L'artista 4. lezione 17: La contadina 3. Leggi le informazioni di supporto per La contadina 3. lezione 19: L'artista 5. Leggi le informazioni di supporto per L'artista 5. lezione 20: Conclusione. Leggi le informazioni di supporto per Conclusione. 1. 2. 3. 4. 5. 6. 7. 8. 9. University of Modena and Reggio Emilia Ci sono diversi programmi di formazione a seconda della fascia di età e degli obiettivi di apprendimento UNIMORE • 12 Prima di programmare: University of Modena and Reggio Emilia UNIMORE Il computer 13 Il Calcolatore University of Modena and Reggio Emilia UNIMORE • Si possono considerare diversi livelli di astrazione: Circuiti elettronici (hardware) Architettura e linguaggio macchina Sistema operativo (software di sistema) Linguaggi di programmazione Programmi applicativi Silicon Graphics Il calcolatore è basato su circuiti elettronici digitali, ovvero modellabili con l’algebra di Boole; i circuiti elettronici implementano le funzioni logiche AND, OR, NOT, permettono di memorizzare il valore di variabili booleane, di effettuare calcoli, etc. 14 La macchina di Von Neumann 1 CPU (Central Processing Unit) Memoria centrale Bus di sistema Periferiche CPU Memoria centrale BUS di sistema tastiera mouse memoria di massa Periferiche monitor 15 University of Modena and Reggio Emilia UNIMORE •Tutti i calcolatori attuali si rifanno all’architettura di Von Neumann, costituita dalle quattro componenti: La macchina di Von Neumann 2 • Carratteristiche del modello di Von Neumann Il modello è basato sul paradigma di programmazione procedurale: il programma indica la sequenza di istruzioni da eseguire per ottenere la soluzione ad una data classe di problemi University of Modena and Reggio Emilia memorizzati UNIMORE Proceduralità: possibilità di eseguire differenti programmi Sequenzialità: regola della selezione dell’istruzione da eseguire rigidamente fissata Connessione tra le unità funzionali con singolo flusso di informazione tra memoria e processore: architettura a BUS 16 La CPU • University of Modena and Reggio Emilia UNIMORE • La Central Processing Unit è l’unità centrale di elaborazione: esegue le istruzioni dei programmi e ne regola il flusso, esegue i calcoli La CPU è un dispositivo sincrono, cioè può cambiare stato solo quando riceve un impulso di clock, Intel Pentium l’orologio del sistema che fornisce al computer un battito regolare •La CPU lavora a N GHz: segue un ritmo di N miliardi di impulsi al secondo (es., una CPU con un clock a 3 GHz è temporizzata da tre miliardi di impulsi al secondo) 17 CPU2 •Set di istruzioni di base: somma (da cui sottrazione) University of Modena and Reggio Emilia operazioni logiche UNIMORE scorrimento (shift) operazioni di accesso alla memoria trasferimento di un dato da una locazione di memoria ad un’altra trasferimento da memoria a un registro della CPU trasferimento da un registro della CPU a memoria operazioni di confronto (sufficiente confronto con zero) •Le operazioni (eccetto quelle di accesso alla memoria) sono eseguite all’interno della ALU e “coordinate” dall’unità di controllo 18 Come si eseguono i programmi per ottenere la soluzione ad un data classe di problemi •Il processore esegue ogni istruzione mediante una sequenza ben definita di operazioni detta ciclo di istruzione o ciclo macchina University of Modena and Reggio Emilia Un programma indica la sequenza di istruzioni da eseguire UNIMORE •Il processore esegue le istruzioni di un programma una alla volta in sequenza: estrae le istruzioni dalla memoria, le interpreta e le esegue una dopo l’altra Estrazione di una istruzione: fase di fetch Esecuzione dell’istruzione: fase di execute 19 Le Memorie contengono informazioni necessarie alla elaborazione della singola istruzione Memoria centrale: contiene dati e istruzioni attualmente elaborati dal processore Memorie di massa: contengono dati e programmi che non sono oggetto di elaborazione immediata University of Modena and Reggio Emilia Registri: UNIMORE •Le memorie sono dispositivi per “lo stoccaggio” delle informazioni •Ogni memoria è costituita da celle, a cui si accede tramite un indirizzo •In ogni elaboratore vi sono tre tipi di memorie: 20 Il sistema operativo University of Modena and Reggio Emilia UNIMORE 21 Cos’è un sistema operativo •Il software può essere diviso in due grandi classi: i programmi applicativi, che risolvono i problemi degli utenti •L’insieme dei programmi di sistema viene comunemente identificato con il nome di Sistema Operativo (SO) University of Modena and Reggio Emilia calcolo UNIMORE i programmi di sistema, che gestiscono le funzionalità del sistema di •Definizione: Un sistema operativo è un programma che controlla l’esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardware del calcolatore 22 Sistema operativo University of Modena and Reggio Emilia Quando si accende un elaboratore, occorre attendere alcuni istanti per poter iniziare a lavorare: durante questa pausa il computer carica il SO UNIMORE Tutte le piattaforme hardware/software richiedono un sistema operativo 23 Scopo del sistema operativo • Gestione EFFICIENTE delle risorse del sistema di elaborazione University of Modena and Reggio Emilia UNIMORE • Rendere AGEVOLE l’interfaccia tra l’uomo e la macchina 24 La programmazione University of Modena and Reggio Emilia UNIMORE 25 Gli Educatori e la programmazione Algoritmo Blocchi/Funzioni Variabili Istruzioni condizionali Ripetizioni e cicli University of Modena and Reggio Emilia • • • • • UNIMORE Gli educatori per insegnare la programmazione devono esssere consapevoli di cosa è un calcolatore e dei concetti di base dell’informatica 26 Algoritmo University of Modena and Reggio Emilia • i passi costituenti devono essere "elementari", ovvero non ulteriormente scomponibili (atomicità); • i passi costituenti devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale (non ambiguità); • l'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso (finitezza) • l'esecuzione deve avere termine dopo un tempo finito (terminazione); • l'esecuzione deve portare a un risultato univoco (effettività); • a ogni passo, il successivo deve essere uno e uno solo, ben determinato (determinismo). UNIMORE Sequenza di istruzioni per risolvere un problema • In forma grafica • In forma testuale 27 Algoritmo University of Modena and Reggio Emilia UNIMORE 28 Algoritmo University of Modena and Reggio Emilia UNIMORE 29 Esempi University of Modena and Reggio Emilia UNIMORE a) Scambio di liquido fra due bicchieri Supponiamo di avere due bicchieri, denominati A e B, pieni rispettivamente uno di acqua e l'altro di vino, e di voler travasare A in B e viceversa. Avendo un bicchiere vuoto a disposizione C Il problema può essere risolto usando un terzo bicchiere C e l'algoritmo è il seguente: 1) versa A in C 2) versa B in A 3) versa C in B 30 Esempi il il il il il barcaiolo barcaiolo barcaiolo barcaiolo barcaiolo University of Modena and Reggio Emilia 1) 2) 3) 4) 5) UNIMORE Problema del lupo, del cavolo e della capra Un pastore deve attraversare un fiume portando sull'altra riva un lupo e una capra affamati e una cassa di cavoli. Ha a disposizione una barca a remi con la quale può traghettare un solo oggetto o animale alla volta. Ma, attenzione! Non può lasciare da soli:- il lupo e la capra perchè il lupo si mangia la capra;- la capra ed i cavoli perché la capra si mangia i cavoli. Chiamiamo A la sponda iniziale e B la sponda su cui il barcaiolo deve trasportare lupo, capra e cavoli. porta la capra in B torna a prendere il lupo e lo porta in B riporta la capra in A porta i cavoli in B porta la capra in B 31 Blocchi o Funzioni University of Modena and Reggio Emilia UNIMORE In informatica, nell'ambito della programmazione, una funzione (detta anche subroutine, routine, procedura, sottoprogramma o m etodo) è un particolare costrutto sintattico, in qualche linguaggio di programmazione, che permette di raggruppare, all'interno di programma, una sequenza di istruzioni in un unico blocco di istruzioni espletando così una determinata e in generale più complessa operazione, azione o elaborazione sui dati del programma stesso in modo tale che a partire da determinati input restituisca determinati output. 32 University of Modena and Reggio Emilia UNIMORE 33 Funzioni Es. Mangiare: University of Modena and Reggio Emilia Mangiare UNIMORE Output INPUT Visibilità: ciò che la funzione vede al suo interno Int Mangiare(Struct Food) 34 Variabili • University of Modena and Reggio Emilia • L'insieme dei possibili valori definisce il range dei valori che V può assumere durante l'esecuzione di un programma. UNIMORE • La variabile è un identificatore V associato a un insieme prefissato di possibili valori che definiscono il tipo della variabile. Definendo il tipo e la rappresentazione della variabile oltre al range di valori, vengono definite anche le operazioni possibili con la variabile stessa. Durante l'esecuzione di un programma ciascuna variabile ha un valore corrente 35 Variabili University of Modena and Reggio Emilia Es: UNIMORE Le variabili, in un linguaggio di programmazione, sono quindi dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito. numero a ->dichiarazione a=10 ->assegnamento a=a+5 -> modifica Dove sono le variabili? -> Tipicamente nella memoria del calcolatore 36 Istruzioni condizionali Controllano il flusso del programma University of Modena and Reggio Emilia UNIMORE Se accade qualcosa allora esegui determinate operazioni Altrimenti eseguine altre Construtto if-then-else in Logica Booleana 37 Istruzioni condizionali University of Modena and Reggio Emilia UNIMORE 38 Istruzioni condizionali University of Modena and Reggio Emilia UNIMORE 39 Ripetizioni e cicli I cicli servono per ripetere sequenze di operazioni: University of Modena and Reggio Emilia • Inizio • Elaborazione • Fine UNIMORE Sono blocchi confinati che hanno una fase di Il ciclo è sempre caratterizzato da una condizione di fine o condizione di STOP 40 Ripetizioni e cicli • Stampa i numeri minori di 100 University of Modena and Reggio Emilia UNIMORE 41 Scratch https://scratch.mit.edu/ University of Modena and Reggio Emilia UNIMORE 42