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 Matematiche-DIISM- Via Roma, 56 (+39) 0577 234850 - Int. 1156 Cel.3356592114 E-mail: elisa.tiezzi@unisi.it
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.
Linguaggi di programmazione 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 Pierluigi Crescenzi FrancoAngeli 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
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
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