Sei sulla pagina 1di 12

Introduzione all’ Informatica

Carlo Strapparava
FBK-Irst Istituto per la ricerca scientifica e tecnologica
I-38050 Povo, Trento, ITALY
strappa@fbk.eu

Informatica
 Informazione automatica
 Studia la distribuzione, la trasmissione e
soprattutto la trasformazione
dell’informazione da parte degli elaboratori
elettronici
 Compito degli informatici è quello di studiare
queste cose in maniera che vengano
elaborate dalle macchine

1
Informatica
 Tre grandi aree:

1. Software
2. Hardware
3. Informatica teorica

Area del Hardware


 I principi fisici della trasmissione dei segnali
fino alla progettazione dei computers
 Componenti elettronici
 Transistor
 Memorie
 Circuiti integrati
 …

2
Hardware

Area del Software


 Programmazione
 Linguaggi di programmazione
 Sistemi operativi
 Database management
 Grafica
 Interfacce
 Intelligenza artificiale
 …

3
Informatica teorica
 E’ una branca della matematica
 Analisi degli algoritmi
 Formalismi per la computabilità
 Funzioni ricorsive
 λ-calcolo
 Teoria della computazione
 Problemi decidibili, indecidibili
 Teoria degli automi
 Analisi numerica
 …

Introduzione alla programmazione


 Il termine programma viene usato
quotidianamente in campi diversi:
 “il programma di governo”
 “la programmazione economica”
 “il programma di uno spettacolo”
 …

4
Programma - definizioni
 (in generale)
 piano d’esecuzione di una serie di azioni
 (in informatica - genericamente)
 una serie di istruzioni per un elaboratore volte a
calcolare la soluzione di un determinato problema
 Programmazione come
generica attività intellettuale

Elaboratore elettronico
 Un elaboratore elettronico può essere visto
come
Programma
Dati memoria
Automa
Risultati

 Due canali da dove riceve informazioni, un


canale che fornisce informazioni

5
Elaboratore elettronico
 Alla definizione data sopra risponde anche:
Programma

Panni sporchi
Panni puliti

 Qual è la differenza tra automa e lavatrice?


 Il numero di programmi nella lavatrice è limitato, è
fissato a priori nella macchina

Elaboratore elettronico
 L’automa è capace di elaborare qualsiasi
programma
 Il programma non è fissato a priori ma è
fornito dal programmatore
 A priori nell’automa sono solo fissate alcune
capacità elementari (per es. deve esserci
della memoria)

6
Come deve essere scritto un programma?
 Un programma è la formulazione, secondo un
ben definito sistema di regole, di un algoritmo

 Algoritmo => metodo di soluzione per una


classe di problemi

 La nozione di algoritmo a vari livelli di


astrazione permea tutta l’informatica

al-Khuwarizmi ~ 800 D.C.

Es. Algoritmo: somma di due interi di


tre cifre
 1° passo: mettere in colonna gli addendi
 2° passo: assumere il riporto della colonna di
destra uguale a 0
 3° passo: per ogni colonna, procedendo da
destra a sinistra, finché non sono esaurite le
cifre

7
Es. Algoritmo: somma di due interi di
tre cifre

144 + 872 = 1016

 1° passo: mettere in
colonna gli addendi
144 +
872 =
———

Somma di due interi di tre cifre (2)

 2° passo: assumere il
riporto della colonna di
destra uguale a 0 0
144 +
872 =
———

8
Somma di due interi di tre cifre (3)

 3° passo: per ogni colonna,


procedendo da destra a sinistra,
finché non sono esaurite le cifre, fare:
 3.1 Sommare le cifre della colonna 1100
 3.2 se il risultato è < 10 allora 144 +
 scrivere il risultato del passo 3.1 872 =
nella colonna e mettere a 0 il
riporto altrimenti ———
 altrimenti togliere 10 dal riporto 1016
del passo 3.1 e mettere a 1 il
riporto sulla colonna successiva
 4° abbassa l’ultimo riporto

Quando si fornisce un algoritmo dobbiamo domandarci:

 Qual è il corredo di operazioni elementari ?


 Le operazioni che vogliamo fare eseguire sono algoritmizzabili ?
(es. con riga e compasso non possiamo trisecare un angolo)

Tabella cifre Tabella riporti


0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0 0
1 1 2 3 4 5 6 7 8 9 0 1 0 0 0 0 0 0 0 0 0 1
2 2 3 4 5 6 7 8 9 0 1 2 0 0 0 0 0 0 0 0 1 1
3 3 4 5 6 7 8 9 0 1 2 3 0 0 0 0 0 0 0 1 1 1
4 4 5 6 7 8 9 0 1 2 3 4 0 0 0 0 0 0 1 1 1 1
5 5 6 7 8 9 0 1 2 3 4 5 0 0 0 0 0 1 1 1 1 1
6 6 7 8 9 0 1 2 3 4 5 6 0 0 0 0 1 1 1 1 1 1
7 7 8 9 0 1 2 3 4 5 6 7 0 0 0 1 1 1 1 1 1 1
8 8 9 0 1 2 3 4 5 6 7 8 0 0 1 1 1 1 1 1 1 1
9 9 0 1 2 3 4 5 6 7 8 9 0 1 1 1 1 1 1 1 1 1

9
Morale…
 Posso ridurre l’operazione di somma a una
semplice trasformazione di simboli
 Qualunque algoritmo opera su simboli

Es. invece di 144 avrei potuto scrivere CXLIV

CXLIV +
MXXIV =
———
??????

Morale…
 L’algoritmo di somma appena visto opera su numeri
naturali in rappresentazione decimale
 Considerare criticamente l’abitudine alla
rappresentazione in base 10
 144 in ottale è 220, in esadecimale 90
 Siamo talmente abituati che tendiamo a confondere il
numero con la sua rappresentazione

 Rappresentazioni analogiche e simboliche


 In questo corso siamo interessati a quelle simboliche

10
Algoritmi

 Fornire una sequenza di passi


 Fornire un corredo di operazioni elementari
 Ogni passo deve essere effettivo
 Ogni algoritmo opera su simboli
 Non ambiguità - un algoritmo deve essere
compiuto in se stesso

Programmi
 Linguaggi artificiali di programmazione

 Def. di Programma
 Un programma è la codifica di un algoritmo in un
determinato linguaggio di programmazione

11
Punti di vista

 Punti di vista da cui dobbiamo esaminare un


linguaggio di programmazione
 Sintattico
 Semantico
 Estetico
 Pragmatico

 Enfatizzare la prg. come modo di esprimere idee,


piuttosto che solo come un modo per far compiere
cose ad un computers

Programmi … agli albori

12