Algoritmi (modulo di laboratorio)

Orari e aule


Le lezioni si tengono

  • martedì dalle 15.30 alle 18.30 in aula 307 (settore didattico)
  • mercoledì dalle 10.30 alle 13.30 in aula 701 (via Colombo, 46)

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 richiede di scorrere le indicazioni utili (aggiornate nel dicembre 2024).

Segnalo un articolo in rete su strategie per il debugging del codice

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
Per la valutazione dei progetti userò strumenti più sofisticati, che spesso trovano errori (veri) che non vengono rilevati da altri strumenti.

I materiali vengono via via rivisti, ed eventualmente corretti e integrati dopo ciascuna lezione. Le modifiche sono in genere minori, se non nulle.

È disponibile un abbozzo di dispense tratto per sbobinatura dalle registrazioni del 2020. È in corso di revisione, per cui risulta prolisso e parzialmente datato, ma contiene molte osservazioni utili, in generale fornite a lezione, ma non riportate nelle slide.

Prima lezione (3 marzo 2026)

La lezione di laboratorio al mattino di mercoledì 4 marzo non avrà luogo.

Seconda lezione (10 marzo 2026)

Terza lezione (11 marzo 2026)

Quarta lezione (17 marzo 2026)

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 materiali sopra riportati: la "traccia di lezione", rivolta a studenti che stanno seguendo il corso di algoritmi e ripassando la programmazione in C, e lo "schema di relazione", rivolto a un lettore ideale che ha terminato entrambi i corsi.

Quinta lezione (18 marzo 2026)

Sesta lezione (24 marzo 2026)

Settima e ottava lezione (25 e 31 marzo 2026)

Nona e decima lezione (1 e 7 aprile 2026)

Undicesima lezione (8 aprile 2026)

Dodicesima lezione (14 aprile 2026)

Tredicesima lezione (15 aprile 2026)

Quattordicesima lezione (21 aprile 2026)

Nota: Ho modificato leggermente questa lezione. I materiali verranno aggiornati in seguito (prima i codici poi le dispense).

Quindicesima lezione (22 aprile 2026)

Sedicesima lezione (5 maggio 2026)