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

Sul sito Ariel è 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.

A causa di pochi comportamenti scorretti, ho dovuto purtroppo burocratizzare l'esame. Prima di mettersi al lavoro, si consiglia di scorrere le indicazioni utili (aggiornate il 21 ottobre 2023).


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 lunedì 12 febbraio 2024 (compreso).
Segnalazioni di errori e oscurità nel testo del progetto o di errori nelle soluzioni sono gradite.

Progetto di gennaio 2024

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

Progetto di novembre 2023

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

Progetto di settembre 2023

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

Progetto di luglio 2023

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

Progetto di giugno 2023

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

Nota: Sono stati spediti 36 progetti, nuovo record storico. La valutazione per chi non ha chiesto un anticipo prima di spedirlo dovrebbe concludersi entro la fine del mese.

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.

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

Prima lezione (1 marzo 2023)

Seconda lezione (2 marzo 2023)

Terza lezione (8 marzo 2023)

Quarta lezione (9 marzo 2023)

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 (15 marzo 2023)

Sesta lezione (16 marzo 2023)

Settima e ottava lezione (22 e 23 marzo 2023)

Nona e decima lezione (29 e 30 marzo 2023)

Undicesima lezione (5 aprile 2023)

Dodicesima lezione (13 aprile 2023)

Tredicesima lezione (19 aprile 2023)

Quattordicesima lezione (20 aprile 2023)

Quindicesima lezione (10 maggio 2023)

Sedicesima lezione (11 maggio 2023)