Introduzione all’informatica
Introduzione all’Informatica
Chi sono?
Claudio Schifanella Dipartimento di Informatica [email protected] http://www.di.unito.it/schi
Perché l’enfasi sulla teoria?
Per non essere legati indissolubilmente a un tipo di computer (es. PC con Windows)
Per non essere legati a un tipo di programma (es. versione 2000 di Microsoft Word)
Se non si conoscono gli strumenti tecnologici, non se ne possono sfruttare le potenzialità
Il computer è versatile: non si possono prevedere gli usi futuri
IntroduzioneInformatica
Ringraziamenti
Questi lucidi sono stati ideati, preparati e aggiornati nel corso degli anni, oltre che da me, da vari colleghi. Tra tutti, è necessario citare almeno: Marina Ribaudo (Univ. di Genova) Marco Botta (Univ. di Torino) Giancarlo Ruffo (Univ. di Torino) Alessandro Mazzei (Univ. di Torino) Jeremy Sproston (Univ. di Torino) Luca Anselma (Univ. di Torino) Roberto Esposito (Univ. di Torino) Rossano Schifanella (Univ. Di Torino)
IntroduzioneInformatica
“Sì, ma perché proprio a noi?”
Perché uno dovrebbe interessarsi di informatica?
Il computer è uno strumento di lavoro quotidiano
Perché è fondamentale come supporto alla ricerca come strumento per la modellazione delle molecole; per
l’analisi statistica; per le ricerche bibliografiche; per la scrittura di testi.
Perché è utile indipendentemente dal tipo di studi che fate per redigere la tesi di laurea, per reperire informazioni su
internet, per comunicare con collaboratori ed amici, etc.
IntroduzioneInformatica
Dove è necessaria l’informatica?
Ovunque si utilizzino apparecchiature programmabili: Uso di computer in vari settori “tradizionali” (attività
industriali, commerciali, militari, ecc.), ma anche:
Editoria elettronica
Elaborazione di immagini e suoni
Computer art
…
6
IntroduzioneInformatica
Cos’è l’Informatica?
Definizione 0:
“L’Informatica è la scienza del calcolo automatico.”
IntroduzioneInformatica
Cos’è l’Informatica?
Definizione 1:
“Con il termine Informatica si indica l’insieme dei processi che rendono possibile la creazione, la raccolta, l’elaborazione, l’immagazzinamento e la trasmissionedell’informazione con metodi automatici”
8
IntroduzioneInformatica
Cos’è l’Informatica?
Definizione 2:
“La determinazione con metodo sia ipotetico-deduttivo che sperimentale, nonché l'analisi e la definizione di protocolli e metodologie di verifica valide per la costruzione di prototipi e applicazioni ingegnerizzate riguardo a tutto ciò in cui consiste la definizione di dati di ingresso e la costruzioni di soluzioni che comportino la definizione di dati di uscita”
[ACM, Association for Computing Machinery, Syllabus dei corsi universitari di Informatica]
9
IntroduzioneInformatica
Di cosa parliamo quando parliamo di Informatica
Information and Communication Technology:Informatica come tecnologia risvolti fisico-matematici e ingegneristici del calcolo
automatico; teorie e tecniche di comunicazione
Computer Science: Informatica come scienza basata su modellizzazione, formalizzazione e verifica
sperimentale (teoria degli automi, logica formale, teorie del linguaggio)“Computer Science is no more about computers than astronomy is about telescopes.” (E. Dijkstra)
IntroduzioneInformatica
Introduzione alle tecnologie informatiche
Il calcolo automatico
Effettuare calcoli a mente o a “mano” è un’attività “costosa” (in termini di tempo e fatica) e incline all’errore.
Per secoli l’uomo ha cercato di porre rimedio a questo fatto “automatizzando” il processo di calcolo.
IntroduzioneInformatica
L’abaco
È la prima “macchina” di calcolo nota.
I primi abaci risalgono al V millennio a.C.
IntroduzioneInformatica
L’abaco
L’abaco aiuta l’utente principalmente come strumento per tenere traccia di quanto già fatto.
La logica e la correttezza dell’operazione dipendono interamente dall’utente
IntroduzioneInformatica
La Pascalina
Bisogna aspettare fino al XVII secolo d.C. per avere la prima vera innovazione rispetto all’abaco.
Inventata nel 1642 dal filosofo e matematico francese Blaise Pascal
Per molto tempo è stata considerata la prima addizionatrice meccanica, anche se questo merito andrebbe alla calcolatrice di Wilhelm Schickard.
IntroduzioneInformatica
La Pascalina
La pascalina é il primo grande passo avanti: la logica dell’operazione é controllata dalla macchina.
IntroduzioneInformatica
Problema
La pascalina permetteva di effettuare “solo” addizioni e sottrazioni.
Moltiplicazioni, divisioni potevano essere effettuate mediante ripetizioni di addizioni e sottrazioni, ma era di nuovo l’utente a dover controllare il processo.
IntroduzioneInformatica
Come aggiungere nuove operazioni?
Si può pensare di affrontare il problema modificando la macchina in modo da introdurre la divisione e la moltiplicazione.
Nuovi problemi: radice quadrata? logaritmo?
Quante sono le funzioni definibili?
In effetti non si sta risolvendo il problema, lo si “rimanda”
IntroduzioneInformatica
Come aggiungere nuove operazioni?
Il problema vero è che la logica che governa le operazioni è “cablata” nella macchina calcolatrice.
La soluzione è di trattare tale logica come parte dell’input della macchina.
IntroduzioneInformatica
Logica delle operazioni come parte dell’input?
Il prodotto, la divisione, …, possono essere “descritti” tramite operazioni più semplici
Individuiamo un insieme “base” di operazioni e combiniamole per rappresentare quelle più complesse
L’ordine delle operazioni base e i loro argomenti possono essere specificati usando solo numeri
Siamo quindi in grado di descrivere la logica di operazioni complesse usando il linguaggio (i numeri) usato per l’input delle macchine di calcolo
20
IntroduzioneInformatica
La “Macchina Analitica”
Introdotta da Charles Babbage intorno al 1840, è il primo esempio di macchina di calcolo “programmabile”
IntroduzioneInformatica
ProgrammaDati
La logica dell’operazione è“confusa” con i dati
IntroduzioneInformatica
Da Babbage ai giorni nostri
Le idee di Babbage erano troppo avanzate per la sua epoca storica. Da un lato la tecnologia non era ancora sviluppata a sufficienza da supportare le sue idee (la macchina analitica era progettata per funzionare a vapore!), dall’altro non era ancora sentita così forte l’esigenza del calcolo automatico.
Per questi motivi le sue idee non ebbero il successo che meritavano e furono dimenticate per quasi un secolo.
IntroduzioneInformatica
Da Babbage ai giorni nostri
Le idee di Babbage vennero “riscoperte” nella prima metàdel ‘900 da Alan Turing e da John von Neumann.
IntroduzioneInformatica
Alan Turing
Uno dei padri dell’informatica. Moltissime sue idee/congetture sono attuali oggigiorno. Introduce il concetto di macchina universale (i computer moderni sono “implementazioni di questo concetto”)
IntroduzioneInformatica
La macchina di Turing
È un modello astratto di calcolatore. Turing la descrive e la usa al fine di analizzare l’insieme delle funzioni che possono essere calcolate in modo automatico.
Nasce uno dei pilastri dell’informatica teorica: la teoria della calcolabilità.
È universale perché può calcolare tutte le funzioni “calcolabili”. Alla base del suo funzionamento c’è la stessa idea che c’è alla base della macchina analitica.
IntroduzioneInformatica
La macchina di Turing
Perché si parla di funzioni “calcolabili”?
Si può dimostrare che non tutte le funzioni definibili in matematica sono calcolabili mediante una macchina di Turing.
Non è un problema specifico della macchina di Turing: esistono problemi che “semplicemente” non possono essere risolti in modo automatico (es. Halting problem).
Da RAI filosofia http://www.filosofia.rai.it/articoli/la-macchina-di-turing/13882/default.aspx
Da YouTube https://www.youtube.com/watch?v=1IPbWTatJWs https://www.youtube.com/watch?v=FTSAiF9AHN4
IntroduzioneInformatica
John Von Neumann
Crea il modello di calcolatore a cui si ispirano i calcolatori moderni.
Matematico ungherese, ha dato il suo contributo in moltissimi campi,
quali: teoria quantistica, economia, meteorologia, logica, teoria dei
giochi
Due contributi fondamentali:
1) Architettura di un elaboratore («First draft», 30/06/1945)
2) Bomba atomica
IntroduzioneInformatica
John Von Neumann
http://www.raiscuola.rai.it/articoli/john-von-neumann/21878/default.aspxDa RAI Scuola
Un po’ di storia (tecnologica)…
1600: macchine calcolatrici a ingranaggi (Pascal, Leibniz)
1800: macchine con schede perforate e primi programmi (Babbage, Lovelace (figlia di Byron))
1920: erano chiamati computer “impiegati” (spesso donne) che eseguivano calcoli numerici
1940: macchine a relay meccanici Bell Laboratories Mark I presso Harvard University e IBM
1950: macchine di von Neumann Schede perforate, nastri magnetici Transistor, circuiti stampati
1980: microcomputer Home computer, personal computer
Un po’ di storia (scientifica)… 300 a.C.: algoritmo di Euclide per MCD
1800: Boolemetodi puramente simbolici per modellare il ragionamento
1930: Church, Turing modello formale astratto di computer computer come macchina universale: “We are trying to build a
machine to do all kinds of different things simply by programming ratherthan by the addition of extra apparatus” (Turing)
esistono problemi che un computer non può risolvere
1940: Shannonteoria dell’informazione
1950/60: Dijkstra, Kruskal, Hoare, ecc.algoritmi fondamentali, linguaggi di programmazione, teoria dei linguaggi formali, ecc.
1970: Codd, Rivest et al., McCarthy et al., Cook et al.database relazionali, crittografia a chiave pubblica, intelligenza artificiale, complessità computazionale
Temi dell’informatica
Calcolabilità
Complessità
Teoria dei linguaggi formali
Algoritmi e strutture dati
Linguaggi di programmazione
Compilatori e interpreti
Architettura dei calcolatori
Sistemi operativi
Ingegneria del software
Reti di calcolatori
Interazione uomo-macchina
Sicurezza
Intelligenza artificiale
Basi di dati
…
IntroduzioneInformatica
Temi dell’informatica
Ciascuno di questi temi è un “edificio” più o meno complesso; ad es.
Intelligenza artificiale: Risoluzione dei problemi Rappresentazione della conoscenza Meccanismi di ragionamento Apprendimento automatico Pianificazione, scheduling, diagnosi, configurazione,
soddisfacimento di vincoli, …
IntroduzioneInformatica
Introduzione all’informatica
Informatica: infor(mazione) (auto)maticainsieme dei processi e delle tecnologie che consentono la creazione, la raccolta, l’elaborazione, l’immagazzinamento, la diffusione
dell’informazione
IntroduzioneInformatica
Introduzione all’informatica
Le tecnologie informatiche hanno tre funzioni principali: elaborare dati per ottenere informazioni significative mantenere le informazioni elaborate per utilizzarle in
combinazione con altre come dati di un nuovo processo di elaborazione
organizzare le informazioni in una nuova forma per renderle più comprensibili, più interessanti o più utili
N.B.: Il calcolatore non ‘inventa’ nuove informazioni
“Computers are useless. They can only give youanswers.” (P. Picasso (1968?))
IntroduzioneInformatica
Il ciclo di elaborazione
Dati e informazioni
Terminologia
Hardware componente fisica del sistema informatico
computer, stampanti, monitor, tastiere, mouse, modem, cavi telefonici
Computer elaboratore: dispositivo in grado di eseguire
automaticamente una serie di istruzioni elettronico: usa componenti elettronici digitale: elabora segnali numerici
IntroduzioneInformatica
Sistema insieme di parti correlate che operano e interagiscono per
svolgere una funzione specifica è costituito da componenti e da sottosistemi (sistemi
a loro volta)
Terminologia
IntroduzioneInformatica
Terminologia
Algoritmo (aritmetica elementare formulata dal matematico arabo medioevale al-Khuwarizmi) insieme delle operazioni necessarie a risolvere un problema
(es. ricetta, istruzioni di montaggio LEGO®) n.b.: più algoritmi possono risolvere lo stesso problema
Programma implementazione di un algoritmo in un linguaggio formale n.b.: più programmi possono implementare lo stesso
algoritmo
IntroduzioneInformatica
Software insieme dei programmi che fanno funzionare l’hardware
Due categorie principali di software sistemi operativi: permettono all’elaboratore di svolgere le
proprie funzioni (software di base) programmi applicativi: svolgono i compiti più vari, in
funzione delle esigenze dell’utenza
Terminologia
IntroduzioneInformatica
Software
Svariate decine di sistemi operativi MS-DOS, Windows 2000/XP/Vista/7 Mac OS Unix (BSD, Linux, Solaris, Irix, Ultrix, HP-UX…)
Centinaia di migliaia di programmi applicativi, ad esempio: browser, videoscrittura, fogli elettronici gestione di basi di dati grafica avanzata controllo di centraline …
IntroduzioneInformatica
Dati
Materia prima del trattamento dell’informazione Hardware e software hanno lo scopo di elaborare e
rappresentare dati
Un computer può elaborare dati di ogni genere dati semplici: lettere e numeri dati complessi: suoni, immagini, filmati, grafici
IntroduzioneInformatica
Tipi di d
ato