Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica Obiettivi del corso FONDAMENTI DI INFORMATICA 1 Le 60 ore del corso, pari a 6 crediti formativi, sono finalizzate a fornire allo studente la conoscenza di: http://www.diee.unica.it/~marcialis/FI1 Concetti di base sui fondamenti della rappresentazione delle informazioni Concetti e componenti di base dell’architettura dei moderni calcolatori elettronici Concetti fondamentali sulle basi di dati e modello relazionale Concetti fondamentali sugli algoritmi, strutture dati ed i linguaggi di programmazione Fondamenti di programmazione in linguaggio C A.A. 2010/2011 Docente:Gian Luca Marcialis Ufficio: tel.: e-mail: DIEE – Padiglione A 070 675 5893 [email protected] Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Al termine di questo corso saprete… (…dovreste sapere…) Organizzazione e obiettivi del corso (cont.) 35 ore di corso saranno dedicate a fornire i principali rudimenti teorici inerenti: Algebra Booleana e Rappresentazione delle Informazioni Architettura dei Calcolatori Elettronici e Sistemi Operativi Algoritmi e Linguaggi di Programmazione Basi di dati 25 ore di corso saranno dedicate ai fondamenti di programmazione in linguaggio C Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 2 3 Cosa lega la parola “informatica” ai concetti di “algoritmo”, di “linguaggio”, di “computer”, di “informazione” Per questo scopo imparerete: … a rappresentare i principali tipi di dato in forma binaria, e svolgere alcune elementari operazioni di tipo logico ed aritmetico … quali sono i principali moduli a livello fisico e “logico” di un calcolatore elettronico, ed i fondamenti che regolano l’interconnessione tra più calcolatori … le operazioni fondamentali per la gestione e l’organizzazione di informazioni complesse … tradurre semplici algoritmi in un linguaggio comprensibile al calcolatore, e rappresentare con esso strutture dati cruciali per risolvere problemi di varia difficoltà Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 4 Rappresentazione grafica del corso Orario del corso Rappresentazione binaria Basi di dati Astrazione sui dati Il Linguaggio C Astrazione sui dati Linguaggio Macchina di Von Neumann Lunedì ore 10-13 Mercoledì ore 15-17 Le lezioni e le esercitazioni si svolgeranno in aula V Nota: Le lezioni del 21 Marzo, del 9 Maggio e del 30 Maggio si terranno in aula 3 ore 15-18 Modello di calcolo Algoritmo Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 5 Argomenti del corso di Fondamenti di Informatica 1 6 Lucidi del corso I lucidi del corso, ovvero le slide usate a lezione, sono una sintesi degli argomenti del corso Di conseguenza, si raccomanda di prendere sempre appunti a lezione, e parlare col docente: Cos’è l’Informatica Algebra Booleana Rappresentazione Binaria delle Informazioni Architettura dei Sistemi di Elaborazione Organizzazione hardware Organizzazione software (Sistema Operativo) Algoritmi e Linguaggi: concetti e paradigmi Programmazione in linguaggio C Durante lo svolgimento della lezione Alla fine della lezione, per chiarire argomenti specifici Per posta elettronica: [email protected] Scrivendo nel forum − http://www.unibosca.com/public/forum2/forumdisplay.php?f=109 I lucidi del corso, e altro materiale didattico, sono disponibili nel sito: Reti di calcolatori Basi di dati Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis http://www.diee.unica.it/~marcialis/FI1 7 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 8 Lucidi del corso Libro di testo I documenti saranno in formato PDF Per leggerli e stamparli è necessario disporre del programma “Acrobat Reader” Il programma può essere scaricato gratuitamente dal sito del produttore www.adobe.com (vedi il link nel sito del corso) oltre che da diversi siti che distribuiscono programmi gratuiti (es. volftp.mondadori.com) Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 9 Altri testi Consiglio: integrare gli appunti e il libro di testo per una preparazione ottimale Il testo è reperibile nella Biblioteca della Facoltà di Ingegneria (Seconda-Terza Edizione) Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 10 Esame Scritto (120 minuti, obbligatorio) + Orale (15-30 minuti, eventuale) Composizione dello Scritto Informatica G.M. Schneider, J.L. Gersting, Informatica, Apogeo, 2007. M. Mezzalama e E. Piccolo, Capire l’informatica, DeAgostini, 2010. 33 punti complessivi Algoritmi e Linguaggi T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli algoritmi e strutture dati, 2° edizione, McGraw-Hill, 2005. M. Gabrielli, S. Martini, Linguaggi di programmazione – principi e paradigmi, McGrawHill, 2006 Linguaggio C: B.W. Kernighan and D.M. Ritchie, Il linguaggio C - Principi di programmazione e manuale di riferimento - 2a edizione, Pearson Education Italia H. Schildt, La guida completa C, McGraw Hill Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Un fondamentale strumento per la comprensione della maggioranza degli argomenti è: S. Ceri, D. Mandriola, L. Sbattella, P. Cremonesi, G. Cugola, “Informatica: arte e mestiere”, Terza Edizione, McGraw-Hill 2008, ISBN 918-88-386-6429-8. 11 − Una domanda a risposta aperta (5 punti) − Due esercizi (10 punti) − Problema di programmazione (18 punti) • Articolato in più parti Se il punteggio è superiore a 20, può essere registrato, con orale facoltativo Se il punteggio è compreso tra 16 e 20, l’orale è obbligatorio Se il punteggio è inferiore a 16, l’esame non è stato superato Nel voto finale, lo scritto conta approssimativamente 2/3, mentre l’orale il restante 1/3 Es. voto scritto: 18; voto orale: 30 − Voto finale = 18 * 2/3 + 30 * 1/3 = 22 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 12 Sostenimento e registrazione Studenti dei passati anni accademici Per sostenere l’esame siete vincolati a compilare il questionario di valutazione del corso Il questionario è sempre anonimo e qualunque cosa scriviate non giungerà al sottoscritto con la vostra “firma” Siate comunque costruttivi! Per registrare l’esame non c’è bisogno della vostra presenza fisica: il docente registrerà comunque i voti di tutti i compiti consegnati Permetterà la visione dei compiti corretti in un giorno ed ora stabiliti, corrispondente a quello in cui sarà possibile sostenere l’orale 13 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Elenco delle “parole-chiave” del corso Informatica Algebra di Boole Tipi di dato Hardware Architettura Funzioni Software Memoria Parametri Calcolatore Volatilità CPU Programmi Periferiche ALU Processi Sistema operativo Lista Algoritmo Basi di dati Paradigma Bit (Binario) File OOP Pixel Struttura dati Modelli dei dati Istruzione Linguaggio Driver Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Tutti gli studenti che hanno seguito il corso da 6 crediti e che non hanno dato l’esame per tempo, dovranno sostenerlo col docente associato al corso Es. Ing. Ambientale A.A.2009-2010 Prof. Fumera Gli studenti di Ing. Biomedica ed Elettrica che hanno seguito il corso da 5 crediti possono invece sostenere questo esame Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 14 Che cos’è l’informatica Scienza della rappresentazione e dell’elaborazione dell’informazione Non è la scienza e la tecnologia dei calcolatori elettronici Non sono le molteplici applicazioni dei calcolatori elettronici Essendo una scienza, cioè approccio sistematico e rigoroso, l’elaborazione dell’informazione può avvenire in modo automatico Ci sono altre discipline che trattano l’informazione, ma non in modo sistematico e rigoroso, come il giornalismo 15 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 16 Esempio di algoritmo: determinare il maggiore di due numeri interi x, y Informatica e algoritmi “L’informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione” Association for Computing Machinery (ACM) Algoritmo sequenza precisa (comprensibile) di passi elementari che consentono di realizzare un compito, ovvero risolvere un problema passi elementari: eseguibili dall’esecutore dell’algoritmo es.: istruzioni di montaggio di un mobile, prelevamento di denaro da un terminale Bancomat, calcolo del massimo comune divisore di due numeri naturali... Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 17 Calcolatori elettronici come esecutori di algoritmi Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 18 Algoritmi e calcolatori In base alla definizione, è possibile svolgere attività di tipo informatico senza usare un calcolatore! es.: calcolo del MCD con carta e penna Il calcolatore elettronico è in effetti un esecutore automatico di algoritmi ovvero uno strumento di calcolo potente, che permette di gestire quantità di informazioni altrimenti intrattabili Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 1. Calcola la differenza fra x e y 2. Valuta se la differenza è maggiore di 0 Se sì, il maggiore è x Altrimenti, il maggiore è y 19 Un algoritmo eseguito da un calcolatore prende il nome di programma e viene espresso in un opportuno linguaggio di programmazione Un linguaggio di programmazione è un linguaggio comprensibile al calcolatore (e, naturalmente, anche a noi) Gli informatici si servono dei linguaggi di programmazione per tradurre gli algoritmi in programmi, attraverso opportune rappresentazioni delle informazioni note (dati in ingresso) e di quelle da ottenere attraverso il calcolatore (dati in uscita) Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 20 Algoritmi e linguaggi di programmazione Architettura dei sistemi informatici Sistema informatico Linguaggio Naturale Linguaggio di Programmazione (C) Calcola la differenza fra x e y Se la differenza è maggiore di 0 int maggiore(int x, int y) { int differenza; differenza = x – y; if (differenza > 0) Componenti principali dell’architettura di un sistema: Hardware: componenti fisici del sistema Software: insieme dei programmi che vengono eseguiti dal sistema (almeno due tipi: sw di base e sw applicativo) Firmware: programmi memorizzati in modo permanente all’interno del sistema dal produttore, come il BIOS return x; il maggiore è x Altrimenti il maggiore è y il termine indica oggetti di dimensioni, complessità e applicazioni molto diverse, dal semplice personal computer mono-utente a sistemi multi-utente che gestiscono grandi quantità di dati e programmi (ad es. sistemi informatici di banche o aziende) l’architettura (insieme delle parti e loro interazione) di questi sistemi ha però diversi elementi in comune else return y; } 21 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Hardware di un sistema informatico Software di un sistema informatico Tutto ciò che costituisce fisicamente il sistema Unità di elaborazione (processore o CPU) Memoria centrale (RAM) Memoria secondaria o di massa Bus di sistema Periferiche Di base Per la gestione dell’elaboratore − Esecuzione di programmi, occupazione comunicazione con altri sistemi (protocolli) Unità Centrale della memoria, Il più importante sw di base è il Sistema Operativo Applicativo − Monitor, tastiera, stampante Per la realizzazione di compiti specifici Il sistema può comunicare − Videoscrittura, ipertesti, posta elettronica, fogli elettronici, basi di dati Con l’uomo, attraverso le periferiche Con altri sistemi meccanici, attraverso − Sensori, con cui acquisisce l’informazione dall’esterno − Attuatori, con cui traduce comandi appropriati in azioni Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 22 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Ambienti di programmazione Per il progetto e la scrittura di programmi 23 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 24 Firmware di un sistema informatico Programmi che vengono memorizzati in permanente nel calcolatore Vengono eseguiti all’accensione del calcolatore Tipicamente chiamati “BIOS” Tipi di sistemi informatici modo Dedicato ad un unico utente Workstation (stazioni di lavoro) Accessibile da più utenti, con processori di elevate prestazioni Mainframe Basic Input/Output System E’ orientato all’hardware: esegue il test dei componenti il calcolatore − E.g. verifica che la tastiera sia connessa all’unità centrale E’ orientato al software: avvia il Sistema Operativo Sistemi informatici e sistemi informativi Un sistema informativo ha il compito di organizzare e gestire le informazioni necessarie per gli scopi dei soggetti che ne fanno uso (università, regione, comune) Esso è in parte indipendente dalla sua automatizzazione E.g. l’archivio di una banca o l’archivio anagrafico Reti di calcolatori Più “workstation” connesse tra loro Geograficamente vicine (Local Area Network) o lontane (Wide Area Network) Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 26 Aree disciplinari dell’informatica L’Association for Computing Machinery (ACM, http://www.acm.org) ha individuato 10 aree disciplinari: Sistema informativo Sistema informatico Algoritmi e strutture dati Grafica computerizzata Architettura dei calcolatori Interazione uomo-calcolatore Intelligenza artificiale e robotica Sistemi operativi e reti Scienze computazionali Un sistema informatico è la porzione automatizzata del sistema informativo Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Di grandi dimensioni, capaci di gestire centinaia di utenti Multiprocessore, memorie di massa molto capienti − Es. i computer del nostro laboratorio, connessi tra loro, costituiscono una LAN 25 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Personal computer Basi di dati e sistemi per il ritrovamento dell’informazione 27 Linguaggi di programmazione Ingegneria del software Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 28 Impatto dell’informatica sulla società: il problema della “sicurezza” Applicazioni dell’informatica Applicazioni numeriche Algoritmi per soluzioni di problemi matematici complessi Applicazioni gestionali Automazione d’ufficio Servizi telematici Bancomat, biglietterie elettroniche, e-commerce Automazione industriale (robotica) CAD, Computer Aided Design Controllo di impianti industriali ed applicazioni “embedded” ABS, navigatore satellitare nelle automobili Cellulari Realtà virtuale e interfacce utente avanzate Simulatori di volo “Touch screen” per favorire l’interazione con l’utente Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 29 30 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Informatica ed intelligenza d’ambiente La “sicurezza” e l’informazione Ambiente reale ad intelligenza aumentata Mario Rossi riconosciuto attraverso l’immagine del volto. Autorizzato a passare per la porta a sinistra. Seminario su base annuale “Tecnologie biometriche per la sicurezza informatica” (2 CF) Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis Dialogo tra i due sensori Videocamera 1 Videocamera 2 Mario Rossi 31 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis In attesa di verificare il passaggio di Mario Rossi Segnalazione ad un terzo sensore, es. termostato, un’opportuna regolazione della temperatura secondo le esigenze di Mario Rossi. 32 Informatica ed intelligenza d’ambiente Segnalazione e controllo a disabili/affetti da disturbi fisici distanza di Esempio soggetti Identificativo dell’utente mediante battito cardiaco − Trasmissione a distanza di esami medici Comunicazione della espressioni facciali propria volontà attraverso le − ERASMUS – University of Balear Islands, F.J.Perales Tracciamento e posizione della persona − Tecnologia RFID Ultra Wide Band – Laboratorio di Intelligenza d’Ambiente – Sardegna DistrICT (Polaris, Pula) Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 33 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 34 Informatica e allarmi “intelligenti” Esempio Monitoraggio di aree a rischio in impianti chimici e/o raffinerie Delimitazione delle aree a rischio ad accesso limitato Verifica semi-automatica di comportamenti non conformi agli standard di sicurezza Conoscenza in tempo reale del numero di persone presenti nelle aree a rischio e della loro identità Sala di controllo a realtà “aumentata” Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 35 Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 36 Per saperne di più… Cos’è l’informatica Capitolo 1 del testo di riferimento L’evoluzione dell’informatica Capitolo 20 del testo di riferimento Fondamenti di Informatica 1 - A.A. 2010/11 - Prof. Gian Luca Marcialis 37