Fondamenti di Informatica 2020/2021
by Tullio Facchinetti
Comunicazioni
Informazioni e news (in ordine cronologico inverso):
[2021-06-29]
La sezione sulla modalità d’esame è stata aggiornata con gli aspetti relativi agli esami di luglio 2021.
[2021-04-12]
Sono stati rivisti i turni del tutorato per adeguarli alla frequenza mista in presenza e in remoto. La suddivisione in turni basata sull’iniziale del cognome non è più in vigore. I turni sono riorganizzati nel seguente modo: il turno di tutorato del venerdì dalle 14 alle 16 verrà svolto in presenza presso le aule C2-C3, mentre il turno dalle 16 alle 18 verrà svolto in remoto. Pertanto, ciascuno studente si presenti nel relativo turno a seconda della tipologia di frequenza.
[2021-03-09]
I tutorati di Fondamenti di Informatica, previsti da orario il venerdì pomeriggio dalle 14 alle 18, non si svolgeranno nelle prime due settimane di corso, in quanto non sono ancora stati presentati gli argomenti di esercitazione. Il primo tutorato è quindi previsto per venerdì 26 marzo 2021. Maggiori informazioni sul tutorato, come la suddivisione in turni e le stanze da utilizzare, saranno comunicate tramite la pagina web del corso e via email.
[2021-03-08]
Come da disposizioni dovute alle restrizioni COVID, il corso inizierà con lezioni soltanto in modalità remota.
Le informazioni per accedere alla stanza Zoom del corso sono disponibili nella pagina Kiro del corso (si accede da questa pagina); cercare “Fondamenti di Informatica 2020-21 Prof. Tullio Facchinetti”.
[2021-03-03]
E’ stata inviata l’email con le credenziali per l’accesso alla piattaforma SSHCode. Il soggetto dell’email è “[Fondamenti di Informatica] Credenziali per ambiente di programmazione SSHCode”. Se l’email non è stata ricevuta, contattare il docente. Prima di contattare il docente, cercare accuratamente tra le email per evitare una situazione di DDoS.
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 2020/21 è il seguente:
- martedì 09:00 - 11:00, aula EF3 (lezioni a distanza fino a nuovo ordine)
- giovedì 09:00 - 11:00, aula EF3 (lezioni a distanza fino a nuovo ordine)
Tutorato/esercitazioni
Il tutorato normalmente viene svolto con due modalità: presso le aule didattiche di informatica C2-C3 e in forma remota. La modalità in aula è al momento sospesa in vista degli sviluppi della crisi sanitaria. I tutorati sono organizzati in turni, in modo che ciascun studente possa fruire di 2 ore di tutorato alla settimana.
I tutorati si svolgeranno con il seguente partizionamento:
- venerdì 14:00 - 16:00, studenti che frequentano in presenza
- venerdì 16:00 - 18:00, studenti che frequentano in remoto
I seguenti tutorati sono aperti a tutti. L’interazione avverrà tramite Slack:
- lunedì dalle ore 20:30 alle ore 21:30
- martedì dalle ore 20:30 alle ore 21:30
Gli indirizzi per accedere alle stanze Zoom sono riportati nell’area riservata su Kiro.
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.
Vista la necessità di fruizione a distanza dei tutorati, viene suggerita la seguente modalità:
- il docente spiega i concetti di programmazione a lezione
- sempre a lezione, verrà indicata la consegna per l’esercitazione successiva
- da quel momento, lo studente è tenuto a cercare di sviluppare la soluzione autonomamente utilizzando l’ambiente di programmazione online SSHCode; il materiale sulle esercitazioni è disponibile a questo link, ed è stato concepito per permettere un lavoro sufficientemente autonomo
- negli orari dei tutorati, lo studente può collegarsi a Zoom, o al canale Slack dedicato all’esercitazione specifica, e chiedere aiuto ai tutori, i quali potranno rispondergli IN TEMPO REALE
- è possibile chiedere aiuto anche in orari diversi da quelli assegnati, e anche al di fuori degli orari di tutorato, ma in questo caso non viene garantita una risposta in tempo reale, ma al più tardi in corrispondenza del successivo turno di tutorato
Sono disponibili le informazioni sulle modalità di svolgimento del tutorato e alla configurazione degli strumenti necessari.
Informazioni sull’esame
IMPORTANTE: nel caso un cui si voglia modificare la propria preferenza per lo svolgimento dell’esame in presenza o in remoto, si tenga conto che il sistema di prenotazione Esse3 non permette di effettuare tale modifica in modo agevole (forse non lo permette proprio, ma non avendo credenziali da studente, non ho potuto verificarlo). Nel caso, sono tranquillamente disponibile a modificare manualmente le impostazioni. Chiedo però di farmi avere la richiesta via email DOPO LA CHIUSURA DELLE ISCRIZIONI (circa 2 giorni prima dell’esame), in modo da avere il quadro generale degli iscritti a disposizione.
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 è la solita, 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;
- [01/03/2016] 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.