Che cos`e` l`Informatica Informatica generale Esempi di algoritmi

Che cos’e’ l’Informatica
Informatica generale
Scienza dell’elaborazione dell’informazione
• non si riduce all’utilizzo di strumenti (e.g.
linguaggi di programmazione e basi di dati);
• si occupa del trattamento dell’informazione in
termini di rappresentazione e algoritmica;
• fondamentale e’ il concetto di algoritmo
Esempi di algoritmi
• somma di due numeri (in
rappresentazione decimale o altro);
• calcolo della distanza di due nodi in un
grafo;
• ricerca di un articolo in una banca dati;
• ecc.
Introduzione
Caratteristiche fondamentali
degli algoritmi
• Correttezza e completezza (induzione)
• Complessita’ (analisi asintotica del caso
pessimo)
... Teoria degli algoritmi
Linguaggi di programmazione
• servono per fare eseguire algoritmi;
• ce ne sono tanti suddivisi in paradigmi:
imperativo, logico, funzionale, objectoriented;
• esempi: Fortran (formula translator), Cobol
(Common Business Oriented Language),
Pascal (didattico), C (Unix), Java (Internet),
Prolog (dichiarativo), Lisp (funzionale), ...
Hardware: le componenti
• Unita’ di elaborazione, processore, CPU
(Central Processing Unit)
• Memoria centrale, RAM (Random
Access Memory)
• Memoria secondaria, memoria di massa
• Bus di sistema
• Periferiche di I/O (mouse, tastiera,
terminali, stampanti, ecc.)
Architettura dei sistemi
informatici: introduzione
Molte componenti eterogenee, prima
suddivisione:
hardware/software
La memoria in un calcolatore
• contiene sia i dati che i programmi che
operano su di essi (alla base della differenza
tra i moderni calcolatori e le antiche macchine
per eseguire calcoli)
• problema tecnologico: deve essere stabile
Termini usati: disco rigido (fisso), CD-ROM
(Compact Disk-Read Only Memory) ... FILE
... idee molto belle: chi le ha
avute?
• von Neumann
• Turing
• …
Sistemi informatici dal punto di vista
hardware
PC
reti di calcolatori
Personal Computer
Reti di calcolatori
• Piccoli, tutte le componenti nello “stesso
posto”, si suppone vengano utilizzati da
una singola persona
• Molti elaboratori (magari PC) collegati
tra loro (spesso si usa il termine
workstation)
• Tra i calcolatori collegati ce ne possono
essere di particolarmente grandi (si usa
il termine mainframe) al quale vengono
collegati i terminali (coppia di dispositivi
di I/O)
• I sistemi operativi (software di base per
l’utilizzo dell’elaboratore) per PC sono
spesso disegnati per un singolo utente
Reti di calcolatori
LAN
Due principali categorie di reti:
•
LAN (Local Area Network) e
Servono, essenzialmente, a condividere
risorse e a comunicare in un stesso
edificio (o poco piu’)
•
WAN (Wide Area Network)
Ex. Ethernet
WAN
pc
stampante
pc
pc
PC del capo
pc
bus
stampante
lettore dat
cd-drive
• Collegano elaboratori molto distanti fra
loro;
• funzionano usando reti locali come
sottoreti e collegamenti tramite rete
telefonica (o altro)
• permettono la computazione distribuita
• ... sono piu’ complesse e problematiche
delle LAN
rete locale
router
terminali
remoti
Host
Host
rete
geografica
Host
terminali
locali
terminali
locali
teminali
remoti
I sistemi informatici dal punto
di vista sw
• E’ la parte modificabile dei sistemi
informatici
• Ci interessa di piu’ perche’ abbiamo
modo di scriverlo (oltre che di usarlo)
• Spesso e’ molto costoso e nasconde
vari tipi di trappole
Classificazione del sw
SW di base
• Software di base: opera al di sopra dell’hw e
di solito si compra
Ex. Sistema operativo
• permette di usare il sistema fisico
(esecuzione di programmi, memorie,
periferiche, ...)
• permette di utilizzare il sistema da parte di
uno o piu’ utenti (mono-utente, multi-utente)
• garantisce la sicurezza
Windows, MacOS, Unix, Linux, ...
• Software applicativo: anche questo si compra
ma e’ pensato per rispondere ad esigenze
specifiche. Si puo’ anche implementare o
personalizzare
SW applicativo
... tantissimo software
Ex. Sistema di gestione di basi di dati
(database)
• consente l’organizzazione dei dati per
l’accesso in modo condiviso
• e’ una delle classi di programmi piu’
importanti per le moderne biotecnologie
•
•
•
•
Programmazione
• ambienti per l’utilizzo dei linguaggi di
programmazione:
– editor
– compilatori
– interpreti
– linker
– debugger
software per la comunicazione
videoscrittura
agende elettroniche
ipertesti (e linguaggi per la loro
gestione)
• fogli elettronici
• ...
Le applicazioni
dell’Informatica
• applicazioni numeriche: i computer come
“number cruncher”
• le applicazioni gestionali: office and lab
automation
• i servizi telematici distribuiti (e.g. Bancomat)
• l’automazione industriale CAD (Computer
Aided Design), CAM (Computer Aided
Manufacturing)
• applicazioni embedded (sistemi real time)
Le aree disciplinari
dell’Infomatica
•
•
•
•
•
•
•
•
•
•
Algoritmi e strutture dati
Architettura degli elaboratori
Intelligenza artificiale
Teoria della computazione
Basi di dati
Grafica
Interazione uomo-macchina
sistemi operativi e reti
linguaggi di programmazione
...