INFO esame [Sansone]

A_D.On_t_care

Membro TOP
Utente Premium
3 Marzo 2015
33
30
18
Presentazione: esame di base, davanti al quale molti studenti cadono. E' un esame molto facile, ma prenderlo sotto gamba porta ad una bocciatura CERTA.
E' un esame che potrebbe essere reputato inutile, magari per la teoria un po' approssimativa e per la programmazione in C++, che "Eh ma il C++ non si usava manco negli anni 80!!!11!". E' un esame che serve per far acquisire i meccanismi della stesura di un programma, partendo dall'analisi del problema, e il modus operandi di un programmatore. Per far entrare una persona nell'ottica dei programmi, dell'ottimizzazione, del progetto, il linguaggio di programmazione è ininfluente.

Esame: Fondamenti di informatica - Prof. Carlo Sansone

Tempo impiegato per la preparazione: il tempo per la preparazione per un esame di questo tipo, diviso in due parti fondamentali (programmazione e teoria) può essere variabile.
Io, diciamo che me la sono cavata in un mese, dato che seguii il corso al primo semestre (con un altro prof, però) ma non ho mai provato a dare l'esame, per mancanza di tempo, fino ad una settimana fa. Ma è importante esercitarsi durante il corso.

Se si è nuovi alla materia e non si ha la minima idea di cosa si debba andare a studiare, il consiglio è di seguire il corso ovviamente. E' importante preparare bene LA PROGRAMMAZIONE, ed il tempo per questa cosa è soggettivo. Forse ce la si può fare in meno di un mese, programmando intensamente, ma c'è anche la teoria.
Io direi che il tempo medio è di un mesetto e mezzo.

Traccia e/o domande ricevute all'esame e osservazioni personali: l'esame è composto da 3 parti:
-Programmazione
-Test a risposta multipla
-Orale

In un giorno si tengono la programmazione e il test, intervallati da 5-10 minuti. I risultati verranno pubblicati qualche giorno dopo, quando avrete già rotto il tasto F5 della vostra tastiera sulla sua pagina docenti. Se viene detto in "tarda serata" sarà sul serio in tarda serata. Tarda tarda tarda serata.
Se si avrà un voto complessivo almeno pari al 18 si verrà ammessi all'orale, che si tiene 2-3 giorni dopo lo scritto.

La programmazione è il punto cardine dell'esame. Ne costituisce 2/3 praticamente.
Insufficiente alla programmazione e anche 30 al test= INSUFFICIENTE.
Sufficiente alla programmazione e voto basso al test = 18
Buon voto alla programmazione e voto basso al test = 20+
30 in programmazione e voto basso al test = 25+
Per il resto si può facilmente intuire.
E' possibile passare anche con un voto minore di 18 al test.

Io, per esempio, ho avuto 18 al test e 30 in programmazione e ho avuto un solo voto in meno rispetto ad un collega che ha avuto 25 al test e 28 in programmazione. Per quanto mi riguarda, si può anche """tralasciare""" un po' la teoria a favore della programmazione.


Traccia "spiegata":
Il programma trattava della lettura di due matrici memorizzate in due file diversi con una funzione. Una volta prese queste due matrici bisognava confrontare la media delle righe "omologhe" (la riga 1 di m1 e la riga 1 di m2, poi la riga 2 di m1 e la riga 2 di m2, ecc.) mediante una funzione che accettava in ingresso un vettore -la riga della matrice!!-. Se la media della riga 1 di m1 era maggiore della media della riga 1 di m2, allora la funzione doveva sostituire gli elementi della riga 1 di m2, con quelli della riga 1 di m2. Se, invece, la media della riga 1 di m1 era minore della media della riga 1 di m2, bisognava raddoppiare gli elementi della riga 1 della matrice m1. Ripetendo lo stesso procedimento per tutte le righe ovviamente.

Regole per programmare bene:

E' importante rispettare le specifiche richiesta dal professore nella consegna, perché anche lo sbagliare un passaggio di parametro comporta la perdita di punti. Per avere un'idea di come si imposta un programma, per passare l'esame, consiglio di prendere le prove di esame tra il suo materiale didattico, svolgerle e poi confrontare con la prova svolta.

Programmare sempre allo stesso modo, con le funzioni base e le istruzioni semplici, senza utilizzare funzioni e librerie prese qua e là da internet o che vedete nei forum.

Esercitarsi molto sulla lettura da file. E' presente nella traccia nel 90% dei casi. Non tralasciare le altre operazioni sui file.

Quando verrà appresa la tecnica della compilazione separata, utilizzarla S E M P R E ! ! In tutte le prove d'esame viene richiesta, quindi essere super preparati su questa cosa, che deve essere addirittura naturale.

Esercitarsi duramente fin quando si arriva ad un punto in cui le mani scrivono da sole le istruzioni basilari e di impostazione del programma, senza pensarci più. Non pensate di andare lì dicendo "vabbè, la

Il linguaggio di programmazione è C++, ma si può utilizzare anche il C (il prof lo usa), o un misto tra i due. Insomma, basta che 'sto programma faccia ciò che deve fare (nei limiti della correttezza).
Per la dichiarazione delle matrici , se non è espressamente richiesto, non è obbligatorio utilizzare l'allocazione dinamica e i puntatori, anzi. Si può raggiungere il massimo dei voti anche dichiarando una costante MAXDIM per fare da dimensione massima della matrice, come lui fa nelle prove svolte.

Il test contiene 20 domande (non so se il numero cambia, ma non credo) sulla parte teorica del programma, comprensiva di algebra di boole (De Morgan, funzioni booleane) e delle conversioni di numeri. Quest'ultima è molto importante: non è raro ritrovarsi 3-4 domande nel test riguardanti il complemento a due o la virgola mobile, con conversioni e domande sugli intervalli di rappresentazione. Ci possono essere domande su Turing, la tesi di Chruch-Turing, ADT, CPU. Insomma, i primi tre capitoli del libro "Alla scoperta dei fondamenti di informaatica" ci sono tutti.

L'orale è un orale scritto. Nel senso che viene dato un foglio ciascuno con due domande. Si risponde sul foglio. Si viene sparpagliati tra i banchi. Poi il prof passa e, ad uno ad uno, si siede, legge l'elaborato e può fare altre domande, che siano per precisare ciò che è stato scritto, o che siano inerenti con quanto chiesto.
Chiede molto le cose teoriche come il ciclo del processore, i compilatori, automa a stati finiti, la macchina di Turing, gli ADT. Poi è solito chiedere anche algoritmi di ricerca e ordinamento.
Le domande assegnate tengono conto di quelle sbagliate nel test o ad errori nella programmazione: a me infatti ha chiesto il sistema in virgola mobile, dato che avevo sbagliato praticamente tutte le domande che riguardavano conversioni di numeri ecc.
Quindi è anche importante riconoscere dove si è sbagliato nel test e, sulla base di ciò, approfondire meglio una cosa rispetto ad un'altra.

In particolare a me ha chiesto: virgola mobile e qualche precisazione, automa a stati finiti, tesi di Church Turing. Poi per farmi aumentare il voto mi ha chiesto l'ADT pila-stack.

Libri e appunti utilizzati: ho utilizzato i libri consigliati dal prof.
Alla scoperta dei fondamenti di informatica
Che C serve?

Non ho utilizzato appunti, né li ho presi a lezione, non avendo seguito il corso, ma so che sono reperibili da officina studenti. Magari sarebbe bene integrare gli appunti con i libri, perché sono davvero alcuni dei peggiori libri sui quali io abbia mai dovuto studiare. Terribili.

Eventuali difficoltà riscontrate: Potrei dire nessuna.
L'esame è pressoché una formalità, difatti già dal primo semestre ero pronto a dare questo esame. Poi però non ho avuto modo di andare a nessun appello fino a questo di qualche giorno fa.
Il professore è gentilissimo e disponibile. Non fa pesare il fatto di essere ad un esame, non mette pressione ed è molto comprensivo sul fatto che si possa sbagliare. Se gli errori non sono colossali, ovvio.

Se dal canto mio ho detto che l'esame era una formalità, molti colleghi lo falliscono, secondo me, perché sbagliano l'approccio alla programmazione. Questa non si prepara in un mesetto, programmando poco, giusto per passare l'esamino di fondamenti. Deve essere il punto di partenza della tua carriera universitaria e, chissà, lavorativa, nel mondo della programmazione. Dopo aver imparato a programmare bene in C, saprai programmare in qualunque altro linguaggio, una volta imparata la grammatica e la sintassi. Le basi teoriche, invece, magari sono un po' troppo approssimative, ma con altri esami saranno saldate.
Consiglio vivamente di diffidare da chiunque dica di aver preparato questo esame senza mai fare un programma su Dev C++ (per intenderci), studiando solo dal libro. Programmate qualsiasi cosa, inventate gli esercizi complessi, basta che vi teniate allenati o che vi esercitiate sulle tipologie di esercizi che all'esame possono essere assegnate (vettori, matrici, stringhe, ecc.).


Chiedo scusa per tutte queste parole e la mezza riflessione, che potrebbero sembrare sprecate, per un esame che alcuni potrebbero definire "troppo facile". Persino io lo penso. Ma vedo che è un esame preso davvero con tanta leggerezza un po' da tutti.
(Chiedo scusa anche per l'italiano molto approssimativo ahahah)
 
Ultima modifica da un moderatore:
  • Like
Reactions: Sedo and alarmfox

Seguici su Facebook