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
Scarica

Lezione1_Fondamenti_di_programmazione