Created on 19 Mar 2019 ;    Modified on 20 Mar 2019 ;    Translationenglish

Unicam: il corso Complex Systems Design

Pensavo che sarebbe stato difficile, invece ... è stato proprio così: l'insegnamento di Complex Systems Design si è dimostrato un osso discretamente duro da rosicchiare.

Ma, andiamo con ordine.

Prima di tutto: vi ho detto che a Settembre 2018 mi sono iscritto alla Università degli Studi di Camerino, corso di Laurea Magistrale Computer Science? No? Beh, è proprio così.

Perché Camerino? Primo: perché una scorsa veloce ai curricula disponibili mi ha convinto più di quelli presentati da La Sapienza.

Secondo: mia nonna materna è originaria di un paese vicino Camerino, in cui ho passato lunghe vacanze estive durante la mia gioventù [1].

Terzo: anche per l'anno accademico 2018-19 l'Università non ha fatto pagare la retta ai propri studenti della Scuola di Scienze e Tecnologie [2].

Dato l'insieme dei motivi predetti, ho deciso di iscrivermi. Dopo di che, mi sono andato a cercare l'insegnamento che ritenevo più sfidante [3].

L'Inglese, direte voi. Sì, concordo, è la mia spina nel fianco. Però in questo ambito stiamo parlando di Computer Science! Prendiamo qualcosa di più attinente.

Osservando i contenuti degli insegnamenti, mi sono imbattuto nell'obbligatorio Complex Systems Design, tenuto dal prof. Flavio Corradini. Un veloce approfondimento dei contenuti per poco non mi ha convinto a rinunciare subito.

Perché? Dobbiamo fare un salto indietro di qualche decennio e tornare al periodo in cui incoscientemente frequentavo all'Università La Sapienza i primi anni del corso di Laurea in Ingegneria Nucleare.

In quel periodo assorbivo insegnamenti di matematica e fisica dei tipi più disparati, districandomi discretamente. Ma vi era un esamino intitolato Geometria 2, indirizzo algebra astratta [4], che mi era rimasto di traverso. Un'occhiata al contenuto del libro di testo mi aveva convinto che quella roba non aveva nulla a che fare con le varie Analisi 1 e 2, Geometria 1, Meccanica razionale, Complementi di Matematica e Analisi Numerica con cui avevo avuto a che fare.

D'altro canto dovevo fare assolutamente spazio a qualche esame di informatica che mi interessava di più e non era previsto nel piano di studi standard.

Risultato: sostituii Geometria 2, indirizzo algebra astratta con un esame di informatica.

Bene, indovinate un po' se dopo tanti anni la Nemesi non doveva colpire il sottoscritto resuscitando i concetti di Algebra Astratta?

Tipo di contenuto

E così arriviamo ai contenuti del corso. Complex Systems Design studia l'applicazione di una particolare branca dell'algebra, detta Process Algebra, per studiare e modellare il comportamento di sistemi reattivi, ovvero sistemi tipicamente formati da più componenti, che interagiscono tra loro e reagiscono a comandi che provengono dall'esterno.

Se vuoi consultare in un certo dettaglio il contenuto delle lezioni di questo anno accademico, puoi leggere questi appunti delle lezioni di Complex Systems Design.

Se ti accontenti di un elenco macroscopico di voci, eccolo qui di seguito:

  • espressioni regolari (già, non solo sono utili per fare ricerche di pattern nei testi, oltretutto si possono usare per descrivere sistemi complessi);
  • bisimulazione;
  • a Calculus of Communicating Systems (CCS);
  • esempi di sistemi:
    • producer consumer;
    • FIFO buffer;
    • PIPE buffer;
    • BUFF buffer;
  • cenni di model checking.

Inoltre per fare l'esame, è necessario sviluppare un progetto, usualmente in gruppo, e scelto fra quelli indicati da realtà produttive, che li propongono alla docenza.

In casi particolari, ad esempio per studenti fuori sede, è possibile proporre autononomamente progetti al professore, purché attinenti la materia d'insegnamento.

Il progetto scelto viene sviluppato dal gruppo di lavoro con la supervisione di un tutor designato dalla società che lo ha proposto. Il professore controlla lo stato di avanzamento, usualmente una volta a settimana.

L'esame prevede una presentazione e discussione del progetto, ed eventualmente qualche domanda relativa alle lezioni dell'insegnamento.

Osservazioni

Come avrete capito ho dovuto fare un notevole sforzo per appropriarmi dei concetti di base di Algebra Astratta, di cui ero carente.

L'altro notevole sforzo è stato capire come utilizzare nell'ambito della progettazione dei sistemi software gli strumenti teorici messi a disposizione dall'insegnamento. Ho compiuto solo i primi passi in questa direzione, ma devo dire che sono stati interessanti, anche se sfidanti.

Notevoli tre aspetti che mi hanno colpito.

Prima di tutto il Prof.Corradini ha uno stile d'insegnamento decisamente interessante. Mescola la teoria con osservazioni di vita relativa ai personaggi che hanno costruito l'algebra dei processi, creando una atmosfera che tende a coinvolgere lo studente.

Secondo. Il fatto che i progetti siano normalmente proposti da società, crea per gli studenti l'opportunità di respirare un po' di clima aziendale. Per non parlare del legame tra Università ed Aziende, che in Germania è uno dei punti di forza.

Terzo. Le lezioni sono state trasmesse in streaming su Internet. Detto tra noi, senza questa feature non avrei mai potuto dare questo esame: ho seguito le lezioni da Roma.

Certo con il WEB streaming qualche problema di connessione c'è stato. Inoltre, in particolare, spesso la ripresa video del foglio su cui il professore scriveva era sfuocata, dando luogo a qualche problema "interpretativo" :-). Comunque complessivamente il tutto alla fine ha funzionato in modo sufficiente.

Conclusione

Un corso impegnativo, che deve essere affrontato obbligatoriamente da chi sceglie un qualunque curriculum del corso di Laurea Magistrale di Computer Science a Camerino.

Devo dire che osservare l'uso dell'algebra nel contesto della progettazione di sistemi reattivi da un lato mi ha sorpreso, dall'altro come tutte le cose nuove, mi ha enormemente interessato. E avere la sensazione di apprendere cose nuove mi lascia sempre soddisfatto: dopamina al lavoro :-).

Un ringraziamento al prof.Corradini, che si è speso nel diffondere i concetti, cercando anche di approcciarli da angolature diverse. E per la pazienza dimostrata nell'ascoltarmi durante l'esame, nonostante il mio pessimo inglese.

A proposito di esame. Certo, essere l'unico matusalemme in mezzo ad una marea di ventenni lascia un po' spaesati. D'altro canto è giocoforza accettare il fatto che ormai viviamo in un mondo in cui la fase di istruzione è permanente. Non ci si può fermare pensando che quel che si è imparato a vent'anni basterà per il resto della vita.

Infine, ancora una volta, c'è l'avvertimento che dovete conoscere l'inglese in modo discreto.

Questa è la lingua ufficiale di tutto il corso di laurea: le lezioni sono usualmente in inglese, così come gli esami. E qui non vi sono i transcript a salvarci la vita :-).


[1]Per i curiosi: il paese in questione si chiama Sefro, e dista circa 20 km da Camerino.
[2]Il pagamento della retta è stato temporaneamente sospeso a causa delle disastrose condizioni di Camerino dopo le scosse di terremoto del 2016. La ricostruzione è in corso, ma i danni sono stati veramente notevoli. Nel frattempo l'Università ha deciso di contrastare la prevedibile fuga di studenti abbattendo per alcuni anni le tasse d'iscrizione.
[3]Coerente con la mia filosofia di vita: parti dagli ostacoli più alti, superati quelli, il resto è strada in discesa.
[4]Ai miei tempi (mi sento un po' nonno, anche se non ho nipoti) gli esami erano suddivisi in annuali (questi erano gli esami veri) e in semestrali. E questi erano gli esamini. In teoria avrebbero dovuto avere un contenuto didattico pari alla metà di un annuale. In pratica solitamente valevano un carico di studio pari ad almeno i due terzi di un annuale, se non di più.