• Non ci sono risultati.

Fondamenti di Informatica Fondamenti di Informatica Fondamenti di Informatica A Fondamenti di Informatica A 2019-2020 2019-2020 Introduzione al corso Introduzione al corso

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti di Informatica Fondamenti di Informatica Fondamenti di Informatica A Fondamenti di Informatica A 2019-2020 2019-2020 Introduzione al corso Introduzione al corso"

Copied!
61
0
0

Testo completo

(1)

Fondamenti di Informatica Fondamenti di Informatica Fondamenti di Informatica A Fondamenti di Informatica A

2019-2020 2019-2020

Introduzione al corso Introduzione al corso

Moreno Marzolla

Dipartimento di Informatica—Scienza e Ingegneria (DISI) Università di Bologna https://www.moreno.marzolla.name/

(2)
(3)

Introduzione 3/61

Il corso

Pagina del corso:

http://www.moreno.marzolla.name/teaching/FINFA

Moreno Marzolla

Lezioni in aula

Sara Montagna

Esercitazioni in laboratorio

MATLAB

Michele Braccini

Tutor per il laboratorio

(4)

Libro di testo

Paul J. Deitel, Harvey M. Deitel, Il linguaggio C: Fondamenti e Tecniche di Programmazione, Pearson (2016, ottava ed.)

Vanno bene anche edizioni precedenti

Altro materiale sulla pagina del corso:

Lucidi

Dispensa (sulla teoria)

(5)

Introduzione 5/61

Programma del corso

Fondamenti teorici dell'informatica

Logica binaria

Rappresentazione dell'informazione

Reti di calcolatori

Sicurezza e Crittografia

Teoria della calcolabilità e Macchine di Turing

Correttezza degli algoritmi e invarianti

Programmazione in linguaggio C

“Hello, world!”

Tipi e valori

Espressioni

Strutture di controllo

Funzioni e ricorsione

Array e puntatori

Strutture

Programmazione in

linguaggio MATLAB

(6)

Struttura del corso

Lezioni

in aula

Labo

ratorio C (bio) turno 1

Moreno Marzolla Sara Montagna + Michele Braccini

Laboratorio C (bio) turno 2

MATLAB turno 1 MATLAB turno 2 Laboratorio C (ele)

(7)

Introduzione 7/61

Quali lezioni devo seguire?

Lezioni

in aula

Labo

ratorio C (bio) turno 1 Laboratorio C (bio) turno 2

MATLAB turno 1 MATLAB turno 2 Laboratorio C (ele)

Chi ha in piano di studio due corsi distinti (6 + 3 CFU), cioè gli studenti biomedici immatricolati 2019/20

Lezioni in aula + lab. C (bio) + lab. MATLAB

Lun/Mar Mercoledì

(8)

Quali lezioni devo seguire?

Lezioni

in aula

Labo

ratorio C (bio) turno 1 Laboratorio C (bio) turno 2

LAB o 1 LAB o 2 Laboratorio C (ele)

Chi ha in piano di studio un solo corso da 9 CFU, cioè gli studenti elettronici, e i biomedici in debito d'esame

Lezioni in aula + lab. C (ele)

(9)

Introduzione 9/61

Orario

Fino al 11 marzo:

Lunedì 11—13 aula 2.12

Martedì 14—17 aula 2.12

Mercoledì 12—14 aula 2.12

Dal 13 marzo in poi:

Lunedì 11—13 aula 2.12

Martedì 14—17 aula 2.12

Mercoledì 13:00—15:30 lab 2.2 (lab bio primo turno)

Mercoledì 15:30—18:00 lab 2.2 (lab bio secondo turno)

Venerdì 12:00–14:30 lab 2.2 (lab ele)

Eventuali modifiche saranno pubblicate sulla pagina

del corso

(10)

Laboratori

Primo laboratorio elettronici: venerdì 13/3

Primo laboratorio biomedici: mercoledì 18/3

Matricole pari: primo turno (ore 13:00)

Matricole dispari: secondo turno (ore 15:30)

Ogni settimana i turni dei biomedici si scambiano

Fare riferimento alla pagina del corso per sapere di volta in volta quale è il proprio turno

Per evitare i disagi che si sono verificati negli anni precedenti non saranno ammessi cambi di turno

per nessun motivo

(11)

Introduzione 11/61

In caso di dubbi

È sempre possibile (e incoraggiato!) fare domande a lezione e in laboratorio

Oppure

Domande “brevi”: durante le pause, o via mail

Domande “non brevi”: al termine delle lezioni, oppure a ricevimento

Ricevimento (Marzolla)

previo appuntamento da concordare via mail

stanza 4139 piano 2

(12)

Netiquette

ossia, le “buone maniere” nell'era di Internet

Usare esclusivamente il proprio indirizzo istituzionale

@studio.unibo.it

Indicare sempre l'oggetto (subject) del messaggio

“Firmare” la mail con nome, cognome e matricola

Specificare che il messaggio è relativo al corso FINFA

Es., iniziare l'oggetto con “[FINFA] ...”

La posta elettronica è un mezzo di comunicazione asincrono

Non sempre siamo in grado di rispondere immediatamente

Non date per scontato che leggiamo la posta a mezzanotte

(13)

Introduzione 13/61

Esempio di mail che viola tutte le regole

From: xxxx@yahoo.it

Date: 20XX/XX/XX 23:47 Subject:

Salve, volevo sapere se è disponibile domani per un ricevimento.

Indirizzo non istituzionale

Assume che la mail

venga letta a mezzanotte

Manca oggetto

Manca la firma e l'indicazione del corso cui si riferisce

….

(14)

“Il mio programma non va...”

Cosa c'è che non va?

Il compilatore riporta un errore?

Quale?

Che risultato ci si aspetta, e che risultato si ottiene?

Non inviare MAI foto/screenshot

È uno spreco di spazio

Non si può compilare né modificare

Se proprio bisogna inviare un programma

allegare il file sorgente, oppure

incollare il testo nel corpo della mail

(15)

Introduzione 15/61

L'esame

(16)

Cosa viene proposto all'esame

L'esame si svolge in laboratorio

6 domande (su carta) sul programma svolto in aula e nella parte comune di lab.

Tre esercizi di programmazione in C

Alcuni esercizi di programmazione in MATLAB

Cosa svolgere dipende dall'esame che dovete

sostenere

(17)

Introduzione 17/61

Chi sostiene l'esame di

Fondamenti di Informatica (6 CFU)

(Studenti biomedici iscritti per la prima volta nell'AA 2019/2020)

Parte da svolgere:

Le 6 domande di teoria

I primi due esercizi di programmazione in C

(18)

Chi sostiene l'esame di

Ing. informatica biomedica (3 CFU)

(Studenti biomedici iscritti per la prima volta nell'AA 2019/2020)

Parte da svolgere:

Esercizi di programmazione in MATLAB

(19)

Introduzione 19/61

Chi sostiene l'esame di

Fondamenti di Informatica A (9 CFU)

(Studenti iscritti in anni precedenti, e studenti elettronici)

Parte da svolgere:

Le 6 domande di teoria

Tutti e tre gli esercizi di programmazione in C

(20)

L'esame

Tutti i tipi di esame si svolgono contemporaneamente e hanno una durata complessiva di 2 ore

Chi ha esami separati da 6 + 3 CFU può

svolgere solo la parte di Fond. di Inf. (6 CFU), oppure

svolgere solo la parte di Lab. ing. inf biomedica (3 CFU), oppure

svolgere entrambe le parti (6 + 3 CFU)

NB: l'esame è calibrato per poter agevolmente svolgere entrambe le parti in 2 ore, per chi lo desidera

Chi ha un esame da 9 CFU

Lo deve sostenere per intero

(21)

Introduzione 21/61

Valutazione domande di teoria

Nel caso di domande V/F:

Risposta corretta +1/3, errata -1/3, mancante 0

Nel caso di domande a risposta aperta:

Da 0 a 4/3 di punto

(22)

Valutazione esercizi in C

Potrà essere fornito uno scheletro da completare

Potranno essere inclusi alcuni test non esaustivi

Valutazione (per l'esame da 9 CFU):

Mancante o non compila: 0 pt

Fallisce i test o non conforme alle specifiche: max 3 pt

Corretto ma inefficiente o incomprensibile/ridondante: max 6 pt

Corretto con lievi imperfezioni: max 7 pt

Corretto: max 8 pt

Per l'esame da 6 CFU i punteggi si moltiplicano per 3/2

Un programma è corretto se e solo se soddisfa le specifiche

Un programma che supera i test non è necessariamente corretto

(23)

Introduzione 23/61

Iscrizione all'esame obbligatoria

Iscrizione obbligatoria su AlmaEsami

La lista chiude ~7/10 giorni prima per consentire la

predisposizione degli aspetti logistici (aule, turni, creazione directory per la consegna...)

Chi non si iscrive non viene ammesso

Come da regolamento, 6 appelli d'esame

3 nella sessione estiva (giugno/luglio)

1 nella sessione autunnale (settembre)

2 nella sessione invernale (gennaio/febbraio)

Non ci saranno altri appelli

(24)

Verbalizzazione del voto

Voto finale = (voto quiz +) voto programmi

Se ci si ritira durante l'esame viene verbalizzato “Ritirato”

Se il voto è minore di 18 viene verbalizzato “Respinto”

Un voto ≥ 18 può essere rifiutato entro la data indicata nella mail di notifica (tipicamente 1 settimana)

In tal caso verrà verbalizzato “Rifiutato”

“Respinto” e “Ritirato” non si possono rifiutare!

I voti non rifiutati esplicitamente entro la scadenza si considerano accettati e verranno verbalizzati

Non si tengono voti in sospeso

Chi intende migliorare un voto ≥ 18 deve rifiutare e ripresentarsi

(25)

Introduzione 25/61

“Cheating policies”

...ovvero cosa succede se copiate

In caso di copiatura, vengono annullati i compiti di tutti gli studenti coinvolti

Sia chi ha “copiato”, sia chi “ha fatto copiare”

Casi di copiatura potranno essere rilevati anche dopo

la conclusione della prova

(26)

Simulazioni d'esame

Due, a metà e alla fine del corso

Verrà richiesta l'iscrizione

per creare le cartelle condivise per la consegna come succederà all'esame

Partecipare alle simulazioni è importante

prendere confidenza con le modalità d'esame vi consentirà

di non sprecare tempo prezioso durante l'esame vero

(27)

Introduzione 27/61

Per superare l'esame...

“Spannometricamente”

9 CFU ´ 25 ore/CFU = 225 ore di impegno totale

60

30 135

Lezioni in aula Laboratorio

(28)

Come si studia

(29)

Introduzione 29/61

Sul metodo di studio

Come studiare

Programmare!!!

Frequentando le esercitazioni in lab.

Esercitandosi con esercizi di programmazione dei vecchi esami

Confrontare la propria soluzione con quella proposta

Più comprensibile?

Più efficiente?

Più compatta?

Dove studiare

Sul libro

I lucidi non sono fatti per studiarci sopra...

...ma vanno bene come

ausilio per il ripasso

(30)

Le esercitazioni in laboratorio

In laboratorio vengono proposti degli esercizi di programmazione sugli argomenti visti a lezione

I laboratori saranno parzialmente guidati

Alcuni esercizi svolti dal docente

Altri da svolgere in autonomia, chiedendo aiuto al docente e/

o al tutor

(31)

Introduzione 31/61

Ascolto, e dimentico Vedo, e ricordo Faccio, e capisco

Confucio

By 仇英 - http://www.chinatimes.com/realtimenews/20140517001774-260405, Public Domain, https://commons.wikimedia.org/w/index.php?curid=61343601

(32)

Sui lucidi delle lezioni

I lucidi delle lezioni visti da voi I lucidi delle lezioni visti da me

(33)

Introduzione 33/61

Perché i lucidi vengono modificati?

Perché ho corretto errori

Perché riguardando il materiale mi sono reso conto che la spiegazione sarebbe più chiara se...

Perché nelle precedenti lezioni è emerso che certi argomenti vanno approfonditi di più

Perché nelle precedenti lezioni è emerso che certi argomenti vanno approfonditi di meno

Perché i colleghi del laboratorio mi segnalano lacune

Perché abbiamo saltato delle lezioni e devo riorganizzare al volo il programma del corso

...

(34)

L'opinione degli studenti

(35)

Introduzione 35/61

Questionari di valutazione del corso

Da compilare verso la fine del corso

Tre questionari distinti

Per le lezioni in aula (Marzolla)

Per la parte in laboratorio (Montagna)

Per la parte MATLAB (Montagna)

I questionari vengono letti/discussi da

docente

consigli dei corsi di studio

commissione paritetica di scuola

...

(36)

Questionari di valutazione del corso

Strumento imperfetto, ma è l'unico che abbiamo

Si mescolano domande su aspetti molto diversi

"Sei interessato a questo insegnamento?"

"I locali dove si svolgono le lezioni sono adeguati?"

"Il docente spiega in modo chiaro?"

"Il docente stimola/motiva l'interesse per la materia?"

Prima di lamentarsi, è importante essere onesti con se stessi

Ho frequentato le lezioni?

Ho frequentato i laboratori?

Ho studiato sul libro?

(37)

Introduzione 37/61

(38)

Cosa è l'informatica?

Parole chiave

INFORMazione

Elaborazione automATICA

“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)]

“La scienza della rappresentazione ed elaborazione

[automatica] dell'informazione”

(39)

Introduzione 40/61

Perché studiare informatica?

Il Therac-25

Dispositivo computerizzato per la

radioterapia di pazienti affetti da tumore

Terza generazione (Therac-6, Therac-20)

I modelli precedenti disponevano di controlli hardware per impedire

sovradosaggio di radiazioni

I controlli hardware sono stati rimpiazzati da controlli software per ridurre i costi

Nel funzionamento nominale eroga 6000 rad complessive in 3 settimane di utilizzo

A causa di grossolani errori di

programmazione, ha erogato fino a 60000 rad in una singola sessione

Tra giugno 1985 e gennaio 1987 sei

pazienti sono morti o seriamente feriti da dosi eccessive di radiazioni

http://www.computer.org/computer/

homepage/misc/Leveson/index.htm

(40)

Perché studiare informatica?

Ariane 5

(41)

Perché studiare informatica?

Lo scandalo Volkswagen sulle emissioni

(42)

Cosa è un computer?

Un computer è un dispositivo programmabile in grado di svolgere in modo automatico una sequenza di

operazioni aritmetiche o logiche

È uno strumento per la rappresentazione,

memorizzazione ed elaborazione di informazioni

(43)

Introduzione 44/61

Informatica e computer

“Computer Science is no more about computers than astronomy is about telescopes, biology is about microscopes or

chemistry is about beakers and test tubes.”

Michael R. Fellows and Ian Parberry

Computing Research News, vol. 5, n. 1, 1993

(44)

I passi per risolvere un problema

Problema

Algoritmo

Programma

Analisi

Implementazione

Diagramma a blocchi

Pseudocodice

Descrizione testuale

Linguaggio di programmazione (C, Java, Matlab, Python, ...)

Esecuzione

(45)

Introduzione 46/61

Esempio

Ricerca sull'elenco del telefono

Input: un cognome e nome qualsiasi

Output: numero di telefono, se presente

Ipotesi

Nell'elenco del telefono non ci sono omonimi

(46)

Esempio

Parti dal primo abbonato sull'elenco

Il nome è quello cercato?

Passa all'abbonato successivo

No

Stampa num.

di telefono

Ricerca del numero di telefono consultando l'elenco

Input: cognome e nome di un individuo qualsiasi

Output: numero di telefono

Inizio

Fine

(47)

Introduzione 48/61

Esempio

Parti dal primo abbonato sull'elenco

Il nome è quello cercato?

Passa all'abbonato successivo

No

Sei arrivato alla fine?

No “non trovato”

Stampa num.

di telefono

Ricerca del numero di telefono consultando l'elenco

Input: cognome e nome di un individuo qualsiasi

Output: numero di

telefono, oppure “non trovato”

Inizio

Fine

(48)

Esempio

Parti dal primo abbonato sull'elenco

Il nome è quello cercato?

Passa all'abbonato successivo

No

Sei arrivato alla fine?

No “non trovato”

Stampa num.

di telefono

Corretto?

Completo?

Efficiente?

Quante pagine dell'elenco devo esaminare nel caso migliore?

Quante pagine dell'elenco devo esaminare nel caso peggiore?

Inizio

N 1

(49)

Introduzione 50/61

Ricerca binaria

1.Dividi la pila di pagine in due pile composte da circa metà delle pagine ciascuna

2.Scarta la metà che sicuramente non contiene il nome che stai cercando

3.Se la parte che rimane è costituita da una singola pagina, cerca il nome su quella pagina

4.Se la parte che rimane è più di una pagina, vai al

passo 1

(50)

Esempio

cerchiamo “Marzolla”

Viesti …... 7746734

Zulian ….... 7716632 Soru ….. 3763343

Tancredi …. 91874363 Rossi … 3764634

Serafini ….. 37465374 Nicoletti …. 2873643

Pasquini … 34676473 Ligure ….. 277382

Marotta ….. 7365263 Franchini ….. 63343

Gaiardo ... 7632554 Derossi ….. 219387

Fortunati ….. 348726 Albano …... 1312412

(51)

Introduzione 52/61

Esempio

cerchiamo “Marzolla”

Viesti …... 7746734

Zulian ….... 7716632 Soru ….. 3763343

Tancredi …. 91874363 Rossi … 3764634

Serafini ….. 37465374 Nicoletti …. 2873643

Pasquini … 34676473 Ligure ….. 277382

Marotta ….. 7365263 Franchini ….. 63343

Gaiardo ... 7632554 Derossi ….. 219387

Fortunati ….. 348726 Albano …... 1312412

Cadorna ….. 13123412

Prima divisione

(52)

Esempio

cerchiamo “Marzolla”

Ligure ….. 277382

Marotta ….. 7365263 Franchini ….. 63343

Gaiardo ... 7632554 Derossi ….. 219387

Fortunati ….. 348726 Albano …... 1312412

Cadorna ….. 13123412

(53)

Introduzione 54/61

Esempio

cerchiamo “Marzolla”

Ligure ….. 277382

Marotta ….. 7365263 Franchini ….. 63343

Gaiardo ... 7632554 Derossi ….. 219387

Fortunati ….. 348726 Albano …... 1312412

Cadorna ….. 13123412

Seconda divisione

(54)

Esempio

cerchiamo “Marzolla”

Ligure ….. 277382

Marotta ….. 7365263 Franchini ….. 63343

Gaiardo ... 7632554

(55)

Introduzione 56/61

Esempio

cerchiamo “Marzolla”

Ligure ….. 277382

Marotta ….. 7365263 Franchini ….. 63343

Gaiardo ... 7632554

Terza divisione

(56)

Esempio

cerchiamo “Marzolla”

Ligure ….. 277382

Marotta ….. 7365263

(57)

Introduzione 58/61

Esempio

cerchiamo “Marzolla”

Ligure ….. 277382

Marotta ….. 7365263

Non trovato

(58)

Analisi della ricerca binaria

Corretto?

Quale proprietà dell'elenco telefonico è fondamentale per garantire la correttezza dell'algoritmo?

Completo?

Efficiente?

Quante divisioni devo fare nel caso migliore?

Quante divisioni devo fare nel caso peggiore?

(59)

Introduzione 60/61

Analisi della ricerca binaria

Iniziamo con N pagine

Dopo 1 dimenzzamento ne abbiamo N/2

Dopo 2 dimezzamenti ne abbiamo N/2

2

Dopo 3 dimezzamenti ne abbiamo N/2

3

Dopo k dimezzamenti ne abbiamo N/2

k

Terminiamo quando ne resta una sola, cioè N/2

k

= 1

N/2

k

= 1

N = 2

k

log

2

N = log

2

2

k

log

2

N = k

(60)

Analisi della ricerca binaria

Corretto?

Quale proprietà dell'elenco telefonico è fondamentale per garantire la correttezza dell'algoritmo?

Completo?

Efficiente?

Quante divisioni devo fare nel caso migliore?

Quante divisioni devo fare nel caso peggiore?

log2 N

log2 N

(61)

Introduzione 62/61

Domande?

moreno.marzolla@unibo.it

Riferimenti

Documenti correlati

struct phone_book {

Pellegrino Principe, "Guida alla Programmazione C", Apogeo, edizione 2015 (linguaggio C aggiornato. all’ultima

Così ad esempio, alla metà degli anni '90 del secolo scorso, due antropologi di rilievo come Marc Augè e Clifford Geertz, con un background culturale differente,

This paper reviews the major (Calcium, Phosphorus, Potassium, Sodium, Chlorine, Sulphur, Magnesium) and the trace elements (Iron, Copper, Cobalt, Iodine, Manganese, Zync,

Available Open Access on Cadmus, European University Institute Research Repository.... European

Fig.. ste aree della Sardegna le cavità minerarie e le grotte di miniera sono di primaria importanza per molte specie di pipistrelli che trovano rifu- gio nel loro interno. La

In discussing Northanger Abbey it is essential to see that the problems Catherine, the heroine, has in understanding herself and her experience are not different from the problems

Jean Guiguet specifically identifies Virginia Woolf with her six protagonists: She is in love with words, like Bernard: in love with books, like Neville: a lover of action, like