Introduzione - Dipartimento di Ingegneria dell`informazione e

Parte 1
Fondamenti di Informatica
Modulo Fondamenti di
programmazione
Prof.ssa Elisa Tiezzi
Dove mi trovate
Mercoledì dalle 9 alle 11
Venrdì dalle 9 alle 11
Piano 2 Stanza 231
Dipartimento di Ingegneria
dell'Informazione e Scienze MatematicheDIISM- Via Roma, 56
(+39) 0577 234850 - Int. 1156
Cel.3356592114
E-mail: [email protected]
Orario lezioni
• Martedi 9-11 aula C/D
• Martedì 11-13 lab. 124+143
• Giovedì 9-11 aula CD
• Sarò assente giovedi 3 novembre e
martedi 8 novembre. La prossima
settimana martedi 11 faremo lezione
solamente dalle 9 alle 11 come oggi.
3
Programma
Introduzione all’informatica
•
•
•
•
•
•
•
•
•
Cos’è l’informatica
Introduzione al concetto di algoritmo
Struttura dell’elaboratore
Introduzione al concetto di programma
Esecuzione delle istruzioni
L’organizzazione dell’unità centrale di elaborazione (CPU)
La memoria centrale
La memoria secondaria
Dispositivi di input/output
Linguaggi di programmazione
Introduzione ai linguaggi di programmazione
Elementi del Linguaggio Java
Ambiente di lavoro
 Struttura di un programma
 Tipi di dati fondamentali
 Istruzioni di input/output
 Costrutto decisionale if-then-else
 I cicli con contatore for
 Cicli condizionali while
 Dati strutturati: stringhe e vettori
 Cicli for annidiati
 Classi e oggetti
 Implementazioni di algoritmi

Introduzione alla Complessità



Complessità di problemi
Analisi del caso medio e caso pessimo
Valutazione della complessità: relazioni di ricorrenza
Progetto e analisi di alcuni algoritmi di Ordinamento




Ricorsività
Divide et impera
Mergesort
Quicksort
Sistemi operativi

Windows
LIBRI DI TESTO
• Gocce di Java
Un’introduzione alla programmazione procedurale ed orientata
agli oggetti.
Pierluigi Crescenzi
FrancoAngeli
•
I lucidi e altro materiale utile lo trovate in rete all’indirizzo:
http://www.diism.unisi.it
INFORMATICA
Alla metà del 900 il MONDO dell’INFORMAZIONE diviene
importante.
INFORMATICA = insieme degli strumenti teorici e pratici
che hanno lo scopo di elaborare l’informazione.
Il termine corrisponde al francese INFORMATIQUE
(contrazione di INFORMATION AUTOMATIQUE).
In realtà l’informatica si occupa non solo dell’elaborazione dei
dati ma anche della scienza e dell’ingegneria dei calcolatori.
Gli anglosassoni usano il termine COMPUTER SCIENCE per
sottolineare questa seconda accezione.
L’informatica ha quindi due significati:
• Insiste sull’oggetto = PROCEDURA EFFETTIVA O
ALGORITMO
• Insiste sullo strumento = CALCOLATORE
ELETTRONICO
Cosa è quindi l’informatica?
Cosa è quindi l’informatica?
•Piu` facile dire cosa non è:
Poco a vedere con “alfabetizzazione informatica” (saper
usare un computer per scrivere un testo o navigare in
Internet)
Non consiste semplicemente nello scrivere programmi
•Denning et al (1989)
L’informatica `e lo studio sistematico dei processi
algoritmici che descrivono e trasformano l’informazione: la
loro teoria, analisi, progettazione, efficienza,
implementazione e applicazione
9
ALGORITMO
Le radici dell’algoritmica sono antiche. Anche se il
suo assetto teorico definitivo è stato raggiunto
nella prima metà di questo secolo e le tecniche di
progetto ed analisi di algoritmi hanno segnato
progressi enormi con la recente diffusione di
calcolatori elettronici, i primi esempi di algoritmi
risalgono alle origini della storia dell’uomo e sono
registrati in documenti di matematica antica. La
parola ALGORITMO fu creata nel latino medievale
per assonanza con il nome del matematico
persiano Al-Khuwarizmi.
Informalmente la parola algoritmo indica la specificazione dei
passi elementari che un esecutore deve compiere per giungere
alla soluzione di un problema.
ALGORITMO = complesso di istruzioni….
• precisamente determinato in maniera da non consentire
situazioni di dubbio
• universalmente comprensibile nel senso che chiunque possa
applicarle
• abbastanza generali da potersi applicare ad ogni problema di
una data classe
• tali che applicate ai dati forniscano criteri per determinare
quando la soluzione è raggiunta e questo avvenga in un
numero finito di passi
Modello algoritmico
Metodo algoritmico
•Formulare algoritmi che risolvano un
problema
•Trasformare questi algoritmi in programmi
•Verificare la correttezza e l’efficacia di tali
programmi analizzandoli ed eseguendoli
12
Alcuni algoritmi
I più antichi algoritmi non banali conosciuti oggi furono
registrati dallo scriba egizio Ahmes (1650 a.c.)
Algoritmo moltiplicazione (dati A E B risultato P)
-poni P=0
assegnazione
-finché A≠0 ripeti la sequenza
iterazione
se A è dispari allora addiziona B a P
esecuzione
dimezza A trascurando il resto
condizionata
raddoppia B
P
0
3
9
21
A
7
3
1
0
B
3
6
12
24
P
0
0
0
12
36
A
12
6
3
1
0
B
3
6
12
24
48