You are in: Home » Teaching » FINFA 2018-2019

Fondamenti di Informatica A — 2018/2019
Laurea in Ingegneria Biomedica, Laurea in Ingegneria Elettronica per l'energia e l'informazione, Università di Bologna

[ Avvisi | Programma, libri di testo, software per il laboratorio | Orario delle lezioni | Esami | Lezioni e laboratorio ]

Avvisi

22/1/2020 New
L'esame di mercoledì 5/2/2020 inizierà alle ore 10:00 anziché alle ore 09:00, stessa aula.
16/1/2020
I voti della prova del 15 gennaio 2020 sono pubblicati su AlmaEsami. Sono disponibili i dettagli dei punteggi, le soluzioni degli esercizi e alcuni commenti che invito a leggere con attenzione. Siete pregati di verificare che i voti su AlmaEsami siano gli stessi della tabella.
Chi intende RIFIUTARE un voto sufficiente deve mandarne comunicazione al docente, usando il proprio indirizzo di posta istituzionale, entro giovedì 23 gennaio 2020; invito a riflettere MOLTO SERIAMENTE prima di rifiutare un voto valido.
Chi intende ACCETTARE il voto non deve fare nulla: i voti non rifiutati entro la scadenza verranno verbalizzati nei giorni successivi senza necessità della vostra presenza fisica. Chi ha bisogno della verbalizzazione immediata (es., per potersi laureare o altro) è pregato di comunicarmi l'accettazione via mail il prima possibile.
Ricordo che, come da regolamente d'esame, non si tengono voti in sospeso. Chi ha un voto valido ma lo vuole migliorare deve rifiutarlo esplicitamente; in caso di mancato rifiuto, il voto verrà verbalizzato e non sarà più possibile risostenere l'esame.
7/10/2019
Sono aperte le iscrizioni agli appelli invernali (gennaio/febbraio 2020).

Programma e libri di testo

Questa è la pagina del corso di Fondamenti di Informatica A, laurea in Ingegneria Biomedica e Ingegneria Elettronica per l'Energia e l'Informazione, AA 2018/2019, Università di Bologna (campus di Cesena).

Il corso è diviso in due moduli: una parte in aula (6 CFU, circa 60 ore) e una parte in laboratorio (3 CFU, circa 30 ore). Questa pagina contiene informazioni relative a entrambi i moduli.

I docenti del corso sono:

Programma

Libri di testo

Altri libri, per chi desidera approfondire:

Software usato in laboratorio

In laboratorio verrà usato Code::Blocks per lo sviluppo e la compilazione di programmi in linguaggio C. Si tratta di software libero disponibile gratuitamente per Linux, Windows e MacOSX. Viste le esigenze abbastanza basilari di questo corso, chi vuole esercitarsi sul proprio PC e ha difficoltà ad installare Code::Blocks può usare un qualunque altro ambiente di sviluppo equivalente (ad es., CodeLite, Visual Studio e simili). Si tenga però presente che all'esame sarà necessario usare Code::Blocks.

Dal sito di Code::Blocks è possibile scaricare la versione adatta al proprio sistema operativo:

Orario delle lezioni

Fondamenti di Informatica A 2018/2019
Dal 20/2 al 5/3
Lunedì 11:00—13:00, aula 2.12
Martedì 14:00—17:00, aula 2.12
Mercoledì 12:00—14:00, aula 2.12
Dal 6/3 in poi
Lunedì 11:00—13:00, aula 2.12
Martedì 14:00—17:00, aula 2.12
Mercoledì 13:00—15:30 (primo turno), lab 2.2
15:30—18:00 (secondo turno), lab 2.2

Esami

Appelli d'esame

Nota: L'esatto orario di inizio delle prove d'esame verrà comunicato sulle pagine web del corso e via mail agli iscritti; potrà rendersi necessario organizzare più turni, eventualmente anche nel giorno successivo a quello indicato su AlmaEsami. Per sostenere l'esame è obbligatorio essere iscritti tramite AlmaEsami prima della chiusura delle liste (le liste chiudono indicativamente 7-10 giorni prima). Chi non risulta iscritto non può partecipare, senza eccezioni; il motivo è spiegato qui.

Appelli di Fondamenti di Informatica A 2018/2019
Sessione estiva (Giugno-Luglio 2019)
I martedì 18/6/2019 ore 09:00 lab 2.2
[Voti]
[Soluzioni dei quiz Compito 1 Compito 2 Compito 3]
[Soluzioni esercizi di programmazione] [Commenti]
II giovedì 4/7/2019 ore 09:00 lab 2.2
[Voti]
[Soluzioni dei quiz Compito 1 Compito 2]
[Soluzioni esercizi di programmazione] [Commenti]
III martedì 23/7/2019 ore 09:00 lab 2.2
[Voti]
[Soluzioni esercizi di programmazione] [Commenti]
Sessione autunnale (Settembre 2019)
I lunedì 16/9/2019 ore 09:00 lab 2.2
[Voti]
[Soluzioni esercizi di programmazione] [Commenti]
Sessione invernale (Gennaio-Febbraio 2020)
I mercoledì 15/1/2020 ore 09:00 lab 2.2
[Voti]
[Soluzioni esercizi di programmazione] [Commenti]
II mercoledì 5/2/2020 ore 09:00 10:00 lab 2.2 [Cambio ora]
È obbligatoria l'iscrizione tramite AlmaEsami

Materiale per la preparazione dell'esame

Gli esercizi che seguono fanno riferimento agli anni precedenti; si presti attenzione al fatto che il programma è cambiato, per cui alcuni argomenti non vengono più trattati e vanno quindi ignorati.

Regole d'esame

  1. L'esame si svolge in laboratorio e ha la durata di due ore: istruzioni da seguire durante l'esame (che saranno distribuite insieme al testo degli esercizi).
  2. Per sostenere una prova d'esame è necessario essere iscritti alla lista su AlmaEsami. La lista chiude circa 7-10 giorni prima della data d'esame, per cui è necessario iscriversi per tempo. La configurazione dei PC del laboratorio in cui si svolge la prova richiede una procedura abbastanza complessa, basata sull'elenco di AlmaEsami. Tale procedura è fuori dal mio controllo; pertanto chi non risulta iscritto al momento della chiusura della lista non può essere ammesso all'esame, senza eccezioni.
  3. Il programma d'esame è sempre quello dell'anno accademico più recente in cui è stato tenuto il corso; questo vale sia per i nuovi studenti, sia per quelli immatricolati in anni precedenti.
  4. Come da regolamento di Ateneo, ci saranno 6 appelli d'esame: 3 nella sessione estiva (giugno-luglio), 1 nella sessione autunnale (settembre), e 2 nella sessione invernale dell'anno solare successivo (gennaio-febbraio). Non verranno effettuati altri appelli d'esame.
  5. L'esame si compone di domande di teoria ed esercizi di programmazione. La parte di teoria è costituita da sei quesiti, che possono essere a risposta aperta (da 0 a 4/3 di punto) oppure composti da quattro domande V/F (risposta corretta: 1/3; risposta errata: -1/3; risposta mancante: 0), per un totale variabile da -8 a 8 punti. La parte di programmazione è costituida da tre programmi in linguaggio C da completare/sviluppare, e comporta una valutazione totale che va da 0 a 24 punti (indicativamente: esercizio mancante o che non compila 0pt, esercizio che fallisce i test max 3pt, esercizio corretto ma inefficiente o incomprensibile o con parti ridondanti max 6pt, esercizio corretto con lievi imperfezioni max 7pt, esercizio corretto max 8pt; saranno possibili punteggi intermedi). Il voto finale è dato dalla somma del punteggio ottenuto nelle domande di teoria e negli esercizi di programmazione; si ottiene la sufficienza se si consegue una valutazione complessiva maggiore o uguale a 18/30.
  6. Gli esercizi di programmazione includono delle funzioni di test che devono essere intese come un aiuto per lo sviluppo. Come ampiamente spiegato a lezione, i test non sono esaustivi, quindi un programma che supera i test non è da considerare automaticamente corretto. Fa sempre fede la specifica del problema: un programma è corretto se e solo se rispetta completamente le specifiche date. È responsabilità di ciascuno verificare la correttezza di quanto consegnato, eventualmente aiutandosi con ulteriori casi di test.
  7. La prova d'esame è unica, e va sostenuta per intero. In altre parole, non è possibile svolgere solo la parte di teoria, oppure solo gli esercizi di programmazione.
  8. Durante l'esame non è consentito consultare alcun tipo di materiale, ad eccezione di quanto eventualmente messo a disposizione dei docenti al momento della prova.
  9. In caso di copiatura verranno ritirati e annullati i compiti di tutti gli studenti coinvolti (sia chi ha "copiato" sia chi ha "fatto copiare"); i casi di copiatura potranno essere rilevati anche dopo la conclusione dell'esame.
  10. Non c'è orale. Il docente si riserva però la facoltà di convocare gli studenti per chiarimenti (ad esempio, in casi di sospetta copiatura).
  11. I voti verranno pubblicati su AlmaEsami, e agli studenti verrà inviata comunicazione al proprio indirizzo mail istituzionale (@studio.unibo.it). Chi intende rifiutare un voto sufficiente dovrà darne comunicazione al docente entro la scadenza e con le modalità indicate nella mail di notifica (indicativamente, entro 7 giorni). In caso di rifiuto del voto verrà verbalizzato ritirato. Chi intende accettare il voto non dovrà fare nulla: tutti i voti non esplicitamente rifiutati verranno verbalizzati dopo la scadenza. Non si tengono voti in sospeso: chi intende ripresentarsi per migliorare il voto deve prima rifiutare il voto già conseguito.
  12. Tutti i voti sono sempre verbalizzati (inclusi respinto e ritirato), e resteranno permanentemente su AlmaEsami. Si noti però che i respinto e ritirato non concorrono al calcolo della media dei voti.
  13. L'esame è un momento amministrativo ufficiale, e va affrontato con la dovuta serietà: di conseguenza, chi si iscrive ad un esame è tenuto a presentarsi dopo aver studiato in modo adeguato. Chi non può presentarsi è pregato di cancellarsi (è possibile cancellarsi in qualsiasi momento, anche dopo la chiusura della lista).

Lezioni e laboratorio

I lucidi non sono da considerare come sostitutivi della frequenza alle lezioni. I lucidi potranno subire aggiornamenti: suggerisco di stamparli il più tardi possibile. I file in formato odp si leggono con LibreOffice; a meno che non siate interessati a modificarne il contenuto, consiglio di usare la versione PDF.

Lezioni e laboratorio
Data Ora Aula Argomento
Mer 20/2/2019 12:00—14:00 2.12 Introduzione al corso
[ODP] [PDF]
Lun 25/2/2019 11:00—13:00 2.12 Logica binaria (Dispensa cap. 1.1 e 2.1)
[ODP] [PDF]
Mar 26/2/2019 14:00—17:00 2.12 Rappresentazione dell'informazione (Dispensa cap. 1)
[ODP] [PDF]
Mer 27/2/2019 12:00—14:00 2.12 Architettura dei calcolatori (Dispensa cap. 2)
[ODP] [PDF]
Lun 4/3/2019 11:00—13:00 2.12 Algoritmi (Dispensa cap. 3.1)
[ODP] [PDF]
Mar 5/3/2019 14:00—17:00 2.12 Introduzione al linguaggio C (Libro cap. 2, dispensa cap 4.1)
[ODP] [PDF] [Esempi dai lucidi]
Mer 6/3/2019 13:00—15:30 (matr. pari)
15:30—18:00 (matr. dispari)
Lab 2.2 Prima esercitazione [Lab1.zip] oppure su [Insegnamenti Online]
Lun 11/3/2019 11:00—13:00 2.12 Tipi e valori
[ODP] [PDF] [Esempi dai lucidi]
Mar 12/3/2019 14:00—17:00 2.12 Espressioni
[ODP] [PDF] [Esempi dai lucidi]
Mer 13/3/2019 13:00—15:30 (matr. dispari)
15:30—18:00 (matr. pari)
Lab 2.2 Seconda esercitazione [Lab2.zip] oppure su [Insegnamenti Online]
Lun 18/3/2019 11:00—13:00 2.12 Strutture di controllo (Libro cap. 3 e 4)
[ODP] [PDF] [Esempi dai lucidi]
Mar 19/3/2019 14:00—17:00 2.12 Funzioni (Libro cap. 5)
[ODP] [PDF] [Esempi dai lucidi]
Gio 21/3/2019
Cambio data/ora
15:00—17:00 (matr. pari)
17:00—19:00 (matr. dispari)
Lab 2.2 Terza esercitazione [Lab3.zip] oppure su [Insegnamenti Online]
Lun 25/3/2019 11:00—13:00 2.12 Funzioni (cont.)
Mar 26/3/2019 14:00—17:00 2.12 Array (Libro cap. 6)
[ODP] [PDF] [Note scritte alla lavagna] [Esempi dai lucidi]
Mer 27/3/2019 13:00—15:30 (matr. dispari)
15:30—18:00 (matr. pari)
Lab 2.2 Quarta esercitazione [Lab4.zip] oppure su [Insegnamenti Online]
Lun 1/4/2019 11:00—13:00 2.12 Array (cont.)
Algoritmi su array
[ODP] [PDF] [Note scritte alla lavagna] [Esempi dai lucidi]
Mar 2/4/2019 14:00—17:00 2.12 Algoritmi su array (cont.)
[Note scritte alla lavagna]
Mer 3/4/2019
13:00—15:30 (matr. pari) Lab 2.2 Quinta esercitazione [Lab5.zip] oppure su [Insegnamenti Online]
Gio 4/4/2019
Cambio data/ora
15:00—17:30 (matr. dispari) Lab 2.2 Quinta esercitazione [Lab5.zip] oppure su [Insegnamenti Online]
Lun 8/4/2019 11:00—13:00 2.12 Algoritmi su array (cont.)
[Note scritte alla lavagna]
Mar 9/4/2019 14:00—17:00 2.12 Array e puntatori (Libro cap. 7, 8.1, 8.2)
[ODP] [PDF] [Note scritte alla lavagna] [Esempi dai lucidi]
Mer 10/4/2019 13:00—15:30 (matr. dispari)
15:30—18:00 (matr. pari)
Lab 2.2 Simulazione d'esame [Lab6-simulazione-esame.zip] oppure su [Insegnamenti Online]
Lun 15/4/2019 11:00—13:00 2.12 Array e puntatori (cont.)
[Note scritte alla lavagna]
Mar 16/4/2019 14:00—17:00 2.12 Ricorsione (Libro cap. 5 da 5.14 in poi)
[ODP] [PDF] [Note scritte alla lavagna] [Esempi dai lucidi]
Video di un mio intervento su frattali e strutture ricorsive in natura
Mer 17/4/2019 13:00—15:30 (matr. pari)
15:30—18:00 (matr. dispari)
Lab 2.2 Settima esercitazione [Lab7.zip] oppure su [Insegnamenti Online]
Lun 22/4/2019 Vacanze di Pasqua
Mar 23/4/2019 Vacanze di Pasqua
Mer 24/4/2019 Vacanze di Pasqua
Lun 29/4/2019 11:00—13:00 2.12 Ricorsione (cont.)
[Note scritte alla lavagna]
Mar 30/4/2019 14:00—17:00 2.12 Linguaggio C: Strutture (Libro cap. 10 da 10.1 a 10.5 inclusi, cap. 12 da 12.1 a 12.4 inclusi)
[ODP] [PDF] [Note scritte alla lavagna] [Esempi dai lucidi]
Mer 1/5/2019 Primo Maggio
Lun 6/5/2019 11:00—13:00 2.12 Linguaggio C: Strutture (cont.)
[Note scritte alla lavagna]
Mar 7/5/2019 14:00—17:00 2.12 Invarianti (Dispensa cap. 3.2)
[ODP] [PDF] [Note scritte alla lavagna]
Per chi volesse approfondire (attenzione, è un articolo piuttosto tecnico che va al di là del livello base di questo corso)
Mer 8/5/2019 13:00—15:30 (matr. dispari)
15:30—18:00 (matr. pari)
Lab 2.2 Ottava esercitazione [Lab8.zip] oppure su [Insegnamenti Online]
Lun 13/5/2019 11:00—13:00 2.12 Reti di calcolatori
[ODP] [PDF] [Note scritte alla lavagna]
Mar 14/5/2019 Lezione annullata causa maltempo
Mer 15/5/2019 13:00—15:30 (matr. pari)
15:30—18:00 (matr. dispari)
Lab 2.2 Nona esercitazione [Lab9.zip] oppure su [Insegnamenti Online]
Lun 20/5/2019 11:00—13:00 2.12 Sicurezza e crittografia (Dispensa cap. 5)
[ODP] [PDF]
Mar 21/5/2019 14:00—17:00 2.12 Teoria della calcolabilità e Macchine di Turing (Dispensa cap. 6)
Ultima lezione in aula
[ODP] [PDF]
Altre risorse per chi vuole approfondire:
Mer 22/5/2019 13:00—15:30 (matr. dispari)
15:30—18:00 (matr. pari)
Lab 2.2 Decima esercitazione [Lab10.zip] oppure su [Insegnamenti Online]
Mer 29/5/2019 13:00—15:30 (matr. pari)
15:30—18:00 (matr. dispari)
Lab 2.2 Undicesima esercitazione [Lab11.zip] oppure su [Insegnamenti Online]
Mer 5/6/2019 13:00—15:30 (matr. dispari)
15:30—18:00 (matr. pari)
Lab 2.2 Simulazione d'esame [Lab12-simulazione-esame.zip] oppure su [Insegnamenti Online]
This page validates as XHTML 1.0 strict This page validates as CSS Check the accessibility of this page with WAVE
This page was last updated on January 22 2020 informativa sulla privacy