Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Introduzione al corso Ing. Agnese Pinto 1 di 21 Introduzione al corso Fondamenti di Informatica Informazioni utili A.A. 2011-12 Ing. Agnese Pinto: • Contatti: – Laboratorio di Sistemi Informativi (SisInfLab) – Dipartimento di Elettrotecnica ed Elettronica (DEE) – E-mail: [email protected], – Telefono: 0805963515 – Web: http://sisinflab.poliba.it/pinto • Ricevimento studenti: – Mercoledì 11:30/13:30 2 di 21 Introduzione al corso Fondamenti di Informatica A.A. 2011-12 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 3 di 21 Introduzione al corso Fondamenti di Informatica A.A. 2011-12 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; Esercitazioni: • Esempi di algoritmi numerici e non numerici: – • ricerca sequenziale e dicotomica, ordinamento Laboratorio: – 4 di 21 utilizzo di un ambiente di programmazione per la stesura ed il test di programmi Introduzione al corso Fondamenti di Informatica A.A. 2011-12 • 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); È 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 servizio di prenotazioni online del DEE o tramite il portale degli studenti (secondo prossima comunicazione) 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 Fondamenti di Informatica A.A. 2011-12 Periodi di esame • • • • • • 1° appello: al termine del 1° semestre (inizio febbraio); 2° appello: al termine del 1° semestre (fine febbraio); 3° appello: durante la pausa di metà semestre (maggio); 4° appello: al termine del 2° semestre (inizio luglio); 5° appello: al termine del 2° semestre (fine luglio); 6° appello: al termine della pausa estiva (inizio settembre); • 7° appello: al termine della pausa estiva (fine settembre); • 8° appello: durante la pausa di metà semestre (novembre); 6 di 21 Introduzione al corso Fondamenti di Informatica Libri di testo A.A. 2011-12 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; 7 di 21 Introduzione al corso Fondamenti di Informatica A.A. 2011-12 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 Fondamenti di Informatica A.A. 2011-12 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 Fondamenti di Informatica A.A. 2011-12 1. 2. 3. 4. Esempi di algoritmi Determinare l’area di una figura piana regolare Calcolo del Massimo Comun Divisore (M. C. D.) Algoritmo per il prelievo al bancomat …. 10 di 21 Introduzione al corso Fondamenti di Informatica A.A. 2011-12 Calcola l’area di una figura piana regolare a b A= a*b 11 di 21 1. Inizio 2. Prendi il valore del primo lato a 3. Prendi il valore del secondo lato b 4. Calcola il valore dell’area A 5. Restituisci il valore dell’area ottenuto A 6. fine Introduzione al corso A. Pinto Fondamenti di Informatica A.A. 2011-12 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 Fondamenti di Informatica A.A. 2011-12 • • 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 Fondamenti di Informatica A.A. 2011-12 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 Fondamenti di Informatica A.A. 2011-12 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, con parallelogramma posto dopo il blocco di inizio: 15 di 21 Introduzione al corso Fondamenti di Informatica A.A. 2011-12 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: – – – 16 di 21 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 Introduzione al corso Fondamenti di Informatica A.A. 2011-12 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 Fondamenti di Informatica Hardware (HW) A.A. 2011-12 Insieme di elementi funzionali: • Unità di elaborazione o processore: • Memoria centrale: • Memoria secondaria (o di massa): • Unità periferiche: • Bus di sistema: – 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 – consentono la comunicazione del calcolatore con l’ambiente esterno – collega gli elementi funzionali consentendo lo scambio di dati 18 di 21 Introduzione al corso Fondamenti di Informatica A.A. 2011-12 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 Fondamenti di Informatica Software A.A. 2011-12 • 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 Fondamenti di Informatica A.A. 2011-12 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