The forum of the Computer Science students of the University of Pisa

Domande Orale

Salve, visto che non c'è ancora nessuno che ha messo le domande del Gervasi posto quelle che ha fatto a me ieri: Orale 14 Luglio 2017
1. Parlami dei Content Provider
2. Come comunicano Resolver e Provider?
3. onDraw e onMeasure
4. onSaveIstanceState e ciclo di vita Activity
5. Secondo te come funziona il salvataggio dei bundle nella super.onSaveIstanceState?

Mi ha dato l'impressione di tenerci molto all'orale, e quindi se uno fa un progetto anche non ottimo può alzare il voto con l'orale (o anche abbassarlo)
Dal gruppo telegram
Fa domande sul progetto o anche sulle slide?

Fabio
Entrambe, chiede parecchia roba delle slide
L'orale è suddiviso in 3 parti:
- Presentazione App
- Visione del codice dell'app
- Domande teoriche su ciò che non hai usato nello sviluppo
Basta studiare bene le slide oppure bisogna approfondire tutto su Android developer?

Gaspare
Approfondisci che le slide spesso non bastano
Simone
Fa domande su tutto, guarda anche abbastanza il codice che hai scritto e ti fa domande sul perché lo hai fatto in quel modo e non in un altro o quali alternative potevi usare. Mediamente dura anche un'ora e comprende tutto. Non è tanto importante quanto sia figa l'app o quanto funzioni realmente.
Lascio il mio feedback riguardo l’esame di SAM.
Gervasi come ben sapete è molto tranquillo e non vi mette ansia. Il progetto deve essere elaborato e ben strutturato (sinceramente per il lavoro che ho fatto mi è sembrato un esame da 12 crediti) ma il professore apprezza e ripaga l’impegno che ci avete messo. L’esame è strutturato facendo una demo dell’app da parte vostra (sul vostro device), seguita da un lookup quasi completo del codice. Per finire una parte orale dove fa 3/4 domande e sembra tenerci molto (a me ha chiesto definizione dei propri Styles e IntentService e altro che ora non ricordo). E’ un esame pesante ma super consigliato perchè si impara tantissimo (personalmente uno degli esami che mi ha insegnato di più del corso di laurea).
Ho raccolto una serie di domande da svariati orali di SAM col Gervasi, ve le lascio qui:
-Tu hai implementato una ListView che mostra una serie di risultati in maniera dinamica. Se ti avessero chiesto di aggiungere la barra di ricerca, come avresti fatto ad implementarla?
-Cosa vuol dire "arriva una notifica"? Come viene mandata la notifica? Chi la manda? (Caso specifico dell'esame) come fa la tua app a creare la notifica che arriva alle 9.00 di domenica mattina?
-Te tieni una foto accessibile solo da un punto specifico dell'app (era visualizzabile sono in una determinata activity se non sbaglio). Ma dove la salvi di preciso per farlo?
-Tu manipoli un MediaPlayer dentro un'activity e non un service. Vantaggi e svantaggi di questa scelta?
-Come funziona un service? Cosa viene passato alla onStartCommand? Cos'è AIDL? (Per quest'ultima domanda va bene un'idea generale)
-Cos'è IntentService?
-Come funziona sui servizi la storia dei "high water mark", l'id di richiesta, e che ogni service può chiamare stopSelf con un parametro numerico? (Fondamentalmente bisognava ricordarsi che stopSelf(id) faceva terminare non solo questa richiesta ma anche tutte quelle con un id minore di "id")
-Come funziona l'asyncTask? Alternative?
-Descrivimi come funziona l'intero sistema delle risorse, dai file del progetto, all'apk, al runtime.
-Come viene recuperato a runtime il valore della risorsa?
-Mi parli dei Content Provider?
-Ci sono classi di sistema relative ai cursor che permettono di usarli in maniera asincrona ma semplice?
-Come funziona l'attributeSet del costruttore della view? Temi e stili in generale?
-Mi parli dei service bound?
-Fragment, a che servono?

E infine le mie domande:
-Parlami dei Drawable
-Parlami dei contentProvider
-Cos'è una WeakReference?

Corso consigliatissimo, il Professor Gervasi non solo sa insegnarvi un sacco su Android ma su come si programma in generale. Riesce anche a scherzare durante la lezione per non renderla troppo pesante, ma senza mai perdere il punto del discorso. Inoltre l'esame è un'occasione di crescita: il mio è durato due ore, ma 25 minuti sono stati dedicati alla presentazione dell'app, altri 15 alla parte di teoria e il resto del tempo a parlare del codice e dei suoi errori concettuali. Detta così può sembrare un parto, ma nessuno dei ragazzi di cui ho visto l'orale ha preso meno di 25. Se fate un buon progetto vi indicherà sempre quello che avete sbagliato, ma terrà di conto anche (e tanto) tutto quello che avete fatto bene. La revisione del codice è più un ricevimento su misura per voi, dove potete anche fargli domande se volete.