R: [Corsopoc] delusione :)

Michele Favara Pedarsi mik.fp@commentaria.com
Sun, 26 Jan 2003 20:38:44 +0100


No tranquillo, io ho sentito parecchie persone all'uscita e tutti
avevamo lo stesso problema di comprensione.

Un esempio: "In Java i tipi primitivi int, boolean, etc. sono usati solo
per questioni di efficienza.". Come rispondereste?

Secondo me non è una domanda alla quale si può rispondere semplicemente
con un vero o falso perché esistono casi in cui un tipo primitivo può
essere meno efficiente di un oggetto o comunque non sappiamo rispondere
non avendo mai letto come è fatta la classe Integer.
Per essere formulata correttamente bisogna minimo togliere "solo" dalla
domanda oppure "specializzare" la parola efficienza e restringere il
campo di applicazioni a macchine di un certo livello.
Io ho ragionato così: se io su una virtual machine che gira su un
processore x86 uso una tipo primitivo int invece di un Integer java,
guadagno in efficienza dal punto di vista del tempo macchina (niente
chiamata a costruttore, etc) ma a memoria siamo pressochè uguali (32bit
un indirizzo di memoria, 32bit un intero).
Ma se per esempio faccio girare una vm su una macchina risc (che sono si
più "potenti" ma usano più memoria) che accade?
E se lo faccio girare l'applicazione su un dispositivo come cellulare o
pda? Ci sono dispositivi con spazio di indirizzamento a 16bit (ed anche
8bit!) su cui girano applicazioni java... ed in java la grandezza degli
int è sempre 32bit (è stata fissata per esigenze di portabilità). In
questo caso avrei ancora un'efficienza maggiore di un int su un Integer
considerando il tempo macchina, ma un efficienza minore considerando
l'occupazione di memoria: un int occupa 32 bit, un indirizzo di memoria
necessario all'Integer ne usa 16 :)
In fase di dichiarazione il dubbio c'e', ma quando poi si alloca in
effetti l'Integer potrebbe occupare più memoria perché potrebbe avere
degli attributi addizionali e comunque il codice genera sicuramente un
uso della memoria... ma io che diamine ne so come è fatta la classe
Integer?
Nel dubbio e nel panico della consegna, all'ultimo minuto ho messo Vera.

Altro esempio: la domanda su un blocco di codice in cui c'era una classe
poligono dalla quale discendevano quadrato e rettangolo. Beh, ne
poligono ne quadrato ne rettangolo avevano un costruttore, però entrambi
gli oggetti rettangolo e quadrato venivano istanziati passando uno o due
argomenti (presumibilmente le misure dei lati). Dopodiché ben 2 domande
ci chiedevano se il risultato della somma dei perimetri era 18 (in java
ed in c++, se non sbaglio), risposta: che ne so?
Voglio dire, io sarei portato a dire falso perché quel codice non può
essere utilizzato... non viene proprio compilato. E la domanda magari
voleva proprio vedere se eravamo attenti (e di domande a trabocchetto ce
ne erano parecchie). Uno però controlla il codice e poi si fa i suoi
calcoletti per vedere se la somma dei perimetri è 18... ed in effetti
viene 18; è vera?
A domanda "Prof, non c'e' il costruttore", risposta "Date per scontato
che ci sia".
Ho fatto uno sforzo di fede ed ho risposto vero.

E poi c'erano svariate domande che testavano strettamente la conoscenza
del c++ o del java... a questo punto io non ho capito una cosa: ma il
corso non è sulla programmazione oop e multithreading? Il Java non
doveva essere solo uno strumento?

Più che altro ci viene richiesto un notevole sforzo in termini di
formalità e precisione... però la prova non si esprime con le stesse
qualità.
Cioè, badate bene, per me andrebbe anche bene così se almeno ci fosse
permesso di scrivere due righe di note per ogni domanda dove, a piacere,
motiviamo la nostra risposta; in questo modo quando questa dovesse
risultare sbagliata il prof può controllare se l'errore è stato per un
problema di interpretazione del testo o per una non conoscenza della
materia.

Boh, vabbe', comunque sono contento che sia passato e spero sia andata
bene.

Ciao

Mik

-----Messaggio originale-----
Da: corsopoc-admin@list.uniroma2.it
[mailto:corsopoc-admin@list.uniroma2.it] Per conto di Andrea De Santis
Inviato: sabato 25 gennaio 2003 15.11
A: corsopoc@list.uniroma2.it
Oggetto: [Corsopoc] delusione :)

Salve a tutti!!!

Siete carichi? Siete Galvanizzati? Siete Metafisici?

Non importa. Comunque l'esame è passato :)

Una domanda rapida rapida, che non vuole essere affatto una
critica e non voglio accendere l'ennesimo flame:
sinceramente ho trovato l'esposizione delle "asserzioni" alquanto
strana, non so dire. In taluni casi ambigua. Ho avuto
dei ripetuti problemi di comprensione.

Sono l'unico?

C u soon...






_______________________________________________
Corsopoc mailing list
Corsopoc@list.uniroma2.it
http://list.uniroma2.it/mailman/listinfo/corsopoc