Capitolo 0. Introduzione. - Ingegneria elettrica ed elettronica

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