FONDAMENTI DI INFORMATICA - unica.it

42
FONDAMENTI DI INFORMATICA A.A. 2019/2020 Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica http://people.unica.it/gianlucamarcialis Docente: Gian Luca Marcialis Ufficio: DIEE Padiglione M tel.: 070 675 5893 e-mail: [email protected]

Transcript of FONDAMENTI DI INFORMATICA - unica.it

Page 1: 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]

Page 2: FONDAMENTI DI INFORMATICA - unica.it

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

Page 3: FONDAMENTI DI INFORMATICA - unica.it

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

Page 4: FONDAMENTI DI INFORMATICA - unica.it

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

Page 5: FONDAMENTI DI INFORMATICA - unica.it

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

Page 6: FONDAMENTI DI INFORMATICA - unica.it

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

Page 7: FONDAMENTI DI INFORMATICA - unica.it

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

Page 8: FONDAMENTI DI INFORMATICA - unica.it

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

Page 9: FONDAMENTI DI INFORMATICA - unica.it

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

Page 10: FONDAMENTI DI INFORMATICA - unica.it

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

Page 11: FONDAMENTI DI INFORMATICA - unica.it

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

Page 12: FONDAMENTI DI INFORMATICA - unica.it

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

Page 13: FONDAMENTI DI INFORMATICA - unica.it

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

Page 14: FONDAMENTI DI INFORMATICA - unica.it

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

Page 15: FONDAMENTI DI INFORMATICA - unica.it

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

Page 16: FONDAMENTI DI INFORMATICA - unica.it

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

Page 17: FONDAMENTI DI INFORMATICA - unica.it

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

Page 18: FONDAMENTI DI INFORMATICA - unica.it

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

Page 19: FONDAMENTI DI INFORMATICA - unica.it

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

Page 20: FONDAMENTI DI INFORMATICA - unica.it

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

Page 21: FONDAMENTI DI INFORMATICA - unica.it

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

Page 22: FONDAMENTI DI INFORMATICA - unica.it

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

Page 23: FONDAMENTI DI INFORMATICA - unica.it

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

Page 24: FONDAMENTI DI INFORMATICA - unica.it

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

Page 25: FONDAMENTI DI INFORMATICA - unica.it

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

Page 26: FONDAMENTI DI INFORMATICA - unica.it

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

Page 27: FONDAMENTI DI INFORMATICA - unica.it

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

Page 28: FONDAMENTI DI INFORMATICA - unica.it

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

Page 29: FONDAMENTI DI INFORMATICA - unica.it

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

Page 30: FONDAMENTI DI INFORMATICA - unica.it

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

Page 31: FONDAMENTI DI INFORMATICA - unica.it

Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis

Ambienti «virtuali»

Protezione da dati

«pericolosi»

31

Page 32: FONDAMENTI DI INFORMATICA - unica.it

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

Page 33: FONDAMENTI DI INFORMATICA - unica.it

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

Page 34: FONDAMENTI DI INFORMATICA - unica.it

Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis

Monitoraggio aree a rischio

34

Page 35: FONDAMENTI DI INFORMATICA - unica.it

Brain-Computer Interface

Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis

Elaborazione del

segnale EEG

Attivazione

dell’attuatore35

Page 36: FONDAMENTI DI INFORMATICA - unica.it

Meccatronica

Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis

36

Page 37: FONDAMENTI DI INFORMATICA - unica.it

«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

Page 38: FONDAMENTI DI INFORMATICA - unica.it

Internet of Things

Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis

38

Page 39: FONDAMENTI DI INFORMATICA - unica.it

Informatica ed Ingegneria Meccanica

Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis

39

Page 40: FONDAMENTI DI INFORMATICA - unica.it

Informatica ed Ingegneria Chimica

Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis

40

Page 41: FONDAMENTI DI INFORMATICA - unica.it

Ulteriori spunti…

http://pralab.diee.unica.it

Fondamenti di Informatica - A.A. 2019/20 - Prof. Gian Luca Marcialis

41

Page 42: FONDAMENTI DI INFORMATICA - unica.it

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