Fondamenti di Informatica 2021/2022
by Tullio Facchinetti
Comunicazioni
Informazioni e news (in ordine cronologico inverso):
- [2022-04-12] La lezione di giovedì 28 Aprile 2022 non si terrà a causa di un impegno dell’organizzazione di una conferenza internazionale. La lezione verrà recuperata verso fine semestre in caso di necessità.
- [2022-03-29] Sulla base della comunicazione del Preside Di Facoltà del 24/3, le lezioni di Fondamenti di Informatica inizieranno alle ore 9:00 e non più alle ore 9:30.
- [2022-03-11] I tutorati avranno inizio a partire da Venerdì 25 Marzo 2022.
- [2022-02-25] E’ previsto lo scambio della lezione di Fondamenti di Informatica di giovedì 10/3 (ore 9-11) con quella di Analisi Matematica 2 di venerdì 11/3 (ore 11-13). Questo significa che giovedì 10/3 (ore 9-11) si terrà la lezione di Analisi Matematica 2 mentre venerdì 11/3 (ore 11-13) si terrà la lezione di Fondamenti di Informatica.
Informazioni sul corso
Il corso di Fondamenti di Informatica, relativamente alla parte di programmazione, sarà tenuto dal sottoscritto, Prof. Tullio Facchinetti.
Consiglio di visitare periodicamente il sito del corso, in quanto saranno esposte comunicazioni straordinarie e avvisi vari.
Per ulteriori informazioni e comunicazioni, posso essere contattato all’indirizzo tullio.facchinetti@unipv.it.
per contattarmi tramite e-mail, specificare chiaramente nome, cognome, numero di matricola, anno di iscrizione e corso di riferimento. Dal momento che tengo vari corsi, e molti altri ho tenuto negli anni scorsi, l’indicazione del corso è particolarmente utile.
IMPORTANTE: Il materiale che verrà utilizzato nelle lezioni a distanza sul linguaggio C segue in modo fedele il contenuto del libro di testo. Si raccomanda vivamente di avere a disposizione una copia del testo, in modo da poter rileggere e approfondire gli argomenti che verranno trattati a lezione.
Orari
L’orario per il secondo semestre dell’anno accademico 2021/22 è il seguente:
- martedì 09:00 - 11:00, aula EF1 (lezione in presenza)
- giovedì 09:00 - 11:00, aula EF1 (lezione in presenza)
Tutorato/esercitazioni
Il tutorato normalmente viene svolto con due modalità: presso le aule didattiche di informatica C2-C3 e in forma remota. I tutorati sono organizzati in turni, in modo che ciascun studente possa fruire di 2 ore di tutorato alla settimana.
I tutorati in aula si svolgeranno con il seguente partizionamento:
- venerdì 14:00 - 16:00 - studenti con cognome A-L (compresi)
- venerdì 16:00 - 18:00 - studenti con cognome M-Z (compresi)
I tutorati remoti saranno svolti nei seguenti orari:
- Lunedì ore 20:30 - 21:30
- Giovedì ore 20:30 - 21:30
Il link alla stanza Zoom sarà disponibile (o lo è già, a seconda di quando viene letto questo testo) nella pagina Kiro privata del corso di Fondamenti di Informatica.
Il programma previsto per i tutorati è il seguente:
- Venerdì 25 Marzo : Comandi UNIX e utilizzo della shell
- Venerdì 1 Aprile : Hello world e compilazione
- Venerdì 8 Aprile : Costrutti di controllo e verifica automatica
- Venerdì 22 Aprile : Vettori
- Venerdì 29 Aprile : Funzioni
- Venerdì 6 Maggio : Stringhe
- Venerdì 13 Maggio : Struct
- Venerdì 20 Maggio : File
- Venerdì 27 Maggio : Allocazione dinamica e puntatori
- Venerdì 10 Giugno : Ricerca e ordinamento
- Venerdì 17 Giugno : Tema d’esame
Gli orari di tutorato sono da intendersi come uno spazio per il chiarimento di dubbi riguardo allo svolgimento degli esercizi. Si richiede che gli studenti cerchino di risolvere in autonomia gli esercizi proposti, e che riservino il tempo del tutorato online alla richiesta di chiarimenti. Negli slot assegnati è prevista assistenza in tempo reale da parte dei tutori. Non è escluso che i chiarimenti possano essere forniti anche al di fuori dell’orario previsto, ma in quel caso non è garantita una risposta in tempo reale.
Ogni settimana, il docente fornirà indicazioni su quali esercizi dovranno essere svolti per la settimana successiva.
Sono disponibili le informazioni sulle modalità di svolgimento del tutorato e alla configurazione degli strumenti necessari.
Informazioni sull’esame
IMPORTANTE: come da regolamento di Ateneo, gli esami si svolgono in presenza, a meno di motivate circostanze che devono essere comunicate tempestivamente al docente tramite email.
La parte di esame del Prof. Facchinetti consiste in una prova pratica di programmazione e in una prova di teoria della programmazione.
Prova pratica di programmazione
Per quanto riguarda la prova pratica:
- viene normalmente svolta presso le aule didattiche di informatica (C2-C3-B1-B2, ecc.);
- c’è la possibilità di svolgere la prova da remoto in caso di necessità;
- in entrambi i casi viene utilizzata la piattaforma piattaforma SSHCode; assicurarsi di avere le credenziali in vista dell’esame; in caso di necessità, le credenziali possono essere richieste seguendo queste istruzioni;
- la modalità di svolgimento in remoto avviene con monitoraggio ambientale tramite proprio smartphone e uso del proprio PC; linee guida complete verranno fornite una volta chiuse le iscrizioni (non non c’è niente di soprendente da aspettarsi)
- la prova prevede la soluzione di un problema attraverso la realizzazione di un programma in linguaggio C;
- la durata della prova pratica è di 3 ore;
- durante la prova è possibile utilizzare gli appunti e il libro di testo, ma non l’eserciziario e altri documenti contenenti esercizi risolti;
- non è possibile fruire dell’accesso alla rete Internet ne’ utilizzare cellulari e smartphone; è invece possibile consultare il manuale delle funzioni del linguaggio utilizzando il comando
man
da terminale;
Verifica di corretta iscrizione alla prova di programmazione
La partecipazione alla prova pratica richiede la creazione di un account d’esame sulla piattaforma SSHCode da parte del docente. Questo non può essere fatto al momento dell’ammissione all’esame in aula o da remoto, ma deve essere fatto per tempo.
PERTANTO….
Per evitare disguidi al momento dell’ammissione all’esame, in seguito all’iscrizione verrà inviata una email di promemoria a tutti gli iscritti come conferma di corretta iscrizione all’esame, contenente le credenziali.
Se non dovesse ricevere l’email entro la sera precedente la data dell’esame, non più tardi delle ore 19:00, va informato prontamente il docente via email in quanto potrebbero essersi verificati dei problemi durante l’iscrizione su Esse3.
L’email non viene inviata automaticamente ne’ immediatamente in seguito all’iscrizione, ma viene inviata dal docente una volta espletate le procedure per la preparazione dell’ambiente d’esame. Attenda quindi al più tardi l’orario sopra indicato prima di contattare il docente.
Prova di teoria della programmazione
Per quanto riguarda la prova di teoria della programmazione:
- viene normalmente svolta presso le aule didattiche di informatica (C2-C3-B1-B2, ecc.);
- c’è la possibilità di indicare l’opzione di svolgere la prova da remoto in caso di necessità;
- viene svolta tramite Kirotesting, sia in aula che da remoto;
- la durata della prova è di circa 2 ore;
- consiste in domande sulla parte di corso tenuta dal Prof. Facchinetti, inclusi i comandi UNIX, i flowchart, e il linguaggio C;
Il voto complessivo della parte di corso relativa alla progammazione è la media tra il voto della parte pratica e di quella della teoria della programmazione (pesi 2/3 e 1/3 rispettivamente).
Il voto complessivo dell’esame di Fondamenti di Informatica è pertanto composto da 3 parti: 1) la prova pratica di programmazione 2) la prova di teoria della programmazione (Facchinetti) e 3) la prova teorica di Danese. Le tre prove si possono sostenere in qualsiasi momento, indipendentemente l’una dall’altra. Il risultato di una prova già superata rimane valido per 1 anno. Se una prova già superata viene sostenuta nuovamente, ad es. per migliorare il risultato precedente, tale risultato precedente viene annullato, anche se il voto più recente è insufficiente.
Il voto finale dell’esame è la media tra il voto acquisito per la parte teorica (Prof. Danese) e per la parte del Prof. Facchinetti.
Materiale didattico
Il testo adottato è Facchinetti, Larizza, Rubini, Programmare in C - Concetti base e tecniche avanzate, Apogeo Editore, 2015.
Parte del materiale, in particolare quello relativo all’introduzione, ai flowchart e ai comandi UNIX, è disponibile come slide scaricabili da questo sito, mentre tutto il materiale sul linguaggio C è invece contenuto nel libro di testo (le slide presentate durante il corso non sono pubblicamente disponibili).
Le slide disponibili sono le seguenti (viene indicata la data di ultimo aggiornamento):
- [09/03/2021] Introduzione : introduzione al corso; problemi, algoritmi, programmazione; errori nella programmazione; classificazione dei linguaggi di programmazione; breve storia del C;
- [15/03/2022] Comandi UNIX : comandi UNIX; la shell; il prompt; filesystem, file e directory; i comandi echo, cat, pwd, man e ls; manipolazione di directory: cd, mkdir, rmdir; manipolazione di file: cp, mv, rm; wildcard;
- [19/01/2015] Programmazione strutturata e flowchart : algoritmi e programmi, concetti di equivalenza, teorema di Jacopini-Bohm, diagrammi a blocchi, esempi di flowchart non strutturati, duplicazione dei blocchi per passare a flowchart di tipo strutturato, pseudo-codice.
In questa pagina si trovano vari screencast con esempi relativi ai comandi UNIX utilizzati in tempo reale.
Per facilitare le esercitazioni sugli argomenti del corso, è disponibile la piattaforma SSHCode. Le credenziali per accedere alla piattaforma SSHCode vengono inviate via email.
Materiale per tutorati
È disponibile un eserciziario contenente il materiale adatto ad affrontare la prova pratica di programmazione:
- Programmazione in linguaggio C - Problemi e temi svolti, C. Cusano, T. Facchinetti, C. Larizza, E. Losiouk, D. De Martini, A. Tramonte, Medea Edizioni, 2015.
Sono disponibili i seguenti esercizi, che vengono svolti durante il tutorato:
Infine, il materiale utilizzato durante i tutorati in aula informatica e per il tutorato remoto è pubblicamente disponibile a questo indirizzo.
Risultati degli esami
- I risultati delle prove teoriche sono/saranno disponibili alla pagina gestita dal Prof. Gianni Danese.
- I risultati delle prove di programmazione sono/saranno disponibili alla pagina dedicata
Link utili
- Homepage del Laboratorio di Robotica.