Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica...

24
Che cosa è l’Informatica Obiettivi formativi Programma del Corso Testi di riferimento Riferimenti bibliografici Corso di Informatica CdL in Matematica e CdL in Matematica per le Applicazioni Prof. G. Nicosia Dipartimento di Matematica e Informatica Facoltà di Scienze MM.FF.NN. Università degli Studi di Catania A. A. 2006/2007 Prof. G. Nicosia. Informatica – Introduzione al corso

Transcript of Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica...

Page 1: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Corso di InformaticaCdL in Matematica e CdL in Matematica per le Applicazioni

Prof. G. Nicosia

Dipartimento di Matematica e InformaticaFacoltà di Scienze MM.FF.NN. Università degli Studi di Catania

A. A. 2006/2007

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 2: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 3: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 4: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 5: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 6: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 7: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 8: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 9: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 10: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 11: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 12: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 13: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 14: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Sommario1 Che cosa è l’Informatica

Informatica: prima definizioneAlgoritmo naive del MCDAlgoritmo di Euclide per il MCDImplementazione in C dell’Algoritmo di EuclideInformatica: altre definizioni

2 Obiettivi formativiAlgoritmoProgrammaProgrammazione e Programmazione in Linguaggio C

3 Programma del Corso4 Testi di riferimento5 Riferimenti bibliografici

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 15: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Informatica: prima definizione

Disciplina scientifica detta anche scienza dei calcolatori oscienza dell’informazione, ancora ai suoi primi passi.Mentre le altre scienze studiano come interagiscono particolaritipi di oggetti, l’informatica studia il comportamento generaledelle interazioni, cioè come la società di parti riescono afare ciò che quelle parti non sono in grado di fareseparatamente.Benchè partiti dallo studio dei calcolatori seriali, l’informatica siè sviluppata al punto di poter studiare quelle reti interconnessedi processi che devono svolgersi all’interno della società dellamente.

Marvin Minsky, La società della Mente, Adelphi 1994.Copyright 1985, 1986 by Marvin Minsky.

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 16: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Algoritmo naive del MCD

1 Algoritmo-MCD(I1, I2)2 M← max (I1, I2)3 N← min (I1, I2)4 (Q,R)← M div N5 if (R is not 0) then6 M← N7 N← R8 goto 49 else MCD← N

10 return MCD

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 17: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Algoritmo naive del MCD 2

1 Algoritmo-MCD(I1, I2)2 if I1 > I2 then3 M← I14 N← I25 else6 M← I27 N← I18 (Q,R)← M div N9 if (R is not 0) then

10 M← N11 N← R12 goto 813 else return N

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 18: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Algoritmo di Euclide per il MCD

Il metodo di Euclide si basa sul fatto che se I1 > I2 allora ilMCD tra I1 e I2 coincide con il MCD tra I2 e I1 − I2.

1 Algoritmo-di-Euclide-MCD(I1, I2)2 while (I1 > 0)3 if (I1 < I2)4 t← I15 I1 ← I26 I2 ← t7 I1 ← I1 − I28 return I2

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 19: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Programma per l’Algoritmo di Euclide per il MCD

#include <stdio.h>int mcd(int i1, int i2){

int t;while (i1 > 0){

if (i1 < i2) { t = i1; i1=i2; i2=t; }i1 = i1 - i2;

}return i2;

}main(){

int x, y;printf("Inserisci i1: "); scanf("%d", &x);printf("Inserisci i2: "); scanf("%d", &y);if (x>0 && y>0) printf("MCD(%d,%d)=%d \n", x, y, mcd(x,y));

}

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 20: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Informatica: altre definizioni

Algoritmo una sequenza finita ordinata di passi non ambiguied eseguibili che definiscono un’attività dilunghezza finita.

Programma la rappresentazione di un algoritmo compatibilecon la macchina.

Software i programmi, e gli algoritmi che rappresentano (es.sistemi operativi).

Hardware dispositivi fisici.

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 21: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Obiettivi formativi

Il primo obiettivo del corso è insegnare un linguaggio diprogrammazione general-purpose. Al termine del corso glistudenti devono essere in grado di tradurre un algoritmo in unprogramma funzionante.

Il secondo obiettivo del corso è quello di presentare, medianteesempi, algoritmi e strutture dati fondamentali.

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 22: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

programma del corso

Definizione di Algoritmo;Organizzazione di un calcolatore;Linguaggi di Programmazione;Principi Fondamentali di Programmazione;Tipi, Operatori ed Espressioni;Strutture di controllo;Funzioni e Struttura dei Programmi;Puntatori e Vettori;Ricorsione;Strutture;I/O e Accesso ai file;Gestione della Memoria;Strutture dati complesse: Liste, Code, Stack, Alberi,Grafi.

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 23: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

testi di riferimento

testo di riferimento principale:[Kernighan & Ritchie, 2004]

altri testi di riferimento:

[Cormen, Leiserson, Rivest &Stein, 2005]

altre note integrative rese disponibili dal docente

Prof. G. Nicosia. Informatica – Introduzione al corso

Page 24: Corso di Informatica - Dipartimento di Matematica e ... · Dipartimento di Matematica e Informatica ... 4 Testi di riferimento ... Brian W. Kernighan, Dennis M. Ritchie Linguaggio

Che cosa è l’InformaticaObiettivi formativi

Programma del CorsoTesti di riferimento

Riferimenti bibliografici

Brian W. Kernighan, Dennis M. RitchieLinguaggio CPearson Education Italia, 2004

T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. SteinIntroduzione agli algoritmi e strutture datiMcGraw–Hill 2005.

Prof. G. Nicosia. Informatica – Introduzione al corso