Salta al programma e libri di testo
Questa è la pagina del modulo di Laboratorio di Algoritmi e Strutture Dati, corso di laurea in Ingegneria e Scienze Informatiche, AA 2020/2021, Università di Bologna.
La parte di teoria è tenuta dai prof. Luciano Margara (classe A) e Vittorio Maniezzo (classe B). I tutor per il laboratorio sono:
Per seguire in modo proficuo le esercitazioni di laboratorio è necessario saper programmare (ragionevolmente bene) in linguaggio C: bisogna saper scrivere programmi di media lunghezza e sapere usare un compilatore/ambiente di sviluppo a propria scelta. In pratica, è necessario aver seguito il corso di Programmazione (possibilmente avendo anche superato l'esame).
Le esercitazioni di laboratorio si svolgeranno esclusivamente online. È necessario disporre di un computer su cui è installato l'ambiente di sviluppo che si vuole usare.
Il docente utilizzerà il compilatore gcc in ambiente Linux, ma gli esercizi possono essere svolti con qualunque altro ambiente di programmazione C che supporti lo standard C99 (ad esempio, Code::Blocks, Xcode, MS Visual Studio, ecc.)
Le esercitazioni si svolgeranno nel modo seguente: all'inizio di ogni lezione il docente farà una breve introduzione (20-30 minuti al massimo) sull'argomento trattato e i problemi da risolvere. Gli esercizi riguarderanno in generale quanto visto nelle lezioni di teoria (in certi casi potremmo dover anticipare argomenti trattati in lezioni di teoria successive); in ogni caso suggerisco di riguardare quanto fatto in aula prima di ogni laboratorio.
Durante i laboratori verranno forniti degli scheletri di programmi da completare; potranno essere forniti anche dei file di input oppure dei casi di test per verificare la presenza di errori (non la loro assenza!). A questo punto ciascuno completerà i programmi individualmente o in gruppo (purtroppo la modalit§à online non favorista le interazioni fra studenti che sarebbero molto utili). Il docente e i tutor saranno a disposizione per fornire suggerimenti e aiutare a risolvere i problemi.
Al termine di ogni laboratorio verranno fornite delle possibili soluzioni. Si tenga presente che in generale non esiste una unica soluzione "corretta", per cui soluzioni corrette ed efficienti alternative sono benvenute.
Il modulo di laboratorio non richiede alcun testo specifico; di seguito vengono suggeriti alcuni libri per chi voglia approfondire.
Classe B (prof. Maniezzo) | Giovedì 15:00—18:00, Online |
---|---|
Classe A (prof. Margara) | Venerdì 09:00—12:00, Online |
Salta al calendario delle lezioni
L'esame del modulo di laboratorio consiste nello svolgimento di un progetto che si compone di norma di 1-2 esercizi (dipende dal grado di difficoltà degli stessi); ciascun esercizio richiede la progettazione e realizzazione in linguaggio C (standard C99) di un algoritmo per risolvere un semplice problema, simile a quelli visti in laboratorio.
Le specifiche del progetto saranno assegnate alla fine del corso, dato che potranno riguardare anche gli ultimi argomenti trattati. Le specifiche resteranno le stesse per tutto l'Anno Accademico corrente (2020/2021).
Non verrà assegnato un voto, ma la consegna di un progetto corretto è condizione necessaria per accedere alla prova scritta. Nel caso di consegna insufficiente (uno o più programmi non funzionanti o gravemente inefficienti) sarà possibile modificare il proprio codice e riconsegnare. Si presti attenzione che in caso di riconsegna non è garantito che la correzione potrà essere effettuata in tempo per l'ammissione all'appello immediatamente successivo.
Tutte le consegne verranno confrontate con quelle già effettuate da altri studenti mediante appositi software antiplagio. Indici di similitudine troppo alti potranno produrre una valutazione insufficiente d'ufficio con conseguente necessità di consegnare un nuovo progetto riscritto da zero.
I programmi dovranno essere consegnati tramite la piattaforma Virtuale. Solo i programmi corretti ed efficienti consegnati almeno 10 giorni lavorativi prima della data di un appello d'esame consentono di sostenere la prova scritta in quell'appello e in tutti i successivi, anche di anni accademici diversi.
Nota: Il materiale didattico non sostituisce né dei libri né della frequenza di lezioni e laboratori. Il materiale sarà soggetto ad aggiornamenti periodici.
Data | Classe A (prof. Margara) [Teams] [Virtuale] | Classe B (prof. Maniezzo) [Teams] [Virtuale] |
---|---|---|
Gio 25/2 15:00 | Introduzione al corso [ODP] [PDF] vecsum.c Asserzioni e invarianti [ODP] [PDF] [Video parte 1] [Video parte 2] |
|
Ven 26/2 09:00 | Introduzione al corso [ODP] [PDF] vecsum.c Asserzioni e invarianti [ODP] [PDF] [Video parte 1] [Video parte 2] |
|
Gio 4/3 15:00 | Breve ripasso del linguaggio C [ODP] [PDF] [Video] |
|
Ven 5/3 09:00 | Breve ripasso del linguaggio C [ODP] [PDF] [Video] |