00-Introduzione [modalità compatibilità]

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