Algoritmi (modulo di laboratorio)

Orari e aule


Le lezioni si tengono presso il settore didattico

  • martedì dalle 15.30 alle 18.30 in Laboratorio Omega al primo piano del dipartimento di Informatica
  • mercoledì dalle 10.30 alle 13.30 in Laboratorio Omega al primo piano del dipartimento di Informatica

Avviso: la lezione di martedì 23 aprile sarà cancellata. Le lezioni di laboratorio riprenderanno regolarmente martedì 7 maggio dopo la pausa per gli esami.


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 il 21 ottobre 2023).


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.

Poiché quest'anno il corso ha 5 ore alla settimana anziché 6, molte lezioni cadranno a cavallo di più date. Quello che segue è solo un calendario approssimativo.

È disponibile un abbozzo di dispense tratto per sbobinatura dalle registrazioni del 2020. È incompleto (12 lezioni sulle 16 previste) e non è stato rivisto, per cui risulta prolisso e parzialmente datato.

Avviso: ho aggiornato il calendario per tener conto delle modifiche di orario. Qualche lezione di laboratorio potrebbe ancora essere sostituita da lezioni di teoria per ribilanciare i due moduli, spostando di conseguenza le altre in avanti.


Prima lezione (27 febbraio 2024)

Seconda lezione (28 febbraio 2024)

Terza e quinta lezione (29 febbraio e 6 marzo 2024)

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.

Quarta lezione (1 marzo 2024)

Sesta lezione (7 marzo 2024)

Settima e ottava lezione (13 e 14 marzo 2024)

Nona e decima lezione (20 e 21 marzo 2024)

Undicesima e dodicesima lezione (26 e 27 marzo 2024)

Tredicesima lezione (9 aprile 2024)

Quattordicesima lezione (10 aprile 2024)

Quindicesima lezione (16 aprile 2024)

Sedicesima lezione (17 aprile 2024)

Diciassettesima lezione (7 maggio 2024)

Diciottesima lezione (8 maggio 2024)