introduzione al corso di fondamenti di informatica · introduzione al corso di fondamenti di...

38
Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre 2016

Upload: leque

Post on 16-Aug-2018

238 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Introduzione al corso diFondamenti di informatica

ingegneria elettronicaAnno Accademico 2016-2017

Donatella Firmani

ottobre 2016

Page 2: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Lezioni

• il primo semestre• dal 4 ottobre 2016 al 27 gennaio 2017

• con un’interruzione natalizia, probabilmente dal 23 dicembre al 8 gennaio

• martedì, dalle 10:00 alle 12:00 (con inizio effettivo alle 10:15 e fine alle 11:45)• in aula N11 (Via della Vasca Navale 79/81)

• mercoledì, dalle 11:00 alle 13:00 (con inizio effettivo alle 11:15 e fine alle 12:45)• in aula N15 (Via della Vasca Navale 109)

• venerdì, dalle 9:00 alle 11:00 (con inizio effettivo alle 9:30 e fine alle 11:00)• in aula N18 (Via della Vasca Navale 109)

Page 3: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Ingegneria elettronica

Orario delle lezioni del primo anno/primo semestreLunedì Martedì Mercoledì Giovedì Venerdì

8:00-9:00 AM1 (AK) AM1 (AK) AM1 (AK)

9:00-10:00 AM1 (AK) AM1 (AK) AM1 (AK) AM1 (AK) FIE (N18)

10:00-11:00 FIE (N11) AM1 (AK) FIE (N18)

11:00-12:00 FIE (N11) FIE (N15) G (N18)

12:00-13:00 G (N11) FIE (N15) G (N18)

13:00-14:00 G (N11) AM1 (LZ)

14:00-15:00 AM1 (LZ) AM1 (LZ) AM1 (LZ) AM1 (LZ)

15:00-16:00 AM1 (LZ) AM1 (LZ) AM1 (LZ)

Page 4: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Crediti Formativi Universitari

• 9 CFU (CFU = Credito formativo Universitario)

• 1 CFU = 25 ore di impegno per lo studente “medio” e “frequentante”• 1 CFU ≈ 10 ore di attività didattica assistita (lezioni + tutorato)

+ 15 ore di studio individuale (se durante il corso)

9 * 25 = 225

• 1 CFU ≈ 10 ore di attività didattica assistita (lezioni + tutorato) +

20 ore di studio individuale (se dopo il corso) 9 * 30 ≈ 270

• 1 CFU ≈ 35 ore di studio individuale (senza seguire il corso) 9 * 35 = 315

Page 5: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Ricevimento studenti

• nel primo semestre, il mercoledì alle 15:00 dopo analisi, oppure per appuntamento (per posta elettronica), presso • Dipartimento di Ingegneria

Sezione di Informatica e Automazione Via della Vasca Navale 79 secondo piano, stanza 219

• nella secondo semestre, da stabilire

• e-mail del docente: [email protected]

• informazioni sul corso: https://fieromatre.wordpress.com/

Page 6: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Sito del corso

Page 7: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Regole generali

• Durante le lezioni, gli studenti non devono• distrarsi (niente smartphone etc.)

• distrarre

• Fate domande anche se sembrano stupide• spesso non lo sono

• ma usate anche Google

Page 8: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Che cosa è l’informatica

Informatica: • scienza e tecnica dell’elaborazione dei dati e, genericamente, del trattamento

automatico dell’informazione

(Lo Zingarelli)

L’informatica è una disciplina scientifica • è la scienza del trattamento dell’informazione

• problemi, informazioni, algoritmi

• livello astratto, concettuale, metodologico, logico-matematico

L’informatica è una disciplina tecnologica • è la tecnologia dell’elaborazione dei dati

• dati, programmi

• livello concreto, pragmatico, tecnologico, legato al calcolatore

Page 9: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Obiettivi

Questo corso di Fondamenti di informatica (ingegneria elettronica) introduce alcuni aspetti fondamentali dell’informatica, come disciplina per la soluzione automatica di problemi

• elementi di programmazione

• uso e funzionamento dei calcolatori

• aspetti metodologici e qualitativi

Page 10: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Parte I, autunno 2016: Programmazione di base

• Introduzione alla programmazione C

• Controllo

• Funzioni

• Array

• Puntatori

• Caratteri e stringhe

• Input/output formattato

Page 11: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Parte II, dicembre 2016: Elementi di informatica

• Architettura dei calcolatore

• Hardware e software

• Macchina di Von Neumann

• Codifica dei dati

• Microprocessore

• Memoria centrale

• Memorie secondarie

• Sistema operativo

• Problemi e algoritmi

Page 12: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Parte III, inverno 2017: Programmazione avanzata

• Strutture, unioni, manipolazione di bit ed enumerazioni

• Elaborazione di file

• Strutture di dati

• Preprocessore

• Ambiente integrato di sviluppo C (Esercitazione)

Page 13: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Prerequisiti

Formalmente, nessun prerequisito

Page 14: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Libro di testo

Page 15: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Materiale didattico

Altro materiale distribuito dal docente

• Esercizi

• Diapositive (Alcune…)

• Problemi

• …

Page 16: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Laboratorio

Durante il corso, gli studenti hanno accesso ai calcolatori del seguente laboratori

• Aula Campus (Università Roma Tre) – Via della Vasca Navale 81, piano terra (oltre 50 PC)

• l’accesso ai laboratori è consentiti negli orari di apertura affissi presso i laboratori stessi e comunque solo nel rispetto dei rispettivi regolamenti

Gli studenti che hanno a disposizione un calcolatore e un collegamento a Internet possono svolgere le “attività di laboratorio” in proprio

Page 17: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Modalità d’esame

• un prova di programmazione finale

• eventuali prove di programmazione intermedie, da svolgere a casa

• su richiesta del docente, una prova orale (che può comprendere una discussione degli elaborati)

Page 18: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Calendario delle prove – studenti ord. 270/04

• Non sono attualmente disponibili informazioni definitive sul calendario delle prossime prove d’esame

• Attenzione, sul calendario degli esami verranno pubblicate la date delle prove finali

• Informazioni su eventuali prove intermedie a lezione e sul sito del corso

Page 19: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Prenotazioni alle prove d’esame – studenti ord. 270/04

Per partecipare all’esame è necessario effettuare una prenotazione all’esame tramite il portale dello studente portalestudente.uniroma3.it – entro 4 giorni lavorativi (circa una settimana) dalla data d’esame

In caso di problemi, contattare il docente per posta elettronica entro gli stessi termini.

Page 20: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Verbalizzazione degli esami

Di norma, l’esame si conclude con la verbalizzazione dell’esame stesso da parte del docente

• il docente corregge le prove e pubblica i risultati (voti proposti) delle prove sul sito web del corso

• lo studente ha una settimana di tempo per visionare la correzione delle prove

• in questa settimana lo studente può decidere, se vuole, di ritirarsi dall’esame (rinunciando definitivamente al voto proposto)

• trascorsa questa settimana, il docente verbalizza (ovvero registra ufficialmente) i voti assegnati

• la verbalizzazione è un atto svolto dal docente, che non richiede più la presenza dello studente

Page 21: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Informazioni per studenti dell’ordinamento 509/99

Per informazioni, gli studenti dell’ordinamento 509/99 devono contattare il docente

Page 22: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Concetti di base

• Algoritmo• Procedimento che risolve un determinato problema attraverso un numero

finito di passi elementari.

• Il termine deriva dalla trascrizione latina del nome del matematico persiano al-Khwarizmi, che è considerato uno dei primi autori ad aver fatto riferimento a questo concetto

• Programmazione• traduzione o codifica di un algoritmo

• scritto in un certo linguaggio, che può essere quindi effettivamente eseguito da un calcolatore

Page 23: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Pensare come una macchina

Esperimento mentale: Immaginiamo di avere un robot che può svolgere diversi compiti manuali e che recepisce comandi in italiano. Ci sono diversi ospiti a cui servire il caffè.

Alcune sfide con cui iniziare:

• Essere specifico e nel giusto ordine

• Passare argomenti

• Prendere decisioni in un algoritmo

• I cicli sono ripetizioni

Page 24: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Essere specifico e nel giusto ordine 1

• Obiettivo: Servire il caffè all’ospite A, sapendo che lo vuole amaro

• Alcuni comandi disponibili• Versare …. dentro ...;

• Prendere ...;

• Dare … a ...;

• Mettere … su ...;

• Togliere … da …;

• Attendere ….;

• Spostare … da ... a …;

• ….

Page 25: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Algoritmo del caffè amaro

PROCEDURE ServiCaffèOspiteA

• Prendere tazzina

• Prendere caffettiera

• Riempire caffettiera con acqua, caffè

• Mettere caffettiera su fuoco

• Attendere 5 min //Sappiamo esattamente quando togliere la caffettiera

• Togliere caffettiera da fuoco

• Versare caffè dentro tazzina

• Dare tazzina a ospite A

END PROCEDURE

Page 26: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Essere specifico e nel giusto ordine 2

• Obiettivo: Servire il caffè all’ospite B, che gradisce 1cucch. zucchero

• Nuovi comandi per gestire zucchero• Mescolare … con ...;

Page 27: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Algoritmo del caffè con zucchero

PROCEDURE ServiCaffèOspiteB

• Prendere tazzina

• Prendere caffettiera

• Riempire caffettiera con acqua, caffè

• Mettere caffettiera su fuoco

• Attendere 5 min //Sappiamo esattamente quando togliere la caffettiera

• Togliere caffettiera da fuoco

• Versare caffè dentro tazzina

• Prendere zucchero

• Prendere cucchiaino

• Versare zucchero in tazzina

• Mescolare tazzina con cucchiaino

• Dare tazzina a ospite B

END PROCEDURE

Page 28: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Passare argomenti

• Obiettivo: Servire il caffè all’ospite C, che a volte vuole del latte di soia

• La scelta sul latte viene ricevuta in input dalla procedura• ServiCaffèOspiteC(preferenzaLatte)

• preferenzaLatte può essere SI/NO

Page 29: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Prendere decisioni in un algoritmo

• Obiettivo: Servire il caffè all’ospite C che a volte vuole del latte di soia

• La scelta sul latte viene ricevuta in input dalla procedura• ServiCaffèOspiteC(preferenzaLatte)

• preferenzaLatte può essere SI/NO

• Nuovi comandi ulteriori per gestire preferenze latte• Se … fai

Page 30: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Algoritmo del caffè con eventuale latte

PROCEDURE ServiCaffèOspiteC (preferenzaLatte)

• Prendere tazzina

• Prendere caffettiera

• Riempire caffettiera con acqua, caffè

• Mettere caffettiera su fuoco

• Attendere 5 min

• Togliere caffettiera da fuoco

• Versare caffè dentro tazzina

• Prendere zucchero

• Prendere cucchiaino

• Se viene preferenzaLatte = SI fai

• Prendere latte

• Versare latte in tazza

• Dare tazzina a ospite C

END PROCEDURE

Page 31: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Approfondimento con diagramma di flusso

Page 32: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Essere specifico e nel giusto ordine 3

• Obiettivo: Servire il caffè all’ospite D, che gradisce 2cucch. zucchero

Page 33: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Algoritmo del caffè con doppio zucchero

PROCEDURE ServiCaffèOspiteD

• Prendere tazzina

• Prendere caffettiera

• Riempire caffettiera con acqua, caffè

• Mettere caffettiera su fuoco

• Attendere 5 min

• Togliere caffettiera da fuoco

• Versare caffè dentro tazzina

• Prendere zucchero

• Prendere cucchiaino

• Versare zucchero in tazzina

• Versare zucchero in tazzina

• Mescolare tazzina con cucchiaino

• Dare tazzina a ospite C

END PROCEDURE

Page 34: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

I cicli sono ripetizioni

• Obiettivo: Servire il caffè all’ospite D, che gradisce 2cucch. zucchero, di cui non ricordi le preferenze

• Il numero di cucchiaini viene ricevuto in input dalla procedura• ServiCaffèOspiteD(numCucchiainiPreferiti)

• Nuovi comandi per gestire preferenza zucchero• Finché … fai

• Es. CONDIZIONE: numCucchiainiVersati=numCucchiainiPreferiti

Page 35: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Algoritmo del caffè con zucchero a piacere

PROCEDURE ServiCaffèOspiteD (numCucchiainiPreferiti)

• Prendere tazzina

• Prendere caffettiera

• Riempire caffettiera con acqua, caffè

• Mettere caffettiera su fuoco

• Attendere 5 min

• Togliere caffettiera da fuoco

• Versare caffè dentro tazzina

• Prendere zucchero

• Prendere cucchiaino

• Finché numCucchiainiVersati=numCucchiainiPreferiti fai //Devo ricordare quanti ne ho versati• Versare zucchero in tazzina

• Mescolare tazzina con cucchiaino

• Dare tazzina a ospite D

END PROCEDURE

Page 36: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Approfondimento con diagramma di flusso

Istruzioni specifiche

per ricordare quanti ne ho

versati

Page 37: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Approfondimento: Soluzione

Page 38: Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di informatica ingegneria elettronica Anno Accademico 2016-2017 Donatella Firmani ottobre

Algoritmo del caffè con eventuale latte e zucchero a piacere

PROCEDURE ServiCaffèOspite (preferenzaLatte, numCucchiaini, nomeOspite)

• Prendere tazzina

• Prendere caffettiera

• Riempire caffettiera con acqua, caffè

• Mettere caffettiera su fuoco

• Attendere 5 min

• Togliere caffettiera da fuoco

• Versare caffè dentro tazzina

• Prendere zucchero

• Prendere cucchiaino

• Finché numCucchiainiVersati=numCucchiainiPreferiti fai //Devo ricordare quanti ne ho versati• Versare zucchero in tazzina

• Se viene preferenzaLatte = SI fai

• Prendere latte

• Versare latte in tazza

• Dare tazzina a ospite nomeOspite

END PROCEDURE