Università degli Studi di Palermo Dipartimento di Ingegneria Informatica. Informatica ed Elementi di Statistica 3 c.f.u. Anno Accademico 2010/2011

Documenti analoghi
Informatica di Base - 6 c.f.u.

Lezioni di Informatica di Base per la Facoltà di Lettere e Filosofia. Algoritmi

Sistemi di Elaborazione delle Informazioni 6 CFU. Algoritmi

Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Algoritmi

Informatica per la Storia dell Arte. Algoritmi

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

Programmazione per Bioinformatica Introduzione al Corso. Dr Damiano Macedonio Università di Verona

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

A proposito di informatica

Algoritmi e Strutture Dati (A.A 2014/15) Damiano Macedonio

Corso di Informatica A.A

Concetti Introduttivi. Il Computer

Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Presentazione del corso

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi

Corso di Informatica di Base

Algoritmi. Pagina 1 di 5

Il concetto di informatica. Graziano Pravadelli (2012)

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Architettura dei calcolatori e Software di sistema

Corso di Informatica A.A

Tecnico Superiore per lo sviluppo del software finalizzato alla valorizzazione e promozione turistica, culturale ed ambientale del territorio

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

1 Esercizi in pseudocodice

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Informatica e calcolatori

Cosa è l Informatica?

Il concetto di calcolatore e di algoritmo

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Algoritmi e Diagrammi di flusso

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Introduzione al Calcolo Scientifico

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

REGISTRI D'ESAME CODICE ESAME CORSO DI LAUREA NOME DEL CORSO LAUREA CFU

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

LABORATORIO DI INFORMATICA

Informatica e Bioinformatica: Algoritmi

Algoritmi e Programmi

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Fasi della programmazione. Gabriella Trucco

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

A lezione sono stati presentati i seguenti passi per risolvere un problema:

Interazione tra matematica e informatica

Lezione 1. Problemi Algoritmi Programmi

ID pratica Posizione Punteggio Aree OFA

Introduzione. Corso di Fondamenti di Informatica

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Le aree dell informatica

Informatica. Come si risolve un problema?

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione. Walter Didimo

MODULO 1. Punto 1.0 del Syllabus 5.0 Fondamenti. Prof.ssa Francesca Lascialfari

Sviluppo di programmi

Corso di Informatica

UNIVERSITÀ DEGLI STUDI DI PALERMO Corso di Laurea in Matematica. Calendario degli esami di profitto 1/10/ /09/2014

APPUNTI PER IL CORSO DI ALFABETIZZAZIONE INFORMATICA

UNIVERSITA DEGLI STUDI DI MILANO-BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI

FONDAMENTI DI INFORMATICA

Algoritmi e diagrammi di flusso

Linguaggi di alto livello, compilatori e interpreti

Programmazione Dipartimento Area Scientifica T. Rossi A.S. 2015/2016

Corso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi

Il linguaggio di programmazione Python

Matlab. Istruzioni condizionali, cicli for e cicli while.

Corso di Matematica per la Chimica

Le aree dell informatica

Architettura. Nome Modulo Tipologia lezioni Ore Docente SSD Ruolo Interno Affidamento. Vincenzo Conti

Introduzione al funzionamento di un calcolatore elettronico

Università degli Studi di Messina Dipartimento di Matematica e Informatica

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema

Concetti di base dell ICT

Corso di Laurea in Informatica

Sistemi di Elaborazione delle Informazioni 6 CFU

Gli errori nella risoluzione di un problema

Sistemi Web per il turismo - lezione 3 -

Rappresentazione generale del problema e fasi di progettazione

Elementi di Statistica

Analisi e programmazione 1

Dispensa di Informatica II.1

Teoria dell Informazione

LINGUAGGI DI ALTO LIVELLO

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Programmazione di INFORMATICA e Laboratorio

Università degli studi di Milano Bicocca Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea Triennale in INFORMATICA

Progetto e analisi di algoritmi

Lezione 15. L elaboratore Elettronico

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Informatica, Algoritmi, Linguaggi

Informatica. Elaborazione di informazione

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

CONCETTI FONDAMENTALI

Corso di Fondamenti di Informatica Linguaggi di Programmazione

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Corso Programmazione

I Nuovi Corsi di Laurea in Informatica. La laurea triennale (classe L-31) L

Transcript:

Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica ed Elementi di Statistica 3 c.f.u. Anno Accademico 2010/2011 Docente: ing. Salvatore Sorce Introduzione Facoltà di Medicina e Chirurgia

Introduzione L informatica è una tra le discipline scientifiche più giovani e stimolanti Evoluzione continua: Realtà virtuale Telemedicina Supercalcolatori Monitoraggio ambientale Non sempre intuitivamente si riesce a comprendere gli argomenti che sono oggetto dell informatica

Malintesi Primo malinteso L informatica è lo studio dei calcolatori Secondo malinteso: L informatica è lo studio di come scrivere programmi per calcolatori Terzo malinteso: L informatica è lo studio degli utilizzi e delle applicazioni dei calcolatori e del software Fellows and Parberry, Computing Research News, 1993: L informatica non riguarda i calcolatori, così come l astronomia con i telescopi, la biologia con i microscopi e la chimica con le provette. La scienza non riguarda i dispositivi: riguarda il modo in cui li utilizziamo e ciò che scopriamo utilizzandoli

La definizione di Informatica Il concetto centrale nell informatica è il concetto di algoritmo Algoritmo (da Abu Ja far Muhammad ibn-musa Al- Khowarizmi, 780-850 a.c.): Una procedura per risolvere matematicamente un problema in un numero finito di passi, che spesso comprende ripetizioni di una operazione. In generale: un metodo passo-passo per eseguire un dato compito. Gibbs&Tucker, Communications of the ACM, 1986 Informatica: lo studio degli algoritmi, che comprende: Le loro proprietà formali e matematiche Le loro realizzazioni hardware Le loro realizzazioni linguistiche Le loro applicazioni

Definizione Formale di Algoritmo Un insieme ben ordinato di operazioni non ambigue ed effettivamente calcolabili che, eseguito, produce un risultato e termina in una quantità finita di tempo. Insieme ben ordinato Operazioni non ambigue e calcolabili Produce un risultato Termina in una quantità finita di tempo

Insieme ben ordinato Ordinamento delle operazioni da eseguire chiaro e non ambiguo Il controllo deve procedere senza ambiguità da una operazione alla successiva Le operazioni sono elencate come passi numerati In assenza di altra indicazione (operazioni condizionali o iterative) il controllo passa sempre al passo successivo Preparazione di una torta di ciliegie 1. Prepara la base 2. Prepara il ripieno di ciliegie 3. Versa il ripieno sulla base 4. Cuoci in forno a 200 C per 45 minuti

Operazioni non ambigue e calcolabili Tutti i passi devono essere chiari per l agente. I passi 1 e 2 potrebbero essere chiari solo ad un pasticcere professionista. Una operazione non-ambigua è detta una operazione primitiva Preparazione di una torta di ciliegie 1. Prepara la base 2. Prepara il ripieno di ciliegie 3. Versa il ripieno sulla base 4. Cuoci in forno a 200 C per 45 minuti Partendo da una prima versione dell algoritmo, occorre verificare che tutte le operazioni coinvolte siano primitive

Operazioni non ambigue e calcolabili Per un non professionista, il passo 1 va scomposto in un insieme di sottopassi più semplici Preparazione di una torta di ciliegie 1. Prepara la base 1.1. Prendi 1/3 tazza di farina 1.2. Setaccia la farina 1.3. In una terrina, miscela farina, ½ tazza di burro e ¼ tazza di acqua 1.4. Spiana il composto in due basi di torta da circa 23 cm 2. Prepara il ripieno di ciliegie 3. Versa il ripieno sulla base 4. Cuoci in forno a 200 C per 45 minuti

Operazioni non ambigue e calcolabili Il passo 1 viene scomposto in un insieme di sottopassi più semplici Il passo 2 viene scomposto in una serie di sottopassi più semplici Tuttavia, il passo 1.2 potrebbe essere non adatto ad essere eseguito per esempio da un bambino Preparazione di una torta di ciliegie 1. Prepara la base 1.1. Prendi 1/3 tazza di farina 1.2. Setaccia la farina 1.3. In una terrina, miscela farina, ½ tazza di burro e ¼ tazza di acqua 1.4. Spiana il composto in due basi di torta da circa 23 cm 2. Prepara il ripieno di ciliegie 2.1. Versa in una terrina 100 g di ripieno di ciliegia 2.2. Aggiungi un pizzico di noce moscata e cannella 2.3. Mescola 3. Versa il ripieno sulla base 4. Cuoci in forno a 200 C per 45 minuti

Operazioni non ambigue e calcolabili Il passo 1.2 può essere ulteriormente decomposto in operazioni più elementari Preparazione di una torta di ciliegie 1. Prepara la base 1.1. Prendi 1/3 tazza di farina 1.2. Setaccia la farina 1.2.1. Prendi un setaccio e mettilo su una terrina da due quarti di litro 1.2.2. Versa la farina nel setaccio e gira la manovella 1.2.3. Lascia cadere la farina nella terrina 1.3. In una terrina, miscela farina, ½ tazza di burro e ¼ tazza di acqua 1.4. Spiana il composto in due basi di torta da circa 23 cm 2. Prepara il ripieno di ciliegie 2.1. Versa in una terrina 100 g di ripieno di ciliegia 2.2. Aggiungi un pizzico di noce moscata e cannella 2.3. Mescola 3. Versa il ripieno sulla base 4. Cuoci in forno a 200 C per 45 minuti

Operazioni non ambigue e calcolabili In sintesi, è fondamentale arrivare ad una descrizione dell algoritmo in primitive eseguibili da un agente di calcolo senza necessità di ulteriori istruzioni. Le operazioni devono poi essere effettivamente calcolabili Stampare la lista di tutti i numeri primi Somma 1 al valore corrente di x Preparazione di una torta di ciliegie 1. Prepara la base 1.1. Prendi 1/3 tazza di farina 1.2. Setaccia la farina 1.2.1. Prendi un setaccio e mettilo su una terrina da due quarti di litro 1.2.2. Versa la farina nel setaccio e gira la manovella 1.2.3. Lascia cadere la farina nella terrina 1.3. In una terrina, miscela farina, ½ tazza di burro e ¼ tazza di acqua 1.4. Spiana il composto in due basi di torta da circa 23 cm 2. Prepara il ripieno di ciliegie 2.1. Versa in una terrina 100 g di ripieno di ciliegia 2.2. Aggiungi un pizzico di noce moscata e cannella 2.3. Mescola 3. Versa il ripieno sulla base 4. Cuoci in forno a 200 C per 45 minuti

Produce un risultato Gli algoritmi risolvono problemi Per comprendere se una soluzione algoritmica è corretta, il suo risultato deve potere essere confrontato con quello atteso. Se un risultato non è producibile, l algoritmo deve produrre un messaggio di errore, attivare un allarme, o fornire una approssimazione del risultato corretto Preparazione di una torta di ciliegie 1. Prepara la base 2. Prepara il ripieno di ciliegie 3. Versa il ripieno sulla base 4. Cuoci in forno a 200 C per 45 minuti Risultato: la torta Programmazione di un VCR Risultato: il nastro col programma televisivo registrato

Termina in una quantità finita di tempo Il risultato deve essere prodotto dopo l esecuzione di un numero finito di operazioni E tipico causare cicli infiniti quando la condizione presente nelle operazioni iterative non si verifica mai Esempio: 1. Poni n=0 2. Ripeti i passi 3 e 4 mentre n<3 3. Stampa Ciao! 4. n = n - 1 5. Fine Risultato: Ciao!Ciao!Ciao!Ciao!Ciao! Fare lo shampoo - I 1. Inumidisci i capelli 2. Insapona 3. Risciacqua 4. Ripeti Risultato Il cliente si stanca, finisce l acqua, finisce lo shampoo? Fare lo shampoo - II 1. Inumidisci i capelli 2. Ripeti due volte i passi 3 e 4 3. Insapona 4. Risciacqua 5. Stop. Lo shampoo è fatto

Domande?