Introduzione: informatica 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina...

Post on 03-May-2015

219 views 3 download

Transcript of Introduzione: informatica 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina...

Introduzione: informatica

18/2/2013Informatica applicata alla

comunicazione multimedialeCristina Bosco

Indice

- di cosa si occupa l’informatica - una definizione della scienza

informatica- cosa è un algoritmo- algoritmi, soluzioni, problemi- cosa è un computer- computer di ieri e di oggi

L’informatica è una scienza

Per definire una scienza diciamo di checosa si occupa:• la chimica si occupa della struttura e

composizione della materia• la biologia si occupa degli organismi

viventi• l’informatica si occupa di … ???

Di cosa si occupa l’informatica?

• di studiare i computer?

• di come si scrivono i programmi per computer?

• di come si utilizzano i computer?

L’informatica NON si occupa di studiare i

computer• i primi studi di informatica risalgono

agli anni 1920-1940, quando i computer non esistevano ancora

• “ L’informatica non si occupa più dei computer di quanto l’astronomia si occupi di telescopi, la chimica di provette e becher.” (Fellows & Parberry)

L’informatica NON si occupa di come si scrivono i

programmi per computer

• la conoscenza dell’informatica può passare attraverso l’apprendimento di un linguaggio di programmazione

• ma l’utilizzo dei linguaggi è solo uno strumento per testare le soluzioni proposte per i problemi

L’informatica NON si occupa di come si utilizzano i

computer

• la conoscenza dell’informatica può passare attraverso l’apprendimento di applicazioni software

• ma saper utilizzare un software sta all’informatica come la patente di guida sta all’ingegneria meccanica

L’informatica si occupa ANCHE

• di studiare i computer• di come si scrivono i programmi per i

computer• di come si utilizzano i computer

MA NON SOLO

L’informatica è la scienza che studia gli algoritmi

quindi comprende:• lo studio delle proprietà formali degli

algoritmi• lo studio delle implementazioni degli

algoritmi• lo studio dell’applicazione degli

algoritmi

Cosa sono gli algoritmi?

• il nome deriva da quello del matematico persiano al-Khowarizmi (780-850?)

• informalmente si definiscono come procedure per la soluzione di problemi

• es: l’insieme di regole di calcolo per calcolare il massimo comune divisore, è un algoritmo inventato da Euclide nel IV secolo a.C.

Algoritmo per preparare una torta

RICETTA CUOCO e UTENSILI

INGREDIENTI

TORTA

L’algoritmo è la ricetta

la ricetta consente • con pochi semplici ingredienti• ad un cuoco che sa fare poche

semplici operazioni con i suoi utensili• di produrre la torta

RICETTA CUOCO e UTENSILI

INGREDIENTI

Torte e computer

INPUT

OUTPUT

ALGORITMO(SOFTWARE) HARDWARE

TORTA

Algoritmi e linguaggi

• la ricetta rimane la stessa se scritta in italiano, francese, inglese, hindi …

• la procedura descritta è l’algoritmo • l’algoritmo è una entità astratta

indipendente dalla forma in cui viene espresso

• l’algoritmo rimane lo stesso se scritto in linguaggi di programmazione diversi

Algoritmi e astrazione

• la ricetta comprende operazioni elementari che un qualunque cuoco sa eseguire, descritte ad un ragionevole livello di astrazione

• Es.: in una ricetta potremmo trovare– versate un cucchiaio di zucchero …ma non– prendete 2.343 granelli di zucchero,

sollevate il braccio con una angolazione di 14 gradi ad una velocità di 50 cm/sec …

Algoritmi e astrazione

• allo stesso modo, l’algoritmo comprende operazioni elementari che un qualunque hardware sa eseguire, descritte in modo indipendente da un linguaggio di programmazione o una macchina che le esegue:– somma due numerima non- somma 2 + 2

Algoritmi e soluzioni

• la ricetta può produrre torte diverse se applicata ad ingredienti diversi

• l’algoritmo può risolvere problemi diversi se applicato ad input diversi

L’informatica è la scienza della risoluzione di problemi

mediante algoritmi

dato un problema l’informatica lo può risolvere se:

• esiste un algoritmo di soluzione• esiste un programma che descrive

l’algoritmo• esiste un computer che può eseguire

materialmente il programma

L’informatica è la scienza della risoluzione di problemi

mediante algoritmi

il fatto che non si vede il risultato di un algoritmo se non si ha una sua descrizione in un linguaggio di programmazione ed una macchina su cui gira spiega perché si tende a ridurre l’informatica allo studio ed utilizzo dei computer, o alla scrittura di programmi per i computer

L’informatica è la scienza della risoluzione di problemi

mediante algoritmi

la soluzione di un problema richiede che:

• esista una descrizione formale della soluzione (ALGORITMO)

• l’algoritmo sia descritto in un linguaggio di programmazione (PROGRAMMA SOFTWARE)

• un computer esegua materialmente i passi del programma (HARDWARE)

Algoritmo e computer

l’algoritmo consente

• ad una macchina (computer) che sa fare poche semplici operazioni con i suoi semplici utensili

• di produrre la soluzione di problemi anche molto complessi

Algoritmo e computer

Il programma che descrive l’algoritmo è semplicemente la traduzione di ogni passo dell’algoritmo

nella lingua che il computer è in grado di comprendere

ovvero in una serie di semplici operazioni che un computer è in grado di eseguire

Computer e problemi

oggi i computer:• fanno volare aerei e astronavi• controllano centrali elettriche e

impianti industriali sofisticati• elaborano immagini e testi• comunicano nel linguaggio degli

esseri umani … PIÙ O MENO … come vedremo in dettaglio!

• …

Algoritmi e problemi

esistono problemi NON risolvibili dai computer cioè per i quali

• è formalmente dimostrato che non esiste soluzione algoritmica

• esiste una soluzione algoritmica ma i computer attuali impiegherebbero troppo tempo per realizzarla

• non è ancora stata trovata una soluzione algoritmica (es. Intelligenza Artificiale)

Algoritmi e problemi

• NOTABENE: tra i problemi NON risolvibili ci sono quelli dell’Intelligenza Artificiale!!!

• Quindi anche quelli della linguistica computazionale e la Traduzione Automatica!!!

Algoritmi e problemi

Gli algoritmi sono eseguibili se hanno:• input e output specificato• determinatezza (specifica dei passi e

della loro sequenza)• efficacia (eseguibilità meccanica senza

altro contributo che l’input)• terminazione (tempo di esecuzione non

infinito)

Cosa è un computer

• una macchina che sa eseguire poche elementari operazioni

• un motore di esecuzione di istruzioni • ma è programmabile cioè può

simulare comportamenti di altre macchine (e dell’uomo) sulla base di insiemi strutturati di istruzioni (=programmi) fornite dall’uomo

Macchine “programmabili”

• il telaio inventato nel 1801 da Joseph Jacquard in Francia

• la macchina teorizzata nel 1936 da Alan Turing in Inghilterra

• Mark I• ENIAC • EDVAC costruita nel 1951 da John von

Neumann negli USA

La macchina di Turing

• è l’idea astratta di una macchina che ha sullo stesso dispositivo di memoria dati e programma

• esegue solo operazioni semplici (lettura, scrittura, cancellazione e spostamento) su una memoria in forma di nastro

ENIAC

• Electronic Numerical Integrator And Calculator

• Costruita dall’esercito USA nel 1946• Eckert, Mauchley e Atanasoff

ENIAC

• programmata esternamente mediante fili, connettori ed interruttori

• programmare la macchina per lo svolgimento di un nuovo compito significava modificare le impostazioni di migliaia di interruttori

ENIAC:

• 18.000 valvole• 30 metri di lunghezza• 3 metri di altezza• 3 tonnellate di peso

La macchina di von Neumann

• è la prima macchina reale con programma memorizzato

• la sua unità di memoria contiene sia i dati che il programma

• le istruzioni sono inserite in memoria ed eseguite senza alcun ulteriore intervento umano

I computer attuali

Adottano l’architettura della macchina di von Neumann:

• unità di input• unit di output• Central Processing Unit (CPU)• memoria

I computer attuali

Svolgono le semplici operazioni sulla memoria descritte da Turing:

• scrittura• lettura• cancellazione• spostamento

I computer attuali

• sono dei grandi insiemi di interruttori

• gli interruttori sono passati da valvole a transistor a circuiti integrati

• ma rimane vero che ogni interruttore ha 2 soli stati (accesso e spento) che corrispondono ai 2 valori necessari alla codifica digitale