1 / 73

Giorgio Gambosi

Giorgio Gambosi. Università di Roma “Tor Vergata”. Dipartimento di Matematica Centro di Ricerca e Formazione Permanente per l’Insegnamento delle Discipline Scientifiche.

jerica
Télécharger la présentation

Giorgio Gambosi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Giorgio Gambosi Università di Roma “Tor Vergata” Dipartimento di Matematica Centro di Ricerca e Formazione Permanente per l’Insegnamento delle Discipline Scientifiche

  2. Sono convinto che l'informatica abbia molto in comune con la fisica. Entrambe si occupano di come funziona il mondo a un livello abbastanza fondamentale. La differenza, naturalmente, è che mentre in fisica devi capire come è fatto il mondo, in informatica sei tu a crearlo. Dentro i confini del computer, sei tu il creatore. Controlli -- almeno potenzialmente -- tutto ciò che vi succede. Se sei abbastanza bravo, puoi essere un dio. Su piccola scala. Linus Torvalds L’informatica ha a che fare con i computer non più di quanto l’astronomia abbia a che fare con i telescopi. Edsger W. Dijkstra

  3. Problemi di immagine dell’informatica • Disciplina culturalmente povera rispetto a “hard sciences” • lo stesso avviene per scienze rispetto a materie umanistiche • tecnologia, non scienza • informatica come programmazione • assenza (irrilevanza) di fondamenti concettuali • modello “garage programming”

  4. Problemi di immagine • Informatico = nerd, “smanettone” • Non è una professione “di successo” • Problema comune con le altre discipline scientifiche • scienziato = secchione • Grande fatica, scarso ritorno • Fondamenti poco importanti

  5. L’informatica nella scuola • Apprendimento strumentale: informatica = computer • Scuola media: utilizzo strumenti • Scuola secondaria superiore: al massimo, programmazione • In generale, informatica vista come funzionale ad altre discipline • Produzione documenti, presentazioni, piccoli programmi di simulazione, fogli elettronici

  6. L’informatica nella scuola • Riforma Gelmini • Informatica soltanto nel Liceo scientifico, opzione scienze applicate • Impostazione tecnologica del programma

  7. Scarso appeal della matematica • Materia difficile • Scarso stimolo concettuale per gli studenti • Non sembra avere applicazioni immediatamente significative

  8. Test PISA, TIMSS, INVALSI • Insufficienti risultati a partire dalla scuola media (K8) • Soprattutto relativamente alle competenze e agli aspetti procedurali e di problem solving • Difficoltà di descrizione dei procedimenti di soluzione • La matematica insegnata sembra troppo poco attenta agli aspetti di applicazione delle conoscenze ed alla risoluzione (algoritmica) di problemi

  9. Cosa fare? • Come valorizzare l’informatica? • Come rendere più gratificante la matematica? • Sinergie: i concetti e i metodi fondamentali dell’informatica sono utili nell’insegnamento della matematica (e non solo)

  10. Come rendere più gratificante la matematica? • Maggiore attenzione all’utilizzo di metodi e concetti • Modellazione matematica • Computazione • Risoluzione di problemi • Pensare in modo computazionale

  11. Come valorizzare l’informatica? • Combattere idee sbagliate • Dare una definizione chiara della disciplina • Come corpus concettuale fondamentale • Rilevanza sull’acquisizione di un modo di pensare (rispetto a competenze specifiche)

  12. Idee sbagliate • CS = programmazione • CS = alfabetizzazione informatica (es. ECDL) • CS = strumento per lo studio di altre discipline • CS = non disciplina scientifica • CS = per maschi

  13. Come valorizzare l’informatica? • Informatica intesa come disciplina inerente: • La modellizzazione • La rappresentazione e la gestione dell’informazione • La risoluzione procedurale di problemi • La programmazione ha un ruolo del tutto ancillare

  14. Come valorizzare l’informatica? • Distinzione tra informatica e computer • Avvicinamento all’informatica non incentrato su computer • Unplugged CS • Presto: scuola elementare, scuola media • Presenza “trasversale” (ad es. relazioni con linguistica)

  15. Come valorizzare l’informatica? • Programmazione come formalizzazione di una procedura algoritmica • Utilizzo di ambienti di programmazione di tipo “educational” • Storytelling (Alice, Scratch) • Test e verifica di correttezza come “sfida mentale”

  16. Concetti chiave • Informazione, codifica e organizzazione • Algoritmi e loro implementazione • Astrazioni concettuali • Correttezza di una procedura • Efficienza

  17. Ruolo dei docenti • Formazione insegnanti fondamentale • Percezione sbagliata della CS trasmessa da docenti a studenti • Studenti validi orientati verso altri corsi di studio • Chi insegna cosa? • Ruolo dei laureati in informatica e in ingegneria informatica

  18. Cosa fare? • Presenza della comunità accademica per la definizione di programmi e obiettivi (non solo per informatica) • Collaborazione scuola-università • Non finalizzata alle sole immatricolazioni • Iniziative nazionali (olimpiadi informatica) • Lauree scientifiche

  19. Matematica • Definisce un linguaggio • Esprime situazioni e problemi reali in un formalismo rigoroso (modelli) • definisce proprietà che risultano in possibili modalità di risoluzioni dei problemi

  20. Rimane una questione aperta • quanto è effettivamente praticabile risolvere un problema? • quanto devo calcolare? • Praticabile: quante risorse di calcolo mi servono? • Tempo: il tempo è una risorsa

  21. Risolubilità effettiva di problemi. Esempio: TSP • 110 province in Italia, per ogni coppia tempo stimato di trasferimento • Voglio partire da Roma e tornare a Roma attraverso tutti i capoluoghi nel minor tempo possibile • Soluzione semplice: prova tutti i percorsi e scegli il più veloce • percorso=permutazione dei rimanenti 109 capoluoghi

  22. Risolubilità effettiva di problemi. Esempio: TSP • sono 109! permutazioni, circa 1.45x10^176 permutazioni • supponiamo di poter esaminare un percorso al minuto: servono circa 3x10^160 miliardi di anni! • Idea! Potrei usare un computer! un percorso ogni miliardesimo di secondo • servono circa 5x10^150 miliardi di anni

  23. Cosa fare? • Devo trovare un modo più efficiente di risolvere il problema • Ma esiste un modo più efficiente? • Magari esiste un modo efficiente per trovare un percorso molto vicino al migliore, ma non proprio quello

  24. Questioni • Dato un problema: • Quanto efficientemente è possibile risolverlo? • In che modo? • Possiamo trovare modi efficienti per risolverlo “più o meno”? • Come descriviamo il problema e le sue soluzioni? • Come descriviamo il modo di risolverlo? • E’ possibile, in assoluto, risolvere il problema in generale?

  25. Obiettivi dell’informatica • soluzione efficiente di problemi mediante procedure generali • rappresentazione efficiente dell’informazione

  26. Algoritmi • Sequenze di istruzioni • elementari (modello di calcolo) • di composizione • Modelli di calcolo • istruzioni possibili • loro significato in termini di esecuzione

  27. Algoritmi • Linguistica: • Algoritmi come testi di lunghezza finita • Eseguibili da un agente (modello di calcolo): esecuzione potenzialmente infinita • Generalità della soluzione • funzionano su input diversi (calcolano una funzione) • input ammissibili • codifica (ancora linguistica)

  28. Problema e algoritmo • Problema: • Insieme input ammissibili • Output definito da funzione dell’input • Soluzione algoritmica Algoritmo Input ammissibile Output richiesto

  29. Tipi di problemi • P1 • input, J,K interi • output J^2+3K • problema aritmetico, esecuzione di durata costante (sotto qualche ipotesi)

  30. Tipi di problemi • P2 • input K intero • output somma dei primi K interi • aritmetico, la durata dell’esecuzione dipende dall’input

  31. Tipi di problemi • P3 • input K intero • output “Y” se K è primo, “N” se composto • problema di decisione, output non numerico

  32. Tipi di problemi • P4 • Insieme di N parole • Le N parole in ordine alfabetico • non numerico

  33. Tipi di problemi • P5 • input due testi • output parole comuni • non numerico

  34. Tipi di problemi • P6 • input carta stradale, 2 città • output descrizione tragitto più breve tra le due città • problema di ottimizzazione, input strutturato

  35. Tipi di problemi • P7 • input carta stradale, N città, K intero • output “Y” se esiste un percorso tra tutte le città di lunghezza al più K, “N” altrimenti • problema di ottimizzazione visto come problema di decisione

  36. Tipi di problemi • P8 • input, posizione degli scacchi • output “Y” se esiste una sequenza di mosse per il bianco che gli fa vincere la partita, “N” altrimenti • problema di decisione relativo ad un gioco

  37. Tipi di problemi • P9 • input programma P, 2 variabili X (di input), Y, K intero • output 2K se P pone sempre Y=X^2, 3k altrimenti • riguarda il comportamento di un programma “osservato”

  38. Tipi di problemi • decisionali • di ricerca • di ottimizzazione • In molti casi difficile enunciare esattamente • output difficile: scacchi: come definire la mossa migliore • input complesso: problema di distribuzione (20000 giornali, 1000 rivenditori, 100 città, 50 furgoni) insieme dei costi, funzione di costo • previsioni del tempo (input?, output?): codifica di input e output

  39. Risolubilità • Problema risolubile se esiste un algoritmo che deriva l’output corretto per ogni input ammissibiledipendenza dal modello di calcolo • Problema trattabile se è risolubile ed esiste un algoritmo che lo risolve in modo efficiente (? Da definire)

  40. I computer • Sono una implementazione di un particolare modello di calcolo • Implementazione realizzata per mezzo di circuiti elettronici • Modello di calcolo molto semplice: sa fare poche cose elementari ==> è complicato descrivere un algoritmo per essere eseguito da questo modello di calcolo • Perché li usiamo? Perché l’implementazione elettronica del modello di calcolo fornisce operazioni molto veloci da eseguire

  41. Linguaggi di programmazione • Modelli di calcolo più articolati • Implementazione realizzata mediante software eseguito dal modello di calcolo del computer • Modello di calcolo più potente: sa fare a livello elementare più cose ==> è più semplice descrivere un algoritmo • Perché li usiamo? Sono un buon compromesso tra semplicità di descrizione di algoritmi e velocità di esecuzione

  42. Comunicazione • Definizione di algoritmi intesa come comunicazione • Destinatario: agente di calcolo, conosce la semantica, sa come eseguire i passi dell’algoritmo • Messaggio: descrizione dell’algoritmo, programma

  43. Linguistica • Algoritmi (e programmi) come frasi di un linguaggio • Sintassi: definisce cosa è corretto dal punto di vista di un insieme di regole di costruzione di “frasi” • Semantica: definisce il significato di una frase (in termini di esecuzione) • Modello di calcolo (linguaggio di programmazione): insieme delle frasi (programmi) corretti che posso scrivere

  44. La macchina di Turing • Modello di calcolo particolarmente semplice • Nastro di memoria • Testina di lettura/scrittura • Stato interno • Funzione di transizione

  45. La macchina di Turing • Esempio: un algoritmo di copia

  46. La tesi di Church-Turing • Un problema risolubile da un algoritmo su un qualche modello di calcolo è risolubile da una macchina di Turing • La macchina di Turing è il modello di calcolo più potente • Esistono modelli di calcolo meno potenti • Automi a stati finiti

  47. Algoritmi “sbagliati” • Su qualche input, viene fornito un output scorretto • Potrei accettarlo, se succede raramente (valutazione probabilistica) • A volte, non termina mai

  48. Un problema, tanti algoritmi • Ricerca in un insieme • Ricerca sequenziale: • quanti passi? tempo peggiore, tempo medio, tempo migliore • Ricerca a caso • (1-1/n)^(k-1)1/n probabilità in k passi, media n • Ci potrei mettere di meno? No, come minimo li devo guardare

  49. Un problema, tanti algoritmi • Ricerca in un insieme • Ipotesi aggiuntiva: insieme ordinato • Ricerca binaria • tempo peggiore lg n • Ci potrei mettere di meno? No (è possibile mostrarlo)

  50. Proporzionalità nella valutazione • Consideriamo la proporzione tra il numero di passi (il tempo) e la dimensione dell’istanza di problema • Semplificazione: le istanze di stessa dimensione non richiedono lo stesso tempo • Caso peggiore (caso medio)

More Related