Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di...

Post on 16-Aug-2018

243 views 4 download

Transcript of Introduzione al corso di Fondamenti di informatica · Introduzione al corso di Fondamenti di...

Introduzione al corso diFondamenti di informatica

ingegneria elettronicaAnno Accademico 2016-2017

Donatella Firmani

ottobre 2016

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)

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)

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

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: donatella.firmani@uniroma3.it

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

Sito del corso

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

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

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

Parte I, autunno 2016: Programmazione di base

• Introduzione alla programmazione C

• Controllo

• Funzioni

• Array

• Puntatori

• Caratteri e stringhe

• Input/output formattato

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

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)

Prerequisiti

Formalmente, nessun prerequisito

Libro di testo

Materiale didattico

Altro materiale distribuito dal docente

• Esercizi

• Diapositive (Alcune…)

• Problemi

• …

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

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)

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

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.

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

Informazioni per studenti dell’ordinamento 509/99

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

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

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

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 …;

• ….

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

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 ...;

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

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

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

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

Approfondimento con diagramma di flusso

Essere specifico e nel giusto ordine 3

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

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

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

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

Approfondimento con diagramma di flusso

Istruzioni specifiche

per ricordare quanti ne ho

versati

Approfondimento: Soluzione

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