Diarium Neminis

Soltanto chi è abbastanza folle da pensare di poter cambiare il mondo, lo cambia davvero

L’Open Source nel mio CdL

Recentemente c’è stato un gran rumoreggiare intorno alla fondazione CRUI (Conferenza dei Rettori delle Università Italiane), che prima ha creato scalpore e polemiche consigliando Windows e software proprietario nelle università, per poi ritornare sui propri passi, grazie alla mobilitazione dei sostenitori (tra i quali molti docenti universitari) dell’Open Source, tra cui il LugROMA, che ha raccolto firme in una petizione.
Tutto questo trambusto mi ha spinto a scrivere questo post.
La cosa che contraddistingue il mio CdL (presso l’Università degli Studi di Napoli “Federico II”) è una certa propensione al software proprietario da parte dei ragazzi e del sistema informatico (e anche di alcuni docenti).
Molti di loro sono ancora legati a due concetti banali e falsi:

  • Open Source equivale a regalare il tuo codice ad altri che si arricchiranno al posto tuo
  • Linux (il Sistema Operativo Open Source più diffuso sui Desktop) è troppo difficile da usare

Entrambe le credenze sono false. Beh, forse la seconda lo è diventata recentemente. Fatto sta che Desktop come Gnome e KDE preconfigurati in distro come [K]Ubuntu o SuSE, sono ben facili da usare, sopratutto per quello che uno studente deve fare in laboratorio.

Proprio in favore del software libero, ho deciso di mostrare come ci sia una soluzione Open Source valida per ogni esame (che richieda prove pratiche) che c’è da sostenere nel mio Corso di Laurea in Informatica.

Premesse:

  • Sistema Operativo Open Source di riferimento: Linux (ma le soluzioni funzionano quasi certamente anche per i vari *BSD)
  • Gli esami che trovate di sotto non sono tutti quello del mio CdL (almeno per ora), ma quelli che rientrano nel mio piano di studi
  • Per quanto io appartenga al vecchio ordinamento, cercherò di far fede ai nomi degli esami usati dall’attuale ordinamento

Elenco degli esami

  • Programmazione I (modulo A e B)
    Compilatori: tra i tanti, consiglio fpc per il Pascal e, ovviamente, gcc per il C.
    Editor: VIM, eMacs.
    Ambiente di sviluppo integrati (IDE): Anjuta, KDevelop, Eclipse con CDT plugin.
  • Architettura degli Elaboratori I (modulo A e B)
    Strumenti EDA (strumenti di disegno elettronico): gEDA
    Alternative a Matlab: Octave, Scilab
  • Sistemi Operativi I e II
    Questi due esami (per quanto riguarda la parte di laboratorio) sono già incentrati sulla programmazione di sistema su Linux. Per gli strumenti (come Ambienti di sviluppo, etc.), si faccia riferimento all’esame di Programmazione I.
  • Linguaggi di Programmazione I
    Strumenti di modellazione UML: Umbrello, UMLet, ArgoUML.
  • Algoritmi e strutture dati I (modulo A e B)
    Compilatori: gcc
    Editor: VIM, eMacs.
    Ambiente di sviluppo integrati (IDE): Anjuta, KDevelop, Eclipse con CDT plugin.
  • Calcolo Numerico
    Compilatori: gcc
    Editor: VIM, eMacs.
    Ambiente di sviluppo integrati (IDE): Anjuta, KDevelop, Eclipse con CDT plugin.
    Ambienti per il calcolo matematico: Octave, Scilab
  • Programmazione ad Oggetti
    Compilatori: gcc
    Editor: VIM, eMacs.
    Ambiente di sviluppo integrati (IDE): Anjuta, KDevelop, Eclipse con CDT plugin.
  • Introduzione ai Compilatori
    Strumenti (analizzatori lessicali, sintattici, etc): Flex, Bison, AntLR
    Ambienti di sviluppo (IDE): Eclipse con AntLREclipse plugin (grazie a detronizator.org per la segnalazione ;))
  • Calcolo Parallelo e Distribuito
    Il corso è già basato su software Open Source. Gli strumenti usati nel corso sono MPI su Linux (in laboratorio è un cluster Beowulf, a casa se avete più di una macchina potete farne uno anche voi ;))
  • Interazione Uomo Macchina I
    Nel mio CdL questo corso è incentrato sulla creazione di interfacce per applicazioni Web. Quindi:
    Linguaggio di programmazione Web: PHP (consigliato il 5, se amate la OOP)
    Web Server: Apache
    DBMS (qualora serva): a scelta tra MySQL, PostgreSQL (il mio preferito), SQLite, etc.
    Ambienti di sviluppo: Eclipse con PHPEclipse plugin, Quanta.
    Libro consigliato: Interfacce a misura d’uomo, di Jef Raskin
  • Basi di dati e sistemi informativi I
    DBMS: MySQL, PostgreSQL (consigliato), Firebird
    Linguaggio per la creazione del Front-End applicativo: PHP, Python, Ruby, C, C++.
  • Linguaggi di Programmazione II
    Strumenti di modellazione UML: Umbrello, UMLet, ArgoUML.
    Ambienti di sviluppo (IDE): Eclipse
  • Interazione Uomo Macchina II
    Nonostante il nome, questo corso nel mio CdL non tratta di Interazione Uomo Macchina (-_-) ma di Programmazione ad Agenti.
    Framework per lo sviluppo ad Agenti: Jade
    Ambienti di sviluppo (IDE): Eclipse
  • Tecnlogie Web
    Soluzione 1: PHP + Apache + un DBMS di quelli già citati
    Soluzione 2: Java/JSP + Tomcat + un DBMS di quelli già citati
    Ambienti di sviluppo (IDE): Eclipse con plugin adeguati a seconda della soluzione.
  • Reti Neurali
    Dato che la maggior parte delle volte il progetto consta nella creazione di un Framework per Reti Neurali, potete scegliere il linguaggio e gli ambienti di sviluppo tra quelli più volte citati sopra, a vostro piacimento.
  • Calcolo scientifico
    Compilatori: gcc
    Librerie: Atlas (reimplementazione di BLAS e LaPack)
    Editor: VIM, eMacs.
    Ambiente di sviluppo integrati (IDE): Anjuta, KDevelop, Eclipse con CDT plugin.
    Ambienti per il calcolo matematico: Octave, Scilab
  • Sistemi operativi distribuiti
    Il corso si svolge incentrato su Linux e OpenMosix, quindi seguite le direttive del docente.
  • Ingegneria del software I
    Strumenti di modellazione UML: Umbrello, UMLet, ArgoUML.
  • Documentazioni e tesine
    Questo non è un esame, ovviamente :), ma sappiamo tutti che in un modo o in un altro ci troviamo a dover scrivere documentazioni e tesine.
    Generatori di documentazioni interne: Doxygen, un’estensione all’ennesima potenza di Javadoc, che supporta C++, C, Java, Objective-C, Python, IDL, PHP, C#, D.
    Editor: LyX (per chi ama LaTeX, ma vuole una soluzione veloce), OpenOffice.org (per chi è troppo legato ai software di Office Automation)

Questo è quanto.
Se qualche collega del mio CdL ha informazioni riguardo altri esami o semplicemente correzioni/aggiunte da fare a quanto già scritto, può scrivermi una email. ;)

2 Commenti

  1. [...] At neminis.org. [...]

  2. Mi permetto di segnalare una guida per l’uso di PSPICE sotto Linux usando Wine:
    http://www.gurutech.it/index.php?sel=pspice

    Io ho installato wine, i winetools (ottimi devo dire) e PSPICE é andato subito.
    Modificando anche leggermente i file di config come consigliato nella suddetta guida si fa funzionare anche il simulatore.

    Unico inconveniente, per me, é che tengo come linux-box un P3 600MHz ormai allo sfascio (e sopra ci gira Gnome 2.12 + un_mare_di_server) e quindi gira abbastanza lento (ma decente).

    Per i deb user, consiglio anche il repository di wine ufficiale per i deb: quì (http://www.winehq.com/site/download-deb) trovate tutto.

Il tuo commento