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