1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle...

49
1 Modulo 8 – Dal Problema Modulo 8 – Dal Problema Al Programma Al Programma Piano Nazionale Di Formazione Degli Insegnanti Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dell’informazione E Della Sulle Tecnologie Dell’informazione E Della Comunicazione Comunicazione

Transcript of 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle...

Page 1: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

1

Modulo 8 – Dal Problema Modulo 8 – Dal Problema Al ProgrammaAl Programma

Piano Nazionale Di Formazione Degli Insegnanti Sulle Piano Nazionale Di Formazione Degli Insegnanti Sulle

Tecnologie Dell’informazione E Della ComunicazioneTecnologie Dell’informazione E Della Comunicazione

Page 2: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

2

Scopo Del ModuloScopo Del Modulo (Estratto Dalla C.M. N.55 Del 21-5-2002)

Conoscere alcuni concetti fondamentali Conoscere alcuni concetti fondamentali dell’informatica: algoritmo, automa, dell’informatica: algoritmo, automa, linguaggio formale.linguaggio formale.

Essere in grado di cogliere l’intreccio tra Essere in grado di cogliere l’intreccio tra alcuni risultati della matematica e della alcuni risultati della matematica e della logica dei primi decenni del secolo scorso logica dei primi decenni del secolo scorso ed i successivi sviluppi e applicazioni che ed i successivi sviluppi e applicazioni che questi hanno avuto in campo informatico.questi hanno avuto in campo informatico.

Page 3: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

3

Problemi e AlgoritmiProblemi e Algoritmi Col termine problema o situazione problematica Col termine problema o situazione problematica

s’indica s’indica una situazione che pone delle domande una situazione che pone delle domande cui si devono dare rispostecui si devono dare risposte. . Risolvere il Risolvere il problemaproblema vuol dire uscire da tale situazione. vuol dire uscire da tale situazione.

Sono esempi di situazioni problematiche:Sono esempi di situazioni problematiche: Individuare il cammino più breve per andare a scuolaIndividuare il cammino più breve per andare a scuola Scrivere in ordine alfabetico un elenco di nomiScrivere in ordine alfabetico un elenco di nomi Calcolare l’area di un campo rettangolareCalcolare l’area di un campo rettangolare

Un problema è formato dai seguenti elementi:Un problema è formato dai seguenti elementi: I datidati, ossia ciò che è noto, l’istanza che si deve

affrontare e che possiamo indicare col termine input. I risultatirisultati, ossia ciò che si deve determinare, gli

elementi incogniti la cui determinazione fornisce l’output.

Le condizionicondizioni, che sono in generale le limitazioni cui devono soggiacere i risultati.

Page 4: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

4

Classi Di ProblemiClassi Di Problemi Problemi di decisioneProblemi di decisione, in cui l’output è

fornito dal valore vero o falso a seconda che l’input soddisfi o meno una determinata proprietà.

Problemi di ricercaProblemi di ricerca, in cui, nello spazio delle soluzioni possibili (spazio di ricerca), si vuole determinare quella soluzione che soddisfa le condizioni poste dal problema, che viene detta soluzione ammissibile.

Problemi di ottimizzazioneProblemi di ottimizzazione, in cui alle soluzioni ammissibili è associata una misura e si deve determinare la soluzione ammissibile la cui misura è massima o minima.

Page 5: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

5

Strategie sulla Risoluzione dei Problemi

Per compiere l’analisi di un problema il risolutore deve svolgere una attività creativa nella ricerca della risoluzione del problema:

1. interpretare l’enunciato del problema e definire gli obiettivi da realizzare;

2. individuare i dati del problema e costruire un modello opportuno (modello è una rappresentazione della realtà che ha impoverito la realtà stessa degli aspetti superflui alla soluzione del problema);

3. descrivere il procedimento risolutivo individuando le operazioni da compiere sui dati iniziali per ottenere i risultati finali;

4. eseguire nell’ordine le operazioni descritte nel processo risolutivo (il risolutore in questa fase è detto esecutore);

5. verificare se i risultati ottenuti rispondono alle finalità del problema reale (attendibilità).

Page 6: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

6

Analisi Di Un ProblemaAnalisi Di Un Problema

ProblemaProblema

InterpretazioneInterpretazione ModelloModello

Verifica deiRisultati

Verifica deiRisultati

EsecuzioneEsecuzione

Procedimento Risolutivo

Procedimento Risolutivo

Page 7: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

7

Esempio Di Problema o Situazione ProblematicaEsempio Di Problema o Situazione Problematica

Individuare Il percorso più breve per andare a scuolaIndividuare Il percorso più breve per andare a scuola

A

B C

S

Dabitazione scuola

DETERMINATA LA LUNGHEZZA DI OGNI TRATTO DI STRADA TRA I DUE INCROCI ABCS; ABCDS; ADCS; ADS;

DATI INIZIALI

AB = 130 m BC=90 m CD=110 m AD=120 m DS=110 m CS=80 m

Procedimento risolutivo:

Calcolare la lunghezza di ciascun percorso

ABCS= ABCDS= ADCS= ADS= Ordinare in ordine crescente i risultati ottenuti

Dato Finale

Il percorso più breve è…………..

Modello

Page 8: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

8

Strategie Per La Risoluzione Strategie Per La Risoluzione Dei ProblemiDei Problemi

La prima faseprima fase dell’analisi di un problema, ossia la definizione dell’obiettivo da raggiungere, può essere realizzata attraverso processi di analisi sempre più dettagliati. Si tratta di scomporre un problema complesso in sottoproblemi più semplici, utilizzando la tecnica del top-downtecnica del top-down::

Il Il problemaproblema viene esaminato nelle direttrici generali;;

ScompostoScomposto in sottoproblemi;; Di Di ciascunciascun sottoproblemasottoproblema si determinano le

operazioni specifiche; Esso viene scomposto in ulteriori Esso viene scomposto in ulteriori sottosotto--

sottoproblemisottoproblemi, fino a giungere alle operazioni , fino a giungere alle operazioni elementari.elementari.

Page 9: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

9

Tecnica Del Top-downTecnica Del Top-down

ProblemaProblema

Sottoproblema 8Sottoproblema 8

Sottoproblema nSottoproblema n

Sottoproblema 7Sottoproblema 7

Sottoproblema 6Sottoproblema 6

Sottoproblema 5Sottoproblema 5

Sottoproblema 1Sottoproblema 1

Sottoproblema 2Sottoproblema 2

Sottoproblema 3Sottoproblema 3

Sottoproblema 4Sottoproblema 4

Problema 1Problema 1

Problema 2Problema 2

Problema 3Problema 3

Problema KProblema K

Page 10: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

10

DEFINIZIONE: Una dettagliata sequenza di azioni/operazioni che devono essere eseguite per risolvere una classe di problemi. Il nome deriva dal matematico Iraniano Al-KhawarizmiAl-Khawarizmi..

Tecnicamente un algoritmo e’ costituito da un numero finito di passi al termine dei quali deve essere generato un risultato.

Concetto di algoritmo

Page 11: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

11

Funzionalità di un AlgoritmoGli algoritmi utilizzano dati di ingresso e sono in grado di produrre dei risultati, elaborando secondo uno schema prefissato i dati in ingresso.

Page 12: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

12

Esempi di algoritmi:Preparazione di una torta

Ingredienti torta Ricetta Torta

Page 13: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

13

Esempi di algoritmi:Prelevamento col Bancomat

Tessera bancomatCodice segreto

Inserire la tesseraDigitare il codice segreto

Selezionare la funzione prelievoSelezionare l’importo da prelevare

Prelevare il denaro

Banconote

Page 14: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

14

Gli AlgoritmiGli Algoritmi L’ algoritmo deve essere:L’ algoritmo deve essere: FinitoFinito, , costituito cioè da un numero limitato di

passi (le istruzioni sono in numero finito e vengono eseguite un numero finito di volte);

DefinitoDefinito, , ogni istruzione deve consentire un’interpretazione univoca;;

EseguibileEseguibile, , cioè la sua esecuzione deve essere possibile con gli strumenti di cui si dispone;;

DeterministicoDeterministico, , ad ogni passo deve essere definita una ed una sola operazione successiva..

Page 15: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

15

Rappresentazioni Grafiche Di Rappresentazioni Grafiche Di

Un AlgoritmoUn Algoritmo

I Diagrammi a Blocchi.I Diagrammi a Blocchi. Tra le tecniche utilizzate per

rappresentare in maniera chiara e sintetica la struttura degli algoritmi, quella del Diagramma a Blocchi ,anche detto flow-chartflow-chart, ha il pregio di evidenziare visivamente l’avanzamento in sequenza e le varie strutture che compongono l’algoritmo.

Page 16: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

16

ALGORITMO ALGORITMO Somma di una Somma di una sequenza di numerisequenza di numeri

Indicando con ai il generico elemento da sommare, la formula matematica generale è S = a1+ a2 +…+ an . Bisogna fornire in input all’elaboratore i singoli valori ai ed il numero n di tali valori. L’algoritmo utilizza una struttura iterativa, ossia un blocco d’istruzioni che viene ripetuto un numero finito di volte. Utilizzeremo una variabile N per l’input di n per contare quante volte si deve ripetere l’iterazione; il valore di N si decrementa di un’unità nell’ambito dell’iterazione e l’iterazione termina quando N raggiunge il valore zero. La variabile A è usata per gli input degli ai, S per le somme parziali e totale.

inizio

N

S 0

A

S S + A

N N-1

N=0 S

fine

N0

Page 17: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

17

ALGORITMO Calcolo Della Media Aritmetica di

una Sequenza di Valori Numerici La formula matematica è La formula matematica è M = M = aa11+ + aa2 2 ++……+……+aann

nn

Si consente all’utente di Si consente all’utente di introdurre un numero introdurre un numero qualsiasi di dati, qualsiasi di dati, utilizzando un valore utilizzando un valore speciale (lo zero) per speciale (lo zero) per indicare la fine della indicare la fine della sequenza di input; sequenza di input; l’algoritmo conta quanti l’algoritmo conta quanti elementi vengono elementi vengono introdotti.introdotti.

Page 18: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

18

Il Linguaggio Di ProgettoIl Linguaggio Di Progetto Un Un algoritmoalgoritmo può essere rappresentato anche può essere rappresentato anche mediante un linguaggio speciale che descrive le mediante un linguaggio speciale che descrive le istruzioni e la logica di avanzamento istruzioni e la logica di avanzamento dell’esecuzione con frasi (stringhe) anziché con un dell’esecuzione con frasi (stringhe) anziché con un diagramma. Si parla in tal caso di pseudocodifica o diagramma. Si parla in tal caso di pseudocodifica o notazione lineare strutturata.notazione lineare strutturata.

Tale linguaggio formale, detto Tale linguaggio formale, detto linguaggio dilinguaggio di progettoprogetto, non è un linguaggio di programmazione , non è un linguaggio di programmazione ma è molto sintetico ed è composto da un ma è molto sintetico ed è composto da un vocabolario e una sintassi molto ristretta . Esso vocabolario e una sintassi molto ristretta . Esso utilizza utilizza parole riservateparole riservate, spesso tratte dalla lingua , spesso tratte dalla lingua inglese, mediante le quali vengono espressi i inglese, mediante le quali vengono espressi i diversi tipi di istruzioni.diversi tipi di istruzioni.

Page 19: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

19

 ALGORITMO Somma di una ALGORITMO Somma di una

sequenza di numerisequenza di numeri

Pseudocodifica algoritmo 1Pseudocodifica algoritmo 1

Page 20: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

20

ALGORITMO Calcolo Della Media Calcolo Della Media Aritmetica Di Una Sequenza Di Valori Aritmetica Di Una Sequenza Di Valori

NumericiNumerici Pseudocodifica algoritmo 2:Pseudocodifica algoritmo 2:

Page 21: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

21

Il Concetto di Sistema Si dice sistema un insieme di elementi che Si dice sistema un insieme di elementi che interagiscono tra loro in modo da formare una unità interagiscono tra loro in modo da formare una unità che al verificarsi di un dato evento (azione) che al verificarsi di un dato evento (azione) proveniente dall’ambiente esterno (ecosistema), proveniente dall’ambiente esterno (ecosistema), produce una risposta definitaproduce una risposta definita.

Rappresentazione schematica di un sistema:

Esempio:Esempio: un ascensore che si trovi al piano terra, un ascensore che si trovi al piano terra, quando l’utente preme il pulsante 2 sale di due piani; se quando l’utente preme il pulsante 2 sale di due piani; se l’utente preme ancora il pulsante 2 una volta arrivato al l’utente preme ancora il pulsante 2 una volta arrivato al secondo piano, l’ascensore non si muove. Il sistema ha secondo piano, l’ascensore non si muove. Il sistema ha prodotto uscite diverse in quanto si trovava in stati prodotto uscite diverse in quanto si trovava in stati diversi.diversi.

InputEcosistemaEcosistema Output

Page 22: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

22

Concetto di Modello

Un modello è uno schema teorico elaborato in molte Un modello è uno schema teorico elaborato in molte discipline per rappresentare gli elementi discipline per rappresentare gli elementi fondamentali di fenomeni o enti. fondamentali di fenomeni o enti.

modelli descrittivi o staticimodelli descrittivi o statici:: riproducono con eventuali riproducono con eventuali semplificazioni la realtà, senza presupporre l’uso che ne verrà fattosemplificazioni la realtà, senza presupporre l’uso che ne verrà fatto

modelli predittivimodelli predittivi:: danno gli elementi di una certa realtà necessari danno gli elementi di una certa realtà necessari per prevederne l’evoluzione, lasciando spazio ad eventuali scelteper prevederne l’evoluzione, lasciando spazio ad eventuali scelte

modelli prescrittivimodelli prescrittivi:: impongono un particolare percorso in impongono un particolare percorso in previsione dell’obiettivo da raggiungereprevisione dell’obiettivo da raggiungere

modelli simbolici o matematicimodelli simbolici o matematici:: danno una rappresentazione danno una rappresentazione astratta della realtà cui si riferiscono, mediante un insieme di astratta della realtà cui si riferiscono, mediante un insieme di equazioni e/o disequazioni che legano le grandezze coinvolteequazioni e/o disequazioni che legano le grandezze coinvolte

modelli analogicimodelli analogici:: danno una rappresentazione fedele della realtà, danno una rappresentazione fedele della realtà, tipici sono i tipici sono i modelli in scala ridottamodelli in scala ridotta, che riproducono qualitativamente , che riproducono qualitativamente un sistema pur riducendone proporzionalmente la dimensioneun sistema pur riducendone proporzionalmente la dimensione

Page 23: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

23

Concetto di AutomaUn automa è un sistema Un automa è un sistema dinamico, invariante, discretodinamico, invariante, discreto nell’avanzamento e nelle interazioni.nell’avanzamento e nelle interazioni.

dinamico: evolve nel tempo passando da uno stato all’altro in funzione dei segnali d’ingresso e dello stato precedente; invariante: a parità di condizioni iniziali il comportamento del sistema è sempre lo stesso; discreto: le variabili d’ingresso, di stato, d’uscita, possono assumere solo valori discreti.

Esempio di Esempio di automa a stati finitiautoma a stati finiti: : Ascensore Ascensore Un ascensore di un palazzo a due piani accetta la Un ascensore di un palazzo a due piani accetta la richiesta del piano di destinazione (terra, 1, 2) e richiesta del piano di destinazione (terra, 1, 2) e restituisce lo spostamento desiderato (su, giù, restituisce lo spostamento desiderato (su, giù, fermo). Si tratta di un automa in cui S={Pt, 1P, fermo). Si tratta di un automa in cui S={Pt, 1P, 2P}, Pt= p. terra, 1P= p. primo, 2P= p. secondo; 2P}, Pt= p. terra, 1P= p. primo, 2P= p. secondo; I={T, 1, 2} ingressi possibili offerti dalla I={T, 1, 2} ingressi possibili offerti dalla pulsantiera; U={Su, Giù, Fermo} spostamenti pulsantiera; U={Su, Giù, Fermo} spostamenti dell’ascensore.dell’ascensore.

S= insieme finito di stati I= insieme finito dei possibili ingressi S= insieme finito di stati I= insieme finito dei possibili ingressi U=insieme finito di possibili usciteU=insieme finito di possibili uscite

Page 24: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

24

Automi e Classi di Problemi Molte macchine che usiamo

quotidianamente sono automi:la lavatrice, la lavastoviglie, l’impastatrice,i sistemi di controllo degli ascensori, i distributori automatici di bevande, i distributori automatici di benzina, i bancomat.

I computer sono automi, particolari automi a programma, possono cioè svolgere il ruolo di un automa o di un altro in funzione del programma che si manda in esecuzione.

Page 25: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

25

Automi e Classi di Problemi L’utilizzo di automi è uno strumento molto potente per

individuare la soluzione di particolari classi di problemi. L’uomo che li utilizza interviene solo nel fornire i comandi in ingresso o nell’azionare pulsanti e senza interessarsi di cosa accade al loro interno, vede solo l’effettuazione della funzione in uscita.

Un sistema automatico è un sistema in cui la componente umana è completamente eliminata nell’ambito dei processi, che sono ben determinati e prevedibili e ogni richiesta in ingresso può attivare uno solo dei processi eseguibili dal meccanismo interno.

Un sistema umano, al contrario, quale ad esempio un sistema aziendale, presenta un carattere probabilistico poiché l’uomo può assolvere a funzioni anche impreviste, in numero indeterminato, utilizzando un ragionamento, ma anche creatività ed intuito.

Page 26: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

26

I Linguaggi Il linguaggiolinguaggio consente la comunicazionecomunicazione, intesa

come scambio di informazioni. La funzione fondamentale del linguaggioLa funzione fondamentale del linguaggio è quella

di sostituire ad oggetti e/o concetti dei simboli. Ogni parola (significantesignificante) rappresenta un oggetto concreto, una persona, un ente astratto (significatosignificato).

Linguaggi naturaliLinguaggi naturali, utilizzati nella comunicazione quotidiana tra gli esseri umani, privi di una definizione rigorosa ed in continua evoluzione, spesso presentano ambiguità ma hanno enorme potenza espressiva;

Linguaggi formaliLinguaggi formali, creati dall’uomo per scopi precisi, secondo regole convenzionali esplicite che non ammettono eccezioni e non consentono sinonimi e omonimie.

Page 27: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

27

Caratteristiche dei linguaggiCaratteristiche dei linguaggi

Il linguaggio è un sistema di segnisistema di segni, sistema in quanto i vari elementi di cui è formato funzionano insieme in sistema unitario. I segni sono le parole (stringhe)(stringhe) del linguaggio, che si usano per indicare l’associazione tra un dato percepibile ed un concetto. Ogni parola (significante)(significante) rappresenta un oggetto concreto, una persona, un ente astratto che la mente umana associa al messaggio (significato).(significato).

Page 28: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

28

Elementi di un LinguaggioElementi di un Linguaggio 1.1. AlfabetoAlfabeto: insieme finito e non

vuoto di simboli convenzionali espressi con segni tipografici detti caratteri

2.2. SintassiSintassi: insieme finito e non vuoto delle regole mediante le quali si formano le stringhe o le frasi di un linguaggio

Page 29: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

29

Elementi di un LinguaggioElementi di un Linguaggio

3.3.  SemanticaSemantica: insieme finito e non vuoto di significati da attribuire alle stringhe

4.4. Grammatica Grammatica:: insieme finito e non vuoto di tutte le regole che servono per generare un linguaggio

Page 30: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

30

I Linguaggi nella Comunicazione I Linguaggi nella Comunicazione

Uomo-MacchinaUomo-Macchina

L’utilizzo di un linguaggio formale consente di passare da un algoritmo al corrispondente programma. Si dice programmaprogramma una sequenza di istruzioni espresse in un linguaggio formale (linguaggio di linguaggio di programmazioneprogrammazione) mediante le quali si può risolvere un problema.

Page 31: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

31

Linguaggi e AutomiLinguaggi e Automi Per ottenere la soluzione di un problema, una volta

individuata la strategia risolutiva (algoritmoalgoritmo), si affida la messa in atto delle operazioni che essa prevede ad un esecutore (automaautoma).

Un automaautoma è costruito per uno scopo determinato, ed è pertanto in grado di compiere il processo previsto per raggiungere l’obiettivo fissato, compiendo un numero finito di operazioni disposte, in risposta agli input che gli vengono forniti al momento dell’attivazione.

Un elaboratore elettronico è un automaelaboratore elettronico è un automa programmabileprogrammabile, è possibile cioè comunicare con esso usando linguaggi diversi, ciascuno finalizzato alla soluzione di una particolare classe di problemi. Nel calcolatore sono pertanto presenti simultaneamente una grande varietà di automi, ciascuno dei quali utilizza un opportuno linguaggio e quindi un particolare programma.

Page 32: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

32

Lo schema seguente illustra i passaggi che conducono dalla formulazione del problema alla sua soluzione.

Problema

Algoritmo

Programma sorgente

Programmatraduttore

Programma oggetto

Elaborazione

Risultati

Page 33: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

33

Rassegna dei Principali Software

Il sistema operativosistema operativo, che è il software di base ossia l’applicazione che controlla tutte le risorse del computer

il word processorword processor, per la realizzazione di testi scritti, che trasforma la macchina in un automa che ha sostituito le vecchie macchine da scrivere, con potenzialità assai più numerose e precise;

il foglio di calcolofoglio di calcolo, per il calcolo di un’ampia gamma di funzioni, la realizzazione di tabelle per l’organizzazione e l’analisi di dati, la creazione di grafici descrittivi di fenomeni di varia natura (economici, statistici, fisici…);

sistemi per la gestione di basi di datisistemi per la gestione di basi di dati, per la realizzazione di archivi di dati (insiemi organizzati di informazioni), la creazione di tabelle e la realizzazione di procedure per l’inserimento, la modifica e la consultazione dei dati archiviati secondo criteri prefissati;

Page 34: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

34

Rassegna dei Principali Software programmi per la realizzazione di presentazioni programmi per la realizzazione di presentazioni

multimedialimultimediali, utile supporto per l’attività d’insegnamento, per l’esposizione di una relazione in ambito aziendale, per la presentazione di un evento;

elaboratori digitali d’immagini e per la realizzazione elaboratori digitali d’immagini e per la realizzazione di animazionidi animazioni, con i quali è possibile ritoccare fotografie, realizzare fotomontaggi e immagini animate;  

programmi di grafica computerizzata,programmi di grafica computerizzata, per ottenere semplici disegni od anche immagini di precisione da utilizzare in ambito professionale;

editor di suonieditor di suoni, per la manipolazione e la realizzazione di file audio;

editor di pagine webeditor di pagine web, ossia di file in formato HTML (HyperText Markup Language) pubblicabili sulla rete Internet, così da rendere i dati in essi contenuti consultabili direttamente con un programma di navigazione (browser).

editor di suonieditor di suoni, per la manipolazione e la realizzazione di

file audio;

Page 35: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

35

Linguaggi di ProgrammazioneLinguaggi di Programmazione

Il passaggio dall’algoritmoalgoritmo risolutore di un problema al corrispondente programmaprogramma avviene mediante la codifica dell’algoritmo attraverso un linguaggio di programmazione.

I linguaggi di programmazionelinguaggi di programmazione differiscono tra di loro per la simbologia adottata per descrivere le operazioni e per le regole sintattiche con cui si compongono le istruzioni.

Tutti i linguaggilinguaggi riproducono una stessa serie di operazioni e processi effettivamente eseguibili dell’elaboratore elettronico, ossia utilizzano una stessa tipologia di istruzioniistruzioni.

Page 36: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

36

Istruzioni di dichiarazioneIstruzioni di dichiarazione, descrivono dati e variabili utilizzati dal programma, definendone tipo e struttura. Quanto più è evoluto il linguaggio, tanto più sono semplici le istruzioni per definire strutture complesse.

Istruzioni di assegnazioneIstruzioni di assegnazione, consentono di assegnare ad una variabile un valore dello stesso tipo della variabile.

Istruzioni di controlloIstruzioni di controllo, sono istruzioni che richiedono salti di sequenza nell’esecuzione del programma. Rientrano in questa categoria le istruzioni di selezione e di iterazione e i salti incondizionati

Istruzioni di input/outputIstruzioni di input/output, richiedono l’ingresso di informazione da una periferica alla memoria centrale oppure l’uscita di una informazione dalla memoria centrale ad una periferica.

Istruzioni dei Linguaggi Di Istruzioni dei Linguaggi Di

ProgrammazioneProgrammazione

Page 37: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

37

Gerarchie dei Linguaggi Di Gerarchie dei Linguaggi Di

ProgrammazioneProgrammazione L’ hardware del computer ha un suo linguaggio di programmazione detto linguaggio macchinalinguaggio macchina ll linguaggio macchina manipola direttamente le sequenze di bit fornite dall' hardware, utilizzando le operazioniprimitive dell' hardware stesso (operazioni aritmetiche).Programmare in linguaggio macchina è faticoso, costoso E comporta degli errori.Fin dagli anni 50 sono stati sviluppati linguaggi più evoluti, ciascuno dei quali progettato sopra un linguaggio piùrudimentale.

Page 38: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

38

Linguaggi di programmazione a Linguaggi di programmazione a

basso livellobasso livello Linguaggio macchinaLinguaggio macchina Le operazioni disponibili sono quelle direttamente fornite dall' hardware; ognioperazione è codificata da una sequenza di bit; ogni dato è indicato dall'indirizzo binario della parola dimemoria in cui è memorizzato. Ogni indirizzo è espresso in modo assoluto (rispetto a tutta la memoriadisponibile). Un programma è una sequenza di bit, che viene direttamente interpretata dall' hardware. Linguaggio assemblerLinguaggio assembler (o assemblativo) Le operazioni sono quelle direttamente fornite dall' hardware, masono indicate da nomi convenzionali (mnemonici); i dati sono indicati da nomi, che corrispondono a indirizzi.Gli indirizzi sono espressi in modo relativo rispetto all'inizio del programma, permettendo così modifiche più semplici.Il programma, per essere eseguito, viene tradotto in linguaggio macchina da un programmatraduttore detto assemblatoreassemblatore.

Page 39: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

39

Codice BinarioCodice Binario Bit (Binary digit)Bit (Binary digit) unità elementare di informazione (0

circuito spento 1 circuito acceso). A= 00 B= 01 C= 10A= 00 B= 01 C= 10 O = 11 la parola babbo

corrisponde alla stringa 01 00 01 01 1101 00 01 01 11 Oggi il codice più utilizzato è il codice ASCII che usa

sete o otto bit per rappresentare ogni singolo carattere. es. 01 00 00 01 es. 01 00 00 01 AA 01 00 00 11 01 00 00 11 C C 01 00 00 00 01 00 00 00 @@ 01 10 00 01 01 10 00 01 a a 00 10 00 01 00 10 00 01 ! ! 00 11 11 11 00 11 11 11 ?? Un gruppo di otto bit viene chiamato byte byte che è

anche l’unità di misura della capacità di memoria.• Kilobyte (Kb 1024 byte ).• Megabyte (MB 1024 x 1024 = 1.048.576 byte).• Gigabyte (Gb 1024x1024x1024 = 1.073.741.824

byte).

Page 40: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

40

Linguaggi di Programmazione ad Linguaggi di Programmazione ad Alto LivelloAlto Livello

Linguaggi procedurali Le operazioni disponibili sono ampie e non legate a quelle fornite dall' hardware. Idati sono indicati in modo totalmente indipendente dalla loro memorizzazione. Si tratta di linguaggi progettatiaffinchè la scrittura dei programmi sia semplice, elegante e, dunque, di facile comprensione e verifica. Peressere eseguito, un programma deve essere tradotto in linguaggio macchina da un programma traduttoredetto compilatore , oppure deve essere interpretato (cioè eseguito da un altro programma, l'interprete).Linguaggi procedurali di rilievo sono (o sono stati) FORTRAN, COBOL, BASIC, Pascal, C. Tra i linguaggiprocedurali alcuni sono detti orientati agli oggetti; tra questi ricordiamo C++ e Java.

Page 41: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

41

Rassegna dei Principali Rassegna dei Principali

LinguaggiLinguaggi FORTRAN (FORmula TRANslating system: sistema FORTRAN (FORmula TRANslating system: sistema

traduttore di formule)traduttore di formule) Ideato nei primi anni ’50 da John Backus, dipendente IBM, per consentire a tecnici e scienziati di risolvere problemi matematici in maniera automatica, senza ricorrere ai programmatori e con l’uso di una simbologia affine a quella matematica. Ha subito successive evoluzioni ed è utilizzato attualmente in ambito matematico.

ALGOL (ALGOritmic Language: linguaggio ALGOL (ALGOritmic Language: linguaggio algoritmico)algoritmico) Nato alla fine degli anni ’50, è stato sviluppato da Backus e Naur per applicazioni scientifiche. Importante caratteristica innovativa è la strutturazione del programma in blocchi, delimitati da un begin iniziale e da un end finale, che sarà ripresa dalla programmazione strutturata e dal linguaggio Pascal.

Page 42: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

42

LISP (LISt Processor: elaboratore di LISP (LISt Processor: elaboratore di liste)liste) Linguaggio indirizzato alla manipolazione di espressioni simboliche e di dati strutturati ad albero, che risale alla fine degli anni ‘50. E’ applicato nella produzione di programmi traduttori, dato che le regole sintattiche di questi vengono rappresentate secondo una struttura ad albero.

COBOL (COmmon Business Oriented COBOL (COmmon Business Oriented Language: linguaggio orientato alle Language: linguaggio orientato alle applicazioni commerciali)applicazioni commerciali) Ideato nel 1960 per sviluppare programmi per la soluzione di problemi aziendali nei campi dell’amministrazione e del commercio (fatturazione, contabilità, stipendi, organizzazione di dati, gestione di file,…), ha subito successive evoluzioni ed è tuttora utilizzato.

Page 43: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

43

BASIC (Begginner’s All-purpose Symbolic BASIC (Begginner’s All-purpose Symbolic Instruction Code: codice generale Instruction Code: codice generale d’istruzioni simboliche per principianti)d’istruzioni simboliche per principianti)

Nato all’inizio degli anni ’60, è un linguaggio algoritmico di carattere generale non indirizzato ad alcuna applicazione specifica e di facile apprendimento ed utilizzo. La sua semplicità e versatilità ne ha determinata la rapida ed ampia diffusione e la realizzazione di successivi aggiornamenti migliorativi. Da esso discendono i linguaggi visuali orientati agli oggetti (visual BASIC), con interfaccia grafica di facile utilizzo (pulsanti, finestre,…).

Page 44: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

44

PL1 (Programming Language/1: PL1 (Programming Language/1: linguaggio di programmazione/1)linguaggio di programmazione/1) Ideato nel 1965 per implementare programmi appartenenti a diverse aree applicative, scientifiche e gestionali, riassume in sé le caratteristiche dei precedenti FORTRAN, ALGOL e COBOL.  

LOGO (dal greco: pensiero, discorso)LOGO (dal greco: pensiero, discorso) Linguaggio adatto per l’apprendimento della logica della programmazione da parte dei bambini, fu ideato nel 1967. Il programmatore dispone di semplici comandi con i quali guida l’avanzamento di un cursore sullo schermo e riscontra gli effetti grafici del programma prodotto.

Page 45: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

45

PASCAL (così denominato in PASCAL (così denominato in onore del matematico onore del matematico francese Blaise Pascal).francese Blaise Pascal).

Ideato da Niklus Wirth nel 1970, con l’intento di realizzare un linguaggio che facilitasse l’insegnamento della scrittura di programmi, ha trovato e trova tuttora ampia applicazione in ambito didattico. Tale linguaggio consente un alto livello di strutturazione degli algoritmi e dei dati ed offre la possibilità di definire tipi di dati diversi da quelli standard.

Page 46: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

46

C(linguaggio di programmazione C)C(linguaggio di programmazione C) La prima versione fu realizzata nel 1972 da

Dennis Ritchie e si distingueva dai suoi predecessori per il fatto di implementare una vasta gamma di tipi di dato. E’ un linguaggio di alto livello che possiede un numero ristretto di parole chiave e di costrutti di controllo e un gran numero di operatori. Non possiede istruzioni di entrata/uscita né istruzioni per operazioni matematiche, ma questa sua apparente povertà di strumenti consente di realizzare qualsiasi programma in modo semplice. E’ stato definito “il linguaggio di più basso livello tra i linguaggi di alto livello”, perché è nato per lo sviluppo di sistemi operativi ossia software di basso livello, ma è un linguaggio potente come un linguaggio macchina e al tempo stesso di semplice utilizzo. Il sistema operativo UNIX è scritto con questo linguaggio.

Page 47: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

47

C++C++ Nel 1983 Bjarne Stroustrup inventò C++, che, partendo dal linguaggio C del quale estende la sintassi, introduceva la programmazione Orientata agli Oggetti (Object Oriented), un modo innovativo di progettare un programma che rende il codice più semplice e riutilizzabile.

JAVAJAVA Nato a metà degli anni ’90 ad opera della Sun Microsystem, è un linguaggio di programmazione Object Oriented utilizzabile su diverse piattaforme (Mac, PC, Unix e SGI) senza la necessità di modifiche o ricompilazioni. Si tratta di un linguaggio multipiattaforma, per il quale il compilatore non genera applicativi eseguibili dal computer, ma file che devono essere interpretati dalla JVM (Java Virtual Machine, un microprocessore virtuale) implementata sui vari sistemi. Ciò rende l’esecuzione di un’applicazione Java più lenta dei programmi normali.

Page 48: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

48

PHP (Hypertext Pre-Processor)PHP (Hypertext Pre-Processor) Linguaggio di scripting, si utilizza per

scrivere programmi che vengono interpretati dal server su cui risiedono pagine web. Quando l’utente richiede una pagina web contenente uno script PHP, il server richiama un modulo PHP che interpreta ed esegue il codice, restituendo al server codice web semplice (HTML) che viene passato al browser dell’utente. Tale procedimento consente di costruire dinamicamente il contenuto della pagina web.

Page 49: 1 Modulo 8 – Dal Problema Al Programma Piano Nazionale Di Formazione Degli Insegnanti Sulle Tecnologie Dellinformazione E Della Comunicazione.

49