IEEE news ottobre 2012 Speciale Android Applicazioni in evidenza su Google Play Store 20,69 euro. Il dizionario ufficiale di Inglese di riferimento. Indispensabile. In 3 parti, 0,79 euro l’una. Preparati all’ECDL (patente europea del computer) a casa, spendendo 2,37 euro in tutto ! Olimpiadi di Informatica Risposte ai quesiti precedenti Quesito algoritmico Problema di assegnamento. Ci sono 4 progetti e 4 persone che li possono svolgere in un certo tempo. Sono dati i tempi di esecuzione per ogni progetto da parte di una persona. Si vuole minimizzare il tempo totale. I dati sono riassunti nella seguente tablella Progetto 1 2 3 4 Persona 1 Tempo = 1 4 6 3 2 9 7 10 9 3 4 5 11 7 4 8 7 8 5 Si utilizza l’algoritmo chiamato ‘Ungherese’ (Harold Kuhn, 1955). PERSONA 1 PROGETTO 1 COSTO 1 PERSONA 2 3 10 PERSONA 3 2 5 PERSONA 4 4 5 Costo totale 21 Quesito di programmazione (Java) Spiegare il frammento di programma import java.io.*; class ReadChars { public static void main(String args[]) throws IOException { char c; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter characters, period to quit."); // read characters do { c = (char) br.read(); System.out.println(c); } while(c != '.'); } } Risposta. Richiamiamo alcuni concetti sul linguaggio. Java nasce negli anni ’90 con la diffusione di Internet, come linguaggio per la rete. Eredita la sintassi del linguaggio C (e C++) in modo da facilitare l’apprendimento da parte dei programmatori. Si differenzia tuttavia dal C per 2 punti fondamentali: non usa i puntatori, cioè il meccanismo per accedere direttamente a qualunque indirizzo di memoria. È così meno flessibile ma più sicuro: non potrà mai mandare in crash il computer. Secondo, il compilatore Java (javac) non genera un codice macchina, ma il ‘byte code’, una sequenza di byte. In questo modo è meno veloce ed ottimizzato ma è portabile, può girare in Internet ed arrivare a qualsiasi computer con diversi sistemi operativi. Il PC che esegue il codice ha una Java Virtual Machine (JVM) che lo interpreta. Sarà questa a garantire la sicurezza. Oggi Java è il linguaggio numero 1 del mondo, C è al secondo posto. Veniamo al quesito proposto. Mentre l’uscita dei dati, cioè la visualizzazione, è semplice ed immediata, l’ingresso (input) è più complesso. Java, da linguaggio ultra sicuro e professionale, controlla che i dati che immettiamo non mandino in crisi il sistema, non siano spazzatura. Java quindi prevede le eccezioni. Se si tratta di un dato byte, il controllo è automatico. Se invece il dato in ingresso è un carattere, un intero, un numero con la virgola dobbiamo scrivere opportune istruzioni. Esistono fondamentalmente 2 modi: -throws come nel nostro caso e -try catch. Conviene creare una nuova classe Read e un buffer. Nuovi quesiti 1. Quesito di programmazione (medio) Spiegate il frammento di programma in Java: /* Input da tastiera */ import java.io.*; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; class Read { public static String readString() { br = new BufferedReader(new InputStreamReader(System.in)); try { _String = br.readLine(); } catch (IOException e) { System.out.println ("errore di flusso"); } return(_String); } public static int readInt() { br = new BufferedReader(new InputStreamReader(System.in)); try { _String = br.readLine(); _int = Integer.parseInt(_String); } catch (IOException e1) { System.out.println ("errore di flusso"); } catch (NumberFormatException e2) { System.out.println ("errore di input da tastiera"); return(0); } return(_int); } public static char readChar() { br = new BufferedReader(new InputStreamReader(System.in)); try { _String = br.readLine(); if (_String.length() > 1) throw new NumberFormatException(); _char = _String.charAt(0); } catch (IOException e1) { System.out.println ("errore di flusso"); } catch (NumberFormatException e2) { System.out.println ("errore di input da tastiera"); return(0); } return(_char); } public static float readFloat() { br = new BufferedReader(new InputStreamReader(System.in)); try { _String = br.readLine(); _float = Float.parseFloat(_String); } catch (IOException e1) { System.out.println ("errore di flusso"); } catch (NumberFormatException e2) { System.out.println ("errore di input da tastiera"); return(0); } return(_float); } public static double readDouble() { br = new BufferedReader(new InputStreamReader(System.in)); try { _String = br.readLine(); _double = Double.parseDouble(_String); } catch (IOException e1) { System.out.println ("errore di flusso"); } catch (NumberFormatException e2) { System.out.println ("errore di input da tastiera"); return(0); } return(_double); } private static BufferedReader br; private static String _String; private static int _int; private static char _char; private static float _float; private static double _double; } 2. Quesito logico matematco (medio) Filtro antispam. Si sa che una email ha il 50 % di probabilità a priori di essere SPAM. Si riceve un messaggio che contiene la parola ‘Viagra’. Sapendo che se la mail è spam e c’è ‘Viagra’ la probabilità di spam è il 90 % mentre se non è spam la probabilità è il 2 %, calcolare la probabilità condizionata che la posta contenente la parola ‘Viagra’ sia davvero spam (spazzatura). 3. Quesito logico matematico (medio) Una scuola ha il 45 % di studenti maschi e il 55 % femmine. Di queste il 75 % porta i calzoni e il 25 % la gonna (i maschi non portano gonne). Se un osservatore da lontano riesce vedere solo uno studente generico con i calzoni, qual è la probabilità che sia in realtà una studentessa ? Le risposte sul prossimo numero. I corsi universitari gratuiti su YouTube per imparare davvero Matematica, Ingegneria e Inglese MIT opencourseware, la prof. Christine Breiner ha colpito ancora Magica Christine Prof. Joel Lewis, MIT GeoGebra, un software gratuito per la Geometria Vent’anni fa l’ITIS Omar era il faro tecnologico per le scuole e l’intera città di Novara: per l’Informatica e Internet, e per la Matematica. Fra le tante iniziative, il CIDI (Centro di Iniziativa Democratica degli Insegnanti) di Novara, che aveva sede proprio all’Omar, organizzò un corso di aggiornamento sulla Matematica con oltre 100 partecipanti. Tennero memorabili interventi due glorie novaresi della Matematica: il professor Paolo Boieri e il professor Sandro Salsa, oggi professori ordinari famosissimi. Molto apprezzata fu anche la relazione del professor Ferdinando Arzarello, docente di ‘Matematiche elementari da un punto di vista superiore’ all’università di Torino. Arzarello torna oggi alla ribalta con un dossier del CIDI su ‘Insegnare matematica, oggi’. Secondo Arzarello, le competenze cui concorre lo studio della Matematica sono: esprimere adeguatamente informazioni, intuire e immaginare, risolvere e porsi problemi, progettare e costruire modelli di situazioni reali, operare scelte in condizioni di incertezza. Nel dossier vengono anche segnalati 2 software di Geometria: il già noto Cabrì (a pagamento) e GeoGebra, Geometria e Algebra, gratuito (Open Source). Ho scaricato e provato GeoGebra: è facile, ben documentato e utile. Lo consiglio. Da Olivetti tutto per la nuova scuola Olivetti ha presentato allo SMAU di Milano (17 – 19 ottobre) la gamma completa di prodotti per la scuola informatizzata, conformi ai requisiti del Ministero della Pubblica Istruzione. Oltre alla LIM (Lavagna Interattiva Multimediale) Oliboard, ci sono i nuovi tablet Android 4, Olipad 3 e Olipad graphos. Inoltre, è presente la nuova piattaforma Web Olischool che è integrabile con tutti i software di gestione già presenti nelle scuole: permette in piena sicurezza, di realizzare il registro elettronico che sarà obbligatorio dal prossimo anno scolastico. Olivetti ha già realizzato anche il Cloud Computing grazie al suo Internet Data Center. In questo modo saranno garantiti sempre l’aggiornamento e la manutenzione, senza dover comprare nuovo hardware e software. Olivetti Oliboard (LIM) I presidi novaresi che abbiamo contattato ci hanno detto che per il nuovo anno scolastico tutti i docenti delle loro scuole avranno questi tablet. Olivetti Olipad Graphos Olivetti Olipad 3 Nobel della fisica: verso il computer quantistico Contrariamente a quello che si potrebbe pensare, esistono ancora problemi, anche di enorme importanza pratica, che nessun computer, neanche il più potente, è in grado di risolvere in un tempo ragionevole. Non si sa a livello teorico se siano intrinsecamente intrattabili o si troverà l’algoritmo giusto. Uno di questi, il più famoso, è il problema del commesso viaggiatore che deve passare una e una sola volta in un certo numero di posti nel più breve tragitto possibile. Se le città sono molte, il tempo necessario per risolvere il problema esattamente, anche con un supercomputer, diventa di secoli, di millenni. Si può però dimostrare che il problema diventerebbe risolvibile con un computer quantistico. Questo è in grado di trattare contemporaneamente più dati, e quindi nel caso del commesso viaggiatore esplorare in parallelo le varie strade possibili. Il premio Nobel per la Fisica è andato quest’anno all’Americano David Wineland e al Francese Serge Haroche proprio per gli studi sull’ottica quantistica, e i giornali hanno prospettato la possibilità dell’arrivo del computer quantistico. Una certa cautela è però d’obbligo perché se ne parla ormai da decenni ma la realizzazione concreta non sembra vicinissima. Gli studi premiati con il Nobel sono comunque promettenti. Il robot maggiordomo che non fa cadere il vassoio IEEE Spectrum (3/10/2012), Evan Ackerman Molte le doti che si chiedono ad un maggiordomo provetto, fra cui non far cadere il vassoio. All’università Georgia Tech gli studenti di elettronica stanno provando il nuovo robot maggiordomo PR2. Soprattutto occorre programmare bene il robot rispetto alle forze laterali che possono far rovesciare tutto. I primi test sembrano positivi. Diodi e transistor al grafene Rice University (10/10/2012) Mike Williams Ricercatore della Rice University stanno sperimentando il drogaggio con fotoni di luce del grafene allo scopo di realizzare nuovi diodi e transistor al grafene. Il professor Peter Norlander parla di particelle chiamate plasmoni che oscillano su una superficie metallica ed emettono fotoni con lunghezze d’onda controllabili. Si utilizza una nuova litografia al grafene simile a quella del silicio. Si possono realizzare dopaggi di tipo N come per i convenzionali semiconduttori al silicio. Un altro Omarista nella Hall of Fame for Great Omarists Congratulazioni al nuovo comandante del reparto sanità presso la caserma Cavalli di Novara. Il tenente colonnello Andrea Mari è stato nostro brillante allievo all’Omar per l’indirizzo Elettronica Industriale. La lezione di Alessandro Negri di Sanfront La carica di Pastrengo Siamo nella prima guerra di Indipendenza, il 30 aprile 1948 a Pastrengo presso Verona. Il comando supremo è del re Carlo Alberto, un uomo imponente alto 2 metri e 4 centimetri. La battaglia ristagna. Carlo Alberto si porta allora in prima fila, con la sola scorta di 12 carabinieri. Di fianco ha il principe ereditario e futuro re d’Italia, Vittorio Emanuele con la fanteria di riserva, e l’altro figlio Ferdinando duca di Genova, poi il Presidente del Consiglio dei ministri Cesare Balbo e la brigata Piemonte del generale Federici. Accanto, il leggendario reggimento dei Lancieri di Novara (Novara Cavalleria). Il re è ormai a tiro di fucile degli Austriaci. Se ne accorge il maggiore conte Alessandro Negri di Sanfront che comanda i 280 carabinieri a cavallo, truppa scelta a difesa del re. Il maggiore non aspetta ordini superiori, basterebbero pochi minuti e il re cadrebbe colpito a morte. Ordine la carica e si getta per primo al galoppo, gridando con la sciabola sguainata. Lo imitano i 3 capitani di squadrone, conte Carlo Augusto Brunetta d’Usseaux, marchese Luigi Incisa di Camerana e marchese Angelo Bernardino Morelli di Popolo. Il re Carlo Alberto e il figlio Vittorio Emanuele si buttano immediatamente nella battaglia. I 280 carabinieri al galoppo sfrenato, con le sciabole scintillanti, corrono verso i 7000 Austriaci che sono colti dal terrore, non ricaricano neanche i fucili e battono in ritirata. Il re è salvo, la battaglia di Pastrengo è vinta. Qual è la lezione per noi? 1. Ci sono momenti in cui siamo chiamati a prendere decisioni immediate e coraggiose, senza aspettare ordini dall’alto. Bertolt Brecht ha scritto: “Beato il paese che non ha bisogno di eroi”. Io direi invece: beata quella nazione in cui ogni cittadino, quando è necessario, sa essere un piccolo (grande) eroe. 2. Per vincere le battaglie, non solo quelle militari, ma anche quelle economiche come l’Italia oggi deve affrontare, bisogna che a rischiare, a compiere sacrifici, a pagare il prezzo più alto siano i comandanti e i governanti, non i soliti poveracci. Altrimenti le battaglie l’Italia non le vincerà mai più. Alessandro Negri di Sanfront Carlo Alberto