Docente di Scienze e Tecnologie Informatiche

Consulente informatico

Novità

Benvenuto nella nuova versione del sito, se non sono ancora presenti tutte le informazioni precedentemente disponibili le si può recuperare tramite la vecchia versione.


I linguaggi di programmazione più usati.

Which Programming Languages Should You Learn in 2018? Si può avere una panoramica dei linguaggi di programmazione maggiormente utilizzati qui.

Un altro sito che dà una classifica dei linguaggi più utilizzati qui.

Su TIOBE la classifica mensile dei linguaggi di programmazione più utilizzati.


La scelta di studio dopo la scuola secondaria di secondo grado.

Sul sito del Censis la classifica delle università italiane edizione 2018/2019.

Anche sul sito de Il Sole 24 Ore è presente una guida alla scelta con l'indicazione delle migliori università.


La scelta di studio e il mercato del lavoro.

Sul sito de Il Sole 24 Ore è presente una guida ai profili professionali maggiormente richiesti.

Informatica

In questa pagina una raccolta di esercitazioni svolte e materiale vario.


A scuola usiamo Code::Blocks per la programmazione in C/C++ in terza e quarta TPSIT.

Usiamo invece NetBeans per la programmazione in Java in quarta e quinta TPSIT.

Io invece uso NetBeans sia per la programmazione in Java sia in C/C++ con compilatore Cygwin.

Usiamo Visual Studio per la programmazione in C# in Informatica.

Una valida alternativa a NetBeans può essere Eclipse sia come ambiente di sviluppo per Java ma anche per C/C++ e applicazioni web.


Informatica classe quarta, esercizio proposto in C#

Si gestiscano degli impegni (definiti con data nel formato yyyy/mm/dd, ora nel formato hh.mm, nota).
Si proponga un programma che permetta di gestire i dati:
1. aggiungere impegno;
2. eliminare impegno;
3. ordinare gli impegni per data.


TPSIT classe terza, Arduino, alfabeto Morse

Di seguito un esempio di come fare la codifica Morse, di una stringa letta dal monitor seriale di Arduino, tramite l'attivazione di un led (in questo caso un led rosso).
Il presente esempio può essere esteso, se si volessero infatti considerare le cifre e i simboli di punteggiatura si deve tener conto che il numero di componenti aumenta, quindi l'array utilizzato andrebbe modificato.

        
int ledrosso = 2;

String str;

void setup() {
  // put your setup code here, to run once:
  pinMode(ledrosso, OUTPUT);

  Serial.begin(9600);
}

void loop() {

   digitalWrite(ledrosso, 0);
  
   if (Serial.available() ) {
     str=Serial.readString();
     Serial.println(" DEBUG ******");
     Serial.println(str);
     Serial.println(str.length());

     // i caratteri hanno al massimo 4 componenti
     int var[]={1,2,3,4};
     
     if (str.length() > 0) {
       Serial.println("stringa valida");
       // inizio codifica Morse, carattere per carattere, il carattere di fine 
       // stringa non deve essere considerato, perciò metto str.length()-1
       for(int i=0; i<str.length()-1; i++) {
         Serial.println(str[i]);
         switch(str[i]) {
            case 'a': var[0]=300; var[1]=1000; var[2]=0; var[3]=0; break;
            case 'b': var[0]=1000; var[1]=300; var[2]=300; var[3]=300; break;
            case 'c': var[0]=1000; var[1]=300; var[2]=1000; var[3]=300; break;
            case 'd': var[0]=1000; var[1]=300; var[2]=300; var[3]=0; break;
            case 'e': var[0]=300; var[1]=0; var[2]=0; var[3]=0; break;
            case 'f': var[0]=300; var[1]=1000; var[2]=300; var[3]=300; break;
            case 'g': var[0]=1000; var[1]=1000; var[2]=300; var[3]=0; break;
            case 'h': var[0]=300; var[1]=300; var[2]=300; var[3]=300; break;
            case 'i': var[0]=300; var[1]=300; var[2]=0; var[3]=0; break;
            case 'j': var[0]=300; var[1]=1000; var[2]=1000; var[3]=1000; break;
            case 'k': var[0]=1000; var[1]=300; var[2]=1000; var[3]=0; break;
            case 'l': var[0]=300; var[1]=1000; var[2]=300; var[3]=300; break;
            case 'm': var[0]=1000; var[1]=1000; var[2]=0; var[3]=0; break;
            case 'n': var[0]=1000; var[1]=300; var[2]=0; var[3]=0; break;
            case 'o': var[0]=1000; var[1]=1000; var[2]=1000; var[3]=0; break;  
            case 'p': var[0]=300; var[1]=1000; var[2]=1000; var[3]=300; break;
            case 'q': var[0]=1000; var[1]=1000; var[2]=300; var[3]=1000; break;
            case 'r': var[0]=300; var[1]=1000; var[2]=300; var[3]=0; break;
            case 's': var[0]=300; var[1]=300; var[2]=300; var[3]=0; break;
            case 't': var[0]=1000; var[1]=0; var[2]=0; var[3]=0; break;
            case 'u': var[0]=300; var[1]=300; var[2]=1000; var[3]=0; break;
            case 'v': var[0]=300; var[1]=300; var[2]=300; var[3]=1000; break;
            case 'w': var[0]=300; var[1]=1000; var[2]=1000; var[3]=0; break;
            case 'x': var[0]=1000; var[1]=300; var[2]=300; var[3]=1000; break;
            case 'y': var[0]=1000; var[1]=300; var[2]=1000; var[3]=1000; break;
            case 'z': var[0]=1000; var[1]=1000; var[2]=300; var[3]=300; break;
         }
         
         for(int j=0; j<3; j++) {
          // controllo in quanto non tutti i caratteri hanno 4 componenti
          if (var[j] > 0) {
           digitalWrite(ledrosso, 1);
           delay(var[j]);
           digitalWrite(ledrosso, 0);
           delay(var[j]);
          }
         }
       }
     }
   }
 
}

        

TPSIT classe quarta, esercizio proposto in C

Si gestiscano i dati di N studenti, ogni studente è caratterizzato dai seguenti dati: nome, cognome, classe, sezione, anno di nascita, sesso, se è ripetente oppure no.
Si proponga un programma che permetta di introdurre i dati degli studenti e poi, con opportuni metodi, dia le seguenti informazioni:
1. percentuale dei ripetenti sul totale;
2. percentuale ripetenti per ogni classe;
3. numero delle classi presenti;
4. percentuale delle femmine sul totale;
5. indicazione della classe più numerosa;
6. indicazione della classe meno numerosa.


TPSIT classe quarta, esercizio proposto in C

Si consideri una figura giometrica formata da triangoli e quadrilateri regolari, inseriti i dati delle singole figure si calcoli l'area totale. Esercizio proposto in classe.

        
#define MAX 3 //costante

typedef struct figura {
  double base;
  double altezza;
  int tipo; // 0=triangolo, 1=quadrato/rettangolo
} t_figura;

// calcolo area della singola figura
double areafigura(t_figura a) {
    double ret = 0;
    
    switch (a.tipo) {
        case 0: ret = (a.base * a.altezza) / 2;
        break;
        case 1: ret = (a.base * a.altezza); 
        break;
    }
    
    return ret;
}

// calcolo area totale della figura
double areatotale(t_figura a[], int n) {
    double ret = 0;
    
    int i;
    for(i=0; i<n; i++) {
        ret += areafigura(a[i]);
    }
    
    return ret;
}

// main 
int main(int argc, char** argv) {

    t_figura lista[MAX] = {{3,4,0}, {3,4,0}, {6,6,1}};
    
    double area = areatotale(lista, MAX);
    
    printf("area totale = %f\n", area);

    return (EXIT_SUCCESS);
}

        


TPSIT classe quarta, esercizio proposto in C

Proponi un metodo con il seguente prototipo char lastchar(char *str) che restituisca l'ultimo carattere di una stringa.

        
char lastchar(char *str) {
    char c = *str;
    char val;
    while (c != '\0') { 
        val = c;
        printf("debug - ciclo %c\n", c);
        str++;
        c = *str;
    }
    return val;
}

        

Scuola

Orario di ricevimento settimanale: sospeso.

Coordinatore del consiglio di classe della 4D.

Archivio dei compiti

Compiti

In questa sezione l'elenco dei compiti somministrati.

Archivio delle classi

Classi

In questa sezione l'elenco delle classi.

Professione

Database

Generalmente utilizzo database Oracle, anche se recentemente ho avuto la possibilitá di utilizzare Microsoft SQL Server e mySql, progettando lo schema, definendo tabelle e relativi campi, gestendo viste, trigger, packages, stored procedure e stored function in PL/SQL, utilizzando job per la schedulazione di controlli ripetuti a scadenze fisse.

Java

Utilizzo Java (il linguaggio di programmazione che preferisco) per applicazioni gestionali e industriali con connessione a database Oracle/Microsoft SQL Server/mySql, con connessione socket e gestione invio e ricezione messaggi in rete; nonché per la creazione di librerie e lo sviluppo di web service Soap o Api Rest.

Android

Sviluppo applicazioni dedicate per smartphone con sistema operativo Android, con gestione invocazione web service, gestione mappa e localizzazione su mappa.

C/C++/C#

Dopo avere sviluppato e insegnato in C/C++ recentemente sono passato all'utilizzo di C# per applicazioni gestionali e industriali con connessione a database Oracle e/o Miscrosoft SQL Server, con connessione socket e gestione invio e ricezione messaggi in rete.

Web (Html/CSS/Javascript/PHP)

Sviluppo integrando html, css, php e javascript per applicazione web dedicate. Utilizzo la libreria JQuery per integrazioni javascript e l'invocazione di web service.

Pascal/Delphi

Ho sviluppato applicazioni in Pascal-Delphi gestionali e industriali, con connessione a database Oracle, con connessione socket e gestione invio e ricezione messaggi in rete.

Ruby on Rails

Una nuova giovinezza.

Contact Me