Algoritmi (modulo di laboratorio)

Orari e aule


Le lezioni si tengono presso il Dipartimento di Matematica

  • mercoledì dalle 10.30 alle 13.30 in Aula 2
  • giovedì dalle 15.30 alle 18.30 in Aula 2
e in teledidattica su Zoom (aula virtuale Z4) all'indirizzo indicato nel sito Ariel del corso.

Materiali e lucidi delle lezioni di laboratorio saranno caricati su questa pagina, il cui indirizzo è riportato anche nel sito Ariel.

Sul sito Ariel è infine attivo un forum per porre domande sulle lezioni e sui materiali. Questo non impedisce di contattarmi attraverso l'e-mail, che ha il vantaggio di arrivare subito.

Esame


L'esame si compone di

  1. un progetto pratico
  2. un esame orale sugli argomenti del corso

Il testo del progetto pratico verrà pubblicato su questa pagina prima di ciascun appello e richiederà di

  • modellare un problema
  • progettare uno o più algoritmi per risolverlo
  • realizzare codice C per eseguire gli algoritmi
  • stendere una relazione riassuntiva

L'esame orale è subordinato al superamento del progetto.

Si consiglia di scorrere le indicazioni utili prima di mettersi al lavoro (aggiornate il 26 dicembre 2021).


Avviso: per ragioni di equità e per limitare le interferenze con gli esami orali, la valutazione del progetto avviene sempre nell'appello in cui esso viene presentato, anche per gli studenti che intendono rimandare l'orale ad appelli successivi. Conviene registrarsi sia all'appello in cui si consegna il progetto sia a quello in cui si intende sostenere l'orale, per poter ricevere la notifica del risultato del progetto tramite la piattaforma di ateneo.

Progetto di febbraio 2023

Codice e relazione riassuntiva vanno spediti entro domenica 12 febbraio 2023 (compresa).
Segnalazioni di errori e oscurità nel testo del progetto o di errori nelle soluzioni sono gradite.

Progetto di gennaio 2023

Codice e relazione riassuntiva vanno spediti entro lunedì 16 gennaio 2023 (compreso).
Segnalazioni di errori e oscurità nel testo del progetto o di errori nelle soluzioni sono gradite.

Progetto di novembre 2022

Codice e relazione riassuntiva vanno spediti entro martedì 8 novembre 2021 (compreso).
Segnalazioni di errori e oscurità nel testo del progetto o di errori nelle soluzioni sono gradite.

Progetto di settembre 2022

Codice e relazione riassuntiva vanno spediti entro martedì 13 settembre 2022 (compreso).
Segnalazioni di errori e oscurità nel testo del progetto o di errori nelle soluzioni sono gradite.

Progetto di luglio 2022

Codice e relazione riassuntiva vanno spediti entro lunedì 11 luglio 2022 (compreso).
Segnalazioni di errori e oscurità nel testo del progetto o di errori nelle soluzioni sono gradite.

Progetto di giugno 2022

Codice e relazione riassuntiva vanno spediti entro lunedì 13 giugno 2022 (compreso).
Segnalazioni di errori e oscurità nel testo del progetto o di errori nelle soluzioni sono gradite.

Lezioni


Nota: Segnalazioni di oscurità o errori nei materiali di questa pagina sono benvenute.

Nota: Per i materiali del modulo di teoria, si veda invece la pagina del prof. Goldwurm

Non sono in grado di indicare strumenti di laboratorio validi per tutti. In Linux, bastano il gcc presente in ogni installazione e un editor di testo qualsiasi. In Windows, io personalmente uso:

  • come terminale, la Windows PowerShell, che si apre dal menù File di EsploraFile
  • come ambiente di compilazione, Orwell Dev-Cpp, ignorando l'interfaccia grafica, e chiamando direttamente gcc da terminale dopo aver aggiunto al path di sistema la cartella che contiene l'eseguibile
  • come editor TextPad
Purtroppo, anche usando gcc, ci sono differenze (secondarie) tra le diverse versioni.

Potrebbe essere utile agli studenti sapere che quando valuterò i progetti d'esame, trattandosi di programmi un po' più sofisticati, userò Visual Studio Express 2019: lungi da me voler forzare un ambiente (men che meno pubblicizzarlo), ma negli anni passati ho osservato che questo è particolarmente pignolo nella compilazione ed esecuzione del codice, e spesso trova errori (errori oggettivi, non idiosincrasie) che altri ambienti non rilevano.

I materiali vengono via via rivisti, ed eventualmente corretti e integrati dopo ciascuna lezione. Le modifiche sono in genere minori, se non nulle. I materiali dello scorso anno sono già tutti disponibili a questo indirizzo e saranno probabilmente quasi identici ai nuovi.

Quello che segue è un calendario ipotetico delle lezioni, modificabile in base a imprevisti e informazioni di cui al momento non dispongo

Prima lezione (9 marzo 2022)

Seconda lezione (10 marzo 2022)

Terza lezione (16 marzo 2022)

Quarta lezione (17 marzo 2022)

Nota: Prima di stendere una relazione ispirandosi alle tracce fornite, si consultino su un dizionario le definizioni di schema e traccia e quelle di esempio e fac-simile, e si discutano con una persona di madre lingua italiana le differenze tra queste e quelle. Si mediti anche sulla distinzione tra i due tipi di traccia forniti in questa pagina: la "traccia di lezione", rivolta a studenti che stanno seguendo il corso di algoritmi e ripassando la programmazione in C, e la "traccia di relazione", rivolta a un lettore ideale che ha terminato entrambi i corsi.

Quinta lezione (23 marzo 2022)

Sesta lezione (24 marzo 2022)

Settima e ottava lezione (30 e 31 marzo 2022)

Nona e decima lezione (6 e 7 aprile 2022)

Undicesima lezione (13 aprile 2022)

Dodicesima lezione (21 aprile 2022)

Tredicesima lezione (27 aprile 2022)

Quattordicesima lezione (5 maggio 2022)

Quindicesima lezione (11 maggio 2022)

Sedicesima lezione (12 maggio 2022)