FONDAMENTI DI INFORMATICA - unica.it
Transcript of FONDAMENTI DI INFORMATICA - unica.it
FONDAMENTI DI INFORMATICA
A.A. 2019/2020
Università degli Studi di CagliariCorsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica
http://people.unica.it/gianlucamarcialis
Docente:Gian Luca Marcialis
Ufficio: DIEE – Padiglione M
tel.: 070 675 5893e-mail: [email protected]
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Obiettivi del corso
Le 60 ore del corso, pari a 6 crediti formativi, sonofinalizzate a fornire allo studente la conoscenza di:
Concetti di base sui fondamenti della rappresentazionedelle informazioni
Concetti e componenti di base dell’architettura deimoderni calcolatori elettronici
Concetti fondamentali sulle basi di dati e modellorelazionale
Concetti fondamentali sugli algoritmi, strutture dati ed ilinguaggi di programmazione
Fondamenti di programmazione in linguaggio Python
2
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Organizzazione e obiettivi del corso
(cont.)
18-20 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
40-42 ore di corso saranno dedicate ai fondamenti di
programmazione in linguaggio Python
3
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Al termine di questo corso saprete…
(…dovreste sapere…)
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 uncalcolatore elettronico, ed i fondamenti che regolanol’interconnessione tra più calcolatori
…a tradurre semplici algoritmi in un linguaggio comprensibile alcalcolatore, per risolvere problemi di varia difficoltà
…ma anche sfruttare alcune potenzialità enormi del linguaggio Pythonper poterne usare i servizi senza essere programmatori provetti
4
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Rappresentazione grafica del corso
Rappresentazione binaria
Astrazione sui dati Macchina di Von Neumann
Il Linguaggio Python
Linguaggio Modello di calcolo
Algoritmo
Basi di dati
5
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Orario del corso
Mercoledì ore 14-17
Venerdì ore 10-13
Aula C
Tutorati
Dall’11 marzo, mercoledì 9-11, aula V
6
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Argomenti del corso di Fondamenti di
Informatica 1
Cos’è l’Informatica
Algebra Booleana
Rappresentazione Binaria delle Informazioni
Algoritmi e Linguaggi: concetti e paradigmi
Programmazione in linguaggio Python
Architettura dei Sistemi di Elaborazione
Organizzazione hardware
Organizzazione software (Sistema Operativo)
Basi di dati
7
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Lucidi del corso
I lucidi del corso, ovvero le slide usate a lezione, sono unasintesi degli argomenti del corso
Di conseguenza, si raccomanda di prendere sempre appunti alezione, e parlare col docente:
Durante lo svolgimento della lezione
Alla fine della lezione, per chiarire argomenti specifici
Per posta elettronica: [email protected]
I lucidi del corso, alla voce «materiale didattico», sonodisponibili nel sito: http://people.unica.it/gianlucamarcialis
8
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Lucidi del corso
I documenti saranno in formato PDF
Per leggerli e stamparli è necessario disporre del
programma “Acrobat Reader”
Il programma può essere scaricato gratuitamente dalsito del produttore www.adobe.com (vedi il link nel sito
del corso) oltre che da diversi siti che distribuisconoprogrammi gratuiti (es. volftp.mondadori.com)
9
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Libro di testo
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.
10
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Altri testi
Informatica
G.M. Schneider, J.L. Gersting, Informatica, Apogeo (Maggioli), 2007.
M. Mezzalama, E. Piccolo, Capire l’informatica, CittàStudi (De Agostini), 2010.
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 estrutture dati, 2° edizione, McGraw-Hill, 2005.
M. Gabrielli, S. Martini, Linguaggi di programmazione – principi e paradigmi, McGraw-Hill, 2006
11
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Esame
Scritto (120 minuti, obbligatorio) + Orale (15-30 minuti,eventuale)
Composizione dello scritto 33 punti complessivi
Due esercizi/domande teoriche (8 punti)
Problema di programmazione (25 punti)
Se il punteggio è superiore a 20, viene registrato, con oralefacoltativo
Se il punteggio è compreso tra 16 e 20, l’orale è obbligatorioe si può rinunciare al voto prima dell’orale
Se il punteggio è inferiore a 16, l’esame non è stato superato
La buona prova orale, su tutto il programma, puòincrementare il punteggio ottenuto nella prova scritta. 12
Prove intermedie
Prima prova intermedia: 15 aprile, ore 8.00, aule 1-2
Punteggio: 33 punti
8 punti teoria, 25 punti programmazione
Valutazione
Se il voto è maggiore o uguale a 16, si è ammessi alla seconda
prova intermedia
Altrimenti, si è rimandati alla prima prova scritta utile (giugno)
Seconda prova intermedia (da fissare)
Punteggio: 33 punti
8 punti teoria, 25 punti programmazione
Valutazione
Se il voto è maggiore o uguale a 16, si è ammessi alla valutazione
finale
Altrimenti, si è rimandati alla prima prova scritta utile (giugno)
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
13
Valutazione finale prove intermedie
Se il voto della seconda prova è maggiore o uguale a quello
della prima
il voto finale è pari a quello della seconda prova intermedia,
Altrimenti
il voto finale è pari alla media aritmetica delle due prove
Se il voto finale è maggiore o uguale a 18
l’orale è facoltativo, ma il voto viene comunque registrato
Altrimenti
l’orale è obbligatorio per la registrazione, ma si può scegliere di non
sostenerlo per presentarsi alla successiva prova scritta
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
14
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Sostenimento e registrazione
Per sostenere l’esame siete vincolati a compilare ilquestionario di valutazione del corso
Il questionario è sempre anonimo e qualunque cosascriviate non giungerà al sottoscritto con la vostra “firma”
Siate comunque costruttivi!
Per registrare l’esame non c’è bisogno della vostrapresenza fisica: il docente registrerà i voti sufficienti
Permetterà la visione dei compiti corretti in un giorno edora stabiliti
15
Fondamenti di Informatica - A.A. 2019/20 - 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
16
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Che cos’è l’informatica
Scienza della rappresentazione e dell’elaborazionedell’informazione
Non è la scienza e la tecnologia dei calcolatori elettronici
Non sono le molteplici applicazioni dei calcolatorielettronici
Essendo una scienza, cioè approccio sistematico erigoroso, l’elaborazione dell’informazione può avvenire inmodo automatico
Ci sono altre discipline che trattano l’informazione, ma nonin modo sistematico e rigoroso, come il giornalismo
P.S. Attenti alle «fake news»!17
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
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...18
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Esempio di algoritmo: determinare il
maggiore di due numeri interi x, y
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
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Calcolatori elettronici come esecutori
di algoritmi
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
20
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Algoritmi e calcolatori
Un algoritmo eseguito da un calcolatore prende il nomedi programma e viene espresso in un opportunolinguaggio di programmazione
Un linguaggio di programmazione è un linguaggiocomprensibile al calcolatore (e, naturalmente, anche anoi)
Gli informatici si servono dei linguaggi diprogrammazione per tradurre gli algoritmi in programmi,attraverso opportune rappresentazioni delle informazioninote (dati in ingresso) e di quelle da ottenere attraversoil calcolatore (dati in uscita)
21
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Algoritmi e linguaggi di
programmazione
Linguaggio Naturale
Calcola la differenza fra x e y
Se la differenza è maggiore di 0
il maggiore è x
Altrimenti
il maggiore è y
Comunica all’esterno il risultato
Linguaggio di Programmazione (Python)
differenza = x – y
if (differenza >= 0):
maggiore=x
else:
maggiore=y
print(maggiore)
22
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Architettura dei sistemi informatici
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
23
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Hardware 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
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
Unità Centrale
24
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Software di un sistema informatico
Di base
Per la gestione dell’elaboratore Esecuzione di programmi, occupazione della memoria,
comunicazione con altri sistemi (protocolli)
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
Per il progetto e la scrittura di programmi
25
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Firmware di un sistema informatico
Programmi che vengono memorizzati in modo
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
26
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Tipi di sistemi informatici
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 AreaNetwork)
Es. i computer del nostro laboratorio, connessi tra loro, costituiscono unaLAN
27
Livelli di «astrazione» di un sistema
informatico
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
28
Calcolatore elettronico
Linguaggio macchina
(Assembly)
Sistema operativo
ApplicazioniComunicazione con
l’uomo o altri
dispositivi
(sensori, attuatori,
applicazioni)
Porte logiche Linguaggio di
programmazione
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
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
29
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Informatica ed intelligenza artificiale
Videocamera 1 Dialogo tra i due sensori
Ambiente reale ad intelligenza aumentata
Mario Rossi
riconosciuto
attraverso
l’immagine
del volto.
Autorizzato a
passare per la
porta a
sinistra.
In attesa di
verificare il
passaggio di
Mario Rossi
Videocamera 2
Segnalazione ad un terzo
sensore, es. termostato,
un’opportuna regolazione
della temperatura secondo
le esigenze di Mario
Rossi. Mario Rossi
30
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Ambienti «virtuali»
Protezione da dati
«pericolosi»
31
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Ambienti «reali»
Corso «Biometric technologies
and behavioral security» (5 CF)
per Lauree magistrali
Certezza dell’identità
32
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Allarmi “intelligenti”
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”
33
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Monitoraggio aree a rischio
34
Brain-Computer Interface
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Elaborazione del
segnale EEG
Attivazione
dell’attuatore35
Meccatronica
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
36
«Health care» e biotecnologie
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Algoritmi per l’analisi e la
classificazione di segnali
(ECG, EEG, PPG, pressione
sanguigna, equilibrio…)
37
Algoritmi per la
rappresentazione di molecole,
DNA, codifica del genoma,
analisi e identificazione degli
enzimi
Internet of Things
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
38
Informatica ed Ingegneria Meccanica
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
39
Informatica ed Ingegneria Chimica
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
40
Ulteriori spunti…
http://pralab.diee.unica.it
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
41
Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis
Per saperne di più…
Cos’è l’informatica
Capitolo 1 del testo di riferimento
L’evoluzione dell’informatica
Capitolo 20 del testo di riferimento
42