22
Informatica e Algoritmi Teoria e Pratica

Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Embed Size (px)

Citation preview

Page 1: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Informatica e Algoritmi

Teoria e Pratica

Page 2: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Premessa

In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire agli studenti di utilizzare in modo proficuo, a qualche livello, un calcolatore elettronico. È però importante fornire anche nozioni concettuali che arricchiscano la cultura degli studenti, non solo come principio educativo generale, ma anche perché, a causa del rapido sviluppo tecnologico, le conoscenze e capacità tecniche degli utilizzatori di calcolatori diventano spesso obsolete.

Page 3: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Informatica=informazione+algoritmo

«L’informatica è la scienza degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione.»

(ACM – Association for Computing Machinery)

Page 4: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

L’Informazione

Viviamo nell’era dell’informazione. La società dell’informazione è

iniziata nel secondo dopoguerra. Non è stata ancora formulata una

teoria completa.

Page 5: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Internet

Negli ultimi 5-10 anni, la crescita esponenziale del fenomeno Internet ha accentuato la situazione di esplosione dell’informazione: disponendo di un calcolatore collegato in Internet, si ha libero accesso a una enorme banca dati multimediale mondiale, costituita dai dati messi a disposizione sui calcolatori collegati in rete. Su questa banca dati possiamo inserire i nostri dati, “navigare” e ricercare informazioni, con gli obiettivi più diversi (lavoro, studio, divertimento).

Page 6: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Il Futuro

Negroponte ritiene che arriveremo a realizzare una rete planetaria in cui si potranno trasportare non gli atomi, ingombranti e costosi, ma i bit, leggeri ed economici, e che i calcolatori riusciranno a salire di livello, a costruire un modello dell’utente, a capire quali informazioni gli interessano e a selezionarle in modo autonomo e automatico.

Page 7: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Il Futuro

Secondo Postman corriamo invece il serio pericolo di restare vittime di una sorta di AIDS (Anti-Information Deficiency Syndrome): per riuscire a gestire tutti i dati disponibili avremo bisogno di più tecnologia informatica, ciò consentirà alla quantità di dati di lievitare, richiedendo ancora più tecnologia, e così via, in un circolo vizioso che porterà al collasso culturale.

Page 8: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Cos’è l’Informazione?

Bateson, vede l’informazione come una differenza: «Ricevere informazioni vuol dire sempre e necessariamente ricevere notizie di differenza.»

Shannon nel 1948 ha teorizzato che la quantità di informazione che un qualsiasi evento può portare dipende dal numero di alternative e dalla loro probabilità.

Page 9: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Informatica

L’informatica non è né la “scienza di calcolatori elettronici” né la “scienza dell’informazione”.

Page 10: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Informatica

L’informatica è in realtà una disciplina articolata e in rapida evoluzione. Un proposta per la sua suddivisione è la seguente:

Algoritmi e strutture dati (studio di algoritmi più efficaci). Programmazione (studio dei programmi, ossia degli algoritmi espressi in un linguaggio

comprensibile dal calcolatore; studio di tali linguaggi, detti linguaggi di programmazione). Architettura dei calcolatori (come costruire calcolatori più potenti). Reti di calcolatori (come collegare più calcolatori). Sistemi operativi (studio dei programmi che consentono di utilizzare i calcolatori). Ingegneria del software (costruzione di programmi di grandi dimensioni). Basi di dati e sistemi per il reperimento delle informazioni (programmi in grado di gestire

grandi quantità di dati) Intelligenza artificiale (programmi in grado di imitare il comportamento intelligente degli

esseri umani) Visione e robotica (programmi in grado di “vedere” e programmi con un corpo) Teoria dell’informazione (studio teorico della rappresentazione efficace dell’informazione)

Page 11: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Cos’è un calcolatore

Un calcolatore è un esecutore universale di algoritmi: può eseguire qualsiasi algoritmo gli venga fornito, purché rappresentato nel formalismo che il calcolatore sa comprendere.

Page 12: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Il concetto di algoritmo

Un algoritmo è genericamente una sequenza di passi elementari necessaria a risolvere un determinato problema.

Un problema è un’insieme di domande omogenee.

L’istanza di un problema è uno specifico esemplare della classe di domande omogenee.

La soluzione di un’istanza di un problema è la risposta ad una domanda.

Page 13: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Alcune definizioni

La soluzione di un problema (o algoritmo risolvente) è un metodo generale che permette di fornire in modo uniforme la risposta a tutte le istanze di un problema.

L’algoritmo è un’entità astratta: è un “metodo”, un “procedimento”, una “sequenza di passi”.

La sua rappresentazione è detta programma e il formalismo linguaggio di programmazione.

Page 14: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Alcune considerazioni

Possono esistere più linguaggi di programmazione.

Uno stesso algoritmo può essere rappresentato in più linguaggi di programmazione, ottenendo quindi programmi diversi.

Uno stesso algoritmo può essere rappresentato con due programmi diversi scritti nello stesso linguaggio di programmazione.

Page 15: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Proprietà formali degli algoritmi

Finitezza. Un algoritmo deve essere composto da un numero finito di istruzioni.

Univocità. Ogni istruzione deve essere non ambigua, interpretabile in un unico modo ed anche il modo di combinare le istruzioni deve essere non ambiguo.

Effettività. Deve esistere un calcolatore in grado di eseguire effettivamente l'algoritmo.

Page 16: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

I diagrammi di flusso

Un diagramma di flusso è una struttura costituita da blocchi connessi da frecce (grafi costituiti da nodi e archi orientati che collegano coppie di nodi) utilizzabile per la documentazione degli algoritmi.

Page 17: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Tipi di blocchi

Esistono quattro tipi di blocchi: un blocco di inizio; un blocco di fine; blocchi funzionali; blocchi decisionali;

Page 18: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Inizio

Il blocco di inizio, indica l’inizio del programma; è unico in un programma, e può presentare un solo arco uscente e nessuno entrante;

Page 19: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Fine

Il blocco di fine, denota la fine del programma e quindi non avrà archi uscenti, ma solo uno o più archi entranti; possono essercene più d’uno.

Page 20: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Blocchi funzionali

I blocchi funzionali, contengono un’istruzione elementare di tipo aritmetico, di assegnamento, di lettura e scrittura, rappresentata come un rettangolo avente più archi entranti, ma solo uno uscente;

Page 21: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Blocchi decisionali

I blocchi decisionali: possono contenere una condizione logica che assume i valori vero (V) oppure falso (F); possono avere più archi entranti, e da esso ne escono due, uno denotato con V, e l’altro con F. Graficamente sono rappresentati come dei rombi.

Page 22: Informatica e Algoritmi Teoria e Pratica. Premessa In un corso di introduzione all’informatica è indispensabile fornire competenze tecniche, per consentire

Come funziona un calcolatore

riceve un programma e dei dati, per risolvere un dato problema; i dati sono i valori che identificano una specifica istanza;

esegue il programma sui dati (computazione);

fornisce la risposta all’istanza del problema derivata istanziando il problema sui dati.