Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 1. Introduzione al corso Ing. Michele Ruta 1 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Informazioni utili Ing. Michele Ruta: • Contatti: – Laboratorio di Sistemi Informativi (SisInfLab) – Dipartimento di Elettrotecnica ed Elettronica (DEE) – E-mail: [email protected], [email protected] – Telefono: 0805963515 – Web: http://sisinflab.poliba.it/ruta • Ricevimento studenti: – Lunedì ore 18.30-20.30 – Mercoledì 11:30/13:30 2 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Obiettivi formativi Il corso si propone di introdurre: • architettura di un calcolatore elettronico, con alcuni cenni alla codifica dell’informazione e all’algebra di Boole; • algoritmi; • linguaggi di programmazione e codifica di programmi (linguaggio C); • strutture astratte e concrete di dati; • file e le operazioni di I/O; • conoscenze di base sui sistemi operativi, sulle reti di calcolatori e sulle basi di dati. 3 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Programma Lezioni teoriche: • • • • • • • • • • Architettura calcolatori: 4 ore; Codifica binaria ed algebra di Boole: 2 ore; Algoritmi e progettazione “in piccolo”: 4 ore; Codifica degli algoritmi e linguaggio C: 4 ore; Tipi di dati, strutture di controllo, funzioni e procedure, ricorsione: 8 ore; Strutture di dati: 6 ore; Gestione dei file: 4 ore; Sistemi operativi: 4 ore; Reti di calcolatori: 2 ore; Basi di dati: 2 ore. Esercitazioni: • Esempi di algoritmi numerici e non numerici: – • ricerca sequenziale e dicotomica, ordinamento: 8 ore. Laboratorio: – 4 di 21 utilizzo di un ambiente di programmazione per la stesura ed il test di programmi: 12 ore. Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 • Prova scritta: – – – – – – – • Modalità d’esame Composta di una parte teorica e di una applicativa (la prima parte prevede la risposta a quesiti e la soluzione di esercizi, la seconda richiede la progettazione di un algoritmo); Obbligatoria per il superamento dell’esame (con votazione pari ad almeno 18/30); Può essere sostituita dal superamento di entrambe le prove di esonero previste durante il corso (se entrambe superate con votazione media pari ad almeno 15/30, consentono di accedere direttamente alla prova orale in uno qualsiasi degli appelli disponibili dell’anno accademico corrente); È severamente vietata la consultazione di appunti, manuali, testi in genere, nonché l'utilizzo di qualsiasi supporto elettronico, pena l'esclusione dalla prova stessa; Il risultato sarà reso noto mediante avviso pubblicato sul sito del docente prima dell'inizio della prova orale; La partecipazione alla prova scritta richiede prenotazione preventiva, effettuata attraverso il “registro delle prenotazioni”, dislocato nell’atrio del Dipartimento di Elettrotecnica ed Elettronica (DEE) ed auto-gestito dagli interessati; La partecipazione ad una prova scritta implica l'annullamento di un’eventuale altra prova superata in uno qualsiasi degli appelli precedenti. Prova orale: – 5 di 21 Facoltativa (previo superamento della prova scritta con voto almeno pari a 18/30) e relativa ai contenuti del programma ufficiale dell'anno accademico in cui è stata superata la prova scritta. Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 • • • • • • • • • • 6 di 21 1° 2° 1° 2° 3° 4° 5° 6° 7° 8° Periodi di esame esonero: durante la pausa di metà semestre (novembre); esonero: al termine del semestre (inizio febbraio); appello: al termine del 1° semestre (inizio febbraio); appello: al termine del 1° semestre (fine febbraio); appello: durante la pausa di metà semestre (maggio); appello: al termine del 2° semestre (inizio luglio); appello: al termine del 2° semestre (fine luglio); appello: al termine della pausa estiva (inizio settembre); appello: al termine della pausa estiva (fine settembre); appello: durante la pausa di metà semestre (novembre); Introduzione al corso M. Ruta Fondamenti di Informatica Libri di testo A.A. 2009-10 Testi di riferimento principali: • D. Mandrioli, S. Ceri, L. Sbattella, P. Cremonesi, G. Cugola, Informatica: arte e mestiere, terza edizione, McGraw-Hill, 2008; Manuali di programmazione: • • A. Bellini, A. Guidi, Linguaggio C, guida alla programmazione, 3/ed, McGraw-Hill, 2006; Deitel&Deitel, C: corso completo di programmazione, Apogeo libri Ulteriori testi suggeriti: • • C. Batini, L. Carlucci Aiello, M. Lenzerini, A. Marchetti Spaccamela, A. Miola, Fondamenti di Programmazione dei Calcolatori Elettronici, Franco Angeli D. Ritchie, B. Kernighan, Il linguaggio C: Corso di programmazione, Prentice Hall - Pearson, 2002 7 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Informatica • Definizione: “Scienza della rappresentazione e dell’elaborazione dell’informazione” • Definizione Association of Computing Machinery (ACM): “Studio sistematico degli algoritmi (sequenze precise di operazioni comprensibili e perciò eseguibili da uno strumento automatico) che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione” 8 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Algoritmo • Sequenza di passi, definiti con precisione, che portano alla realizzazione di un compito • E’ essenziale che un algoritmo sia comprensibile al suo esecutore • Proprietà degli algoritmi: – correttezza: capacità di arrivare alla soluzione del compito cui è preposto, senza difettare di alcun passo fondamentale – efficienza: capacità di arrivare alla soluzione del compito cui è preposto nel modo più rapido possibile e/o usando la minima quantità di risorse fisiche, compatibilmente con la sua correttezza 9 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Esempi di algoritmi 1. Calcolo dell’imposta IRPEF relativa a un contribuente, dato il reddito lordo e la tabella delle aliquote 2. Calcolo del Massimo Comun Divisore (M. C. D.) 3. Determinare l’area di una figura piana regolare 4. Cercarsi un/una fidanzato/a… 10 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Algoritmo: calcolo dell’IRPEF Problema: calcolo dell’imposta IRPEF relativa a un contribuente, dato il reddito lordo e la tabella delle aliquote Soluzione informale: data la tabella delle aliquote relative alle fasce di reddito e dato il reddito lordo, si applicano progressivamente le aliquote al reddito Algoritmo: Inizio fascia(€) Fine fascia (€) Aliquota (%) 0 3600 10 3600.01 7200 22 7200.01 15000 27 15000.01 30000 34 30000.01 75.000 41 75000.01 150000 46 150000 11 di 21 51 - acquisire reddito lordo I=10% di R Se R>3600 I=I+12%(R-3600) Se R>7200 I=I+5%(R-7200) Se R>15000 I=I+7%(R-15000) Se R>30000 I=I+7%(R-30000) Se R>75000 I=I+5%(R-75000) Se R>150000 I=I+5%(R-150000) I è l’imposta risultante Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Algoritmo: calcolo del M. C. D. Problema: calcolo del Massimo Comun Divisore tra due numeri a e b: MCD (a, b) Soluzione di Euclide: “ogni divisore comune di a e b è divisore di a, b e del resto r della divisione tra a e b (a mod b), se questo non è nullo” Algoritmo: 1. 2. 3. 4. 5. 6. 12 di 21 acquisire due numeri a,b se b>a scambiare a con b se b=0 MCD(a,b) = a e andare al passo 6 r = a mod b sostituire a con b, b con r ed andare al passo 2 Fine Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 • • Flusso di controllo L’ordine di esecuzione delle operazioni elementari è determinante per la soluzione del problema Le operazioni elementari (passi) di un algoritmo vengono chiamate istruzioni nel linguaggio dei calcolatori e possono essere classificate in: – istruzioni non condizionate – istruzioni condizionate: l’esecuzione dipende da una condizione – istruzioni di controllo: esprimono le condizioni da cui dipende l’esecuzione delle istruzioni condizionate (dette pseudo-istruzioni perché controllano solo il flusso delle operazioni) • • Le istruzioni possono essere composte in blocchi o sequenze che risolvono sottoproblemi del problema principale e possono essere considerate come un’istruzione elementare Si definisce COSTRUTTO l’insieme di istruzioni di controllo e istruzioni controllate: – costrutto condizionale: insieme di condizione e istruzioni condizionate – costrutto iterativo: insieme di istruzioni la cui esecuzione viene ripetuta previa verifica di opportune istruzioni di controllo 13 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Diagrammi di flusso (flow chart) Formalismo grafico per rappresentare la sequenza (flusso) di istruzioni o operazioni elementari di un algoritmo: -Operazioni (semplici o composte, condizionate o non condizionate) con rettangoli: -Condizioni (scelta tra due possibilità) con rombi: vero Condizione? falso -Flusso (sequenza di esecuzione o controllo) con segmenti orientati che uniscono i blocchi: -Inizio e fine dell’esecuzione con ellissi: 14 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Diagrammi di flusso (flow chart) -Input (inserimento dall’esterno di dati utili allo sviluppo dell’algoritmo, p. es. inserimento da tastiera) con rettangoli con l’angolo superiore destro smussato: - Output (recupero dall’interno di dati/risultati prodotti dall’algoritmo, p. es. stampa a schermo) con rettangoli con l’angolo inferiore destro smussato: - Dichiarazione (menzione delle grandezze variabili o costanti da adoperare nell’algoritmo, p. es. Reddito (v. algoritmo precedente) come variabile espressa in €) con parallelogramma posto dopo il blocco di inizio: 15 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Linguaggi di programmazione • Linguaggi per la codifica di algoritmi: – consentono la scrittura sotto forma di codice di algoritmi (programmi) in modo che possano essere “processati” da un elaboratore • Da linguaggio ad alto livello a linguaggio macchina: – – – • sforzo di traduzione da linguaggio naturale in istruzioni macchina uso di sintassi intermedie e di interpreti e compilatori la procedura di traduzione prevede passi intermedi gestiti in modo automatico Orientamento al problema nella scelta dei linguaggi di programmazione – 16 di 21 linguaggi general purpose e orientati all’applicazione Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Sistema informatico • Oggetto complesso,che può assumere nature molto differenti, costituito da componenti che interagiscono tra loro per eseguire algoritmi • Classificazione delle componenti: – Hardware: componenti fisici del sistema – Software: programmi eseguiti dal sistema Il confine tra HW e SW è piuttosto sfumato se si pensa che le stesse funzioni possono essere svolte a seconda dei casi da circuiti e dispositivi HW o da particolari microprogrammi (firmware) definiti dal costruttore del calcolatore 17 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica Hardware (HW) A.A. 2009-10 Insieme di elementi funzionali: • Unità di elaborazione o processore: • Memoria centrale: • Memoria secondaria (o di massa): • Bus di sistema: • Unità periferiche: – esegue i programmi – – – – mantiene dati e programmi a beneficio dell’unità di elaborazione capacità ridotta volatile rapido acceso all’informazione – capacità significativa – persistente – accesso all’informazione lento – collega gli elementi funzionali consentendo lo scambio di dati – consentono la comunicazione del calcolatore con l’ambiente esterno 18 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Personal Computer (PC) • Elaboratore genericamente dedicato ad un solo utente • Nasce dopo la “rivoluzione dei sistemi desktop” (primi anni 80) – incontro tra Microsoft (ed il suo MS-DOS) e IBM (e il suo PS-2) per produrre macchine a larga diffusione e di semplice utilizzo • Costituenti fondamentali: – Unità centrale: • • • • • unità di elaborazione (CPU) memoria centrale memoria di massa: informazione organizzata in file e directory disco fisso (hard disk): inamovibile e di elevata capacità floppy disk, dongle USB, dischi ottici (CD/DVD-ROM), dischi elettronici – Tastiera, mouse e monitor collegati all’unità centrale 19 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica Software A.A. 2009-10 • SW di base – Dedicato alla gestione dell’elaboratore – Opera direttamente al di sopra di HW e firmware – Esempi: • SISTEMA OPERATIVO • SW applicativo: – Dedicato alla realizzazione di specifiche esigenze applicative – Utilizza linguaggi di alto livello – Opera al di sopra del SW di base 20 di 21 Introduzione al corso M. Ruta Fondamenti di Informatica A.A. 2009-10 Sistema Operativo (S.O.) • Funzioni: – Interpreta ed esegue comandi elementari – Organizza e gestisce le risorse della macchina – Gestisce multi-utenza e multi-tasking • Funge da tramite d’uso tra la macchina fisica e l’utente con le relative applicazioni • Complessità crescente con quella del sistema informatico: – In sistemi multi-utente il S.O. distribuisce le risorse del calcolatore tra i vari utenti in maniera apparentemente “dedicata” 21 di 21 Introduzione al corso M. Ruta