Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica Obiettivi del corso FONDAMENTI DI INFORMATICA 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/FI 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 Python A.A. 2016/2017 Docente:Gian Luca Marcialis Ufficio: tel.: e-mail: DIEE – Padiglione A 070 675 5893 [email protected] 2 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Al termine di questo corso saprete… (…dovreste sapere…) Organizzazione e obiettivi del corso (cont.) 20-25 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 Basi di dati 35-40 ore di corso saranno dedicate ai fondamenti di programmazione in linguaggio Python 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, per risolvere problemi di varia difficoltà …ma anche sfruttare alcune potenzialità enormi del linguaggio Python per poterne usare i servizi senza essere programmatori provetti 3 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 4 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Rappresentazione grafica del corso Orario del corso Rappresentazione binaria Martedì ore 14-17 Mercoledì ore 11-14 Basi di dati Astrazione sui dati Macchina di Von Neumann Aula 1 Il Linguaggio Python Linguaggio I tutorati si svolgeranno in aula LIDIA (orari e date da verificare) Modello di calcolo Algoritmo 5 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 6 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Argomenti del corso di Fondamenti di Informatica 1 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 Algoritmi e Linguaggi: concetti e paradigmi Durante lo svolgimento della lezione Alla fine della lezione, per chiarire argomenti specifici Per posta elettronica: [email protected] Programmazione in linguaggio Python Architettura dei Sistemi di Elaborazione I lucidi del corso, e altro materiale didattico, sono disponibili nel sito: Organizzazione hardware Organizzazione software (Sistema Operativo) http://www.diee.unica.it/~marcialis/FI Basi di dati 7 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 8 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 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) 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. Consiglio: integrare gli appunti e il libro di testo per una preparazione ottimale Linguaggio Python: K.A. Lambert, Programmazione in Python, Apogeo (Maggioli), 2012. 9 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 10 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Altri testi Esame Scritto (120 minuti, obbligatorio) + Orale (15-30 minuti, eventuale) Composizione dello Scritto Informatica G.M. Schneider, J.L. Gersting, Informatica, Apogeo (Maggioli), 2007. M. Mezzalama, E. Piccolo, Capire l’informatica, CittàStudi (De Agostini), 2010. 33 punti complessivi − Due esercizi/domande teoriche (8-10 punti) − Problema di programmazione (23-25 punti) Linguaggio Python: C. Horstmann, R.D. Necaise, Concetti di informatica e fondamenti di Python, Apogeo (Maggioli), 2014. F. Aiolli, Appunti di programmazione (scientifica) in Python, Esculapio, 2014. Approfondimenti 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 • 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 Un’eccellente prova orale può incrementare il punteggio ottenuto nella prova scritta. 11 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 12 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Sostenimento e registrazione Elenco delle “parole-chiave” del corso Informatica Algebra di Boole Tipi di dato Hardware Architettura Funzioni Il questionario è sempre anonimo e qualunque cosa scriviate non giungerà al sottoscritto con la vostra “firma” Siate comunque costruttivi! Software Memoria Parametri Calcolatore Volatilità CPU Programmi Periferiche ALU Per registrare l’esame non c’è bisogno della vostra presenza fisica: il docente registrerà comunque i voti di tutti i compiti consegnati Processi Sistema operativo Lista Algoritmo Basi di dati Paradigma Bit (Binario) File OOP Pixel Struttura dati Modelli dei dati Istruzione Linguaggio Driver Per sostenere l’esame siete vincolati a compilare il questionario di valutazione del corso Permetterà la visione dei compiti corretti in un giorno ed ora stabiliti, corrispondente a quello in cui sarà possibile sostenere l’orale 13 14 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Che cos’è l’informatica Informatica e algoritmi 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 - A.A. 2016/17 - Prof. Gian Luca Marcialis “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... 16 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Esempio di algoritmo: determinare il maggiore di due numeri interi x, y Calcolatori elettronici come esecutori di algoritmi 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 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 17 18 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Algoritmi e linguaggi di programmazione Algoritmi e calcolatori 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) Linguaggio Naturale Linguaggio di Programmazione (Python) def maggiore(x, y): Calcola la differenza fra x e y Se la differenza è maggiore di 0 differenza = x – y if (differenza > 0): il maggiore è x Altrimenti il maggiore è y return x else: return y 19 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 20 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Architettura dei sistemi informatici Hardware di un sistema informatico Sistema informatico 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 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 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 Unità Centrale − Monitor, tastiera, stampante Il sistema può comunicare 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 21 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Software di un sistema informatico Firmware di un sistema informatico Di base Per la gestione dell’elaboratore − Esecuzione di programmi, occupazione comunicazione con altri sistemi (protocolli) 22 della memoria, Il più importante sw di base è il Sistema Operativo Applicativo Per la realizzazione di compiti specifici − Videoscrittura, ipertesti, posta elettronica, fogli elettronici, basi di dati Ambienti di programmazione Programmi che vengono memorizzati in permanente nel calcolatore Vengono eseguiti all’accensione del calcolatore Tipicamente chiamati “BIOS” 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 Per il progetto e la scrittura di programmi 23 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis modo 24 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Tipi di sistemi informatici 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 Personal computer Dedicato ad un unico utente Workstation (stazioni di lavoro) Accessibile da più utenti, con processori di elevate prestazioni Mainframe Di grandi dimensioni, capaci di gestire centinaia di utenti Multiprocessore, memorie di massa molto capienti Reti di calcolatori Più “workstation” connesse tra loro Geograficamente vicine (Local Area Network) o lontane (Wide Area Network) − Es. i computer del nostro laboratorio, connessi tra loro, costituiscono una LAN Sistema informativo E.g. l’archivio di una banca o l’archivio anagrafico Un sistema informatico è la porzione automatizzata del sistema informativo 25 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Applicazioni dell’informatica L’Association for Computing Machinery (ACM, http://www.acm.org) ha individuato 10 aree disciplinari: Architettura dei calcolatori Intelligenza artificiale e robotica 26 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Aree disciplinari dell’informatica Algoritmi e strutture dati Sistema informatico Applicazioni numeriche Algoritmi per soluzioni di problemi matematici complessi Applicazioni gestionali Grafica computerizzata Automazione d’ufficio Servizi telematici Interazione uomo-calcolatore Bancomat, biglietterie elettroniche, e-commerce Automazione industriale (robotica) Sistemi operativi e reti CAD, Computer Aided Design Controllo di impianti industriali ed applicazioni “embedded” ABS, navigatore satellitare nelle automobili Cellulari Linguaggi di programmazione Scienze computazionali Realtà virtuale e interfacce utente avanzate Ingegneria del software Simulatori di volo “Touch screen” per favorire l’interazione con l’utente Basi di dati e sistemi per il ritrovamento dell’informazione 28 27 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Informatica ed intelligenza d’ambiente Ambienti «virtuali» Ambiente reale ad intelligenza aumentata Mario Rossi riconosciuto attraverso l’immagine del volto. Autorizzato a passare per la porta a sinistra. Dialogo tra i due sensori Videocamera 1 Videocamera 2 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. Mario Rossi Protezione da dati «pericolosi» 29 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 30 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Allarmi “intelligenti” Ambienti «reali» 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” Certezza dell’identità Seminario su base annuale “Tecnologie biometriche per la sicurezza informatica” (2 CF) 31 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 32 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Monitoraggio aree a rischio Interfacce uomo-macchina avanzate 33 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Brain-Computer Interface Elaborazione del segnale EEG Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 34 Health care e biotecnologie Algoritmi per l’analisi e la classificazione di segnali biomedicali (DNA, ECG, EEG, pressione, …) Attivazione dell’attuatore 35 36 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis Ulteriori spunti… http://pralab.diee.unica.it Per saperne di più… Cos’è l’informatica Capitolo 1 del testo di riferimento L’evoluzione dell’informatica Capitolo 20 del testo di riferimento 37 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis 38 Fondamenti di Informatica - A.A. 2016/17 - Prof. Gian Luca Marcialis