martedì 21 dicembre 2010

Esercizi /1

Di seguito una prima infornata di esercizi, nei prossimi giorni (anche su vostra specifica richiesta) ne inserirò altri. È possibile discutere degli esercizi direttamente nelle risposte a questo post: io risponderò alle vostre domande in modo da costruire una base di conoscenza con i dubbi più comuni. Vi prego solo di non postare le RISPOSTE né degli indizi troppo palesi: lasciate che tutti possano spaccarsi la testa per trovare la risposta per conto proprio. Questo è il senso degli esercizi. Se volete una conferma della vostra soluzione scrivetemi in privato.


Esercizietti:

1) Convertire in esadecimale il numero decimale 1814512 (Consiglio: può essere più semplice passare attraverso la codifica binaria)
2) Quanti bit sono necessari per descrivere il numero esadecimale FECC1A
3) Convertire in decimale il numero binario 110101101
4) Convertire in binario il numero decimale 531
5) Il programma Calc può rappresentare fino alla colonna AMJ: quante sono?
6) Un segnale audio della durata di 10 secondi deve essere campionato. Se la frequenza di campionamento è 22000 campioni al secondo e ogni campione ha un’espressività numerica di 12 bit, quanti byte saranno necessari per rappresentare il segnale così campionato?
7) Si desidera fare la scansione di una fotografia 10x5 cm. Se in ogni cm^2 vengono rilevati 1024 pixel, ognuno dei quali ha un colore scelto fra 65536 possibili, quanti byte saranno necessari per conservare le informazioni dell’immagine in formato non compresso?
8) Usare l’algoritmo bubble-sort per ordinare le seguenti lettere “akrdstopqaw”. Scrivere una copia del vettore dopo ogni passaggio di ordinamento.
9) Si hanno 5 carte coperte da ordinare, con stampigliato sul retro le lettere A B C D E. Il valore delle carte non è noto, ma si sa che D<A; A<C; B<A; D<C; C<E. Applicando il bubble-sort ordinare il mazzo di carte sulla base di queste sole informazioni (spiegando il procedimento)
10) Data la memoria [a=1][t=0][v=7,3,5,4,9,2,1,6] eseguire il seguente programma e scrivere il contenuto della memoria alla fine. Qual è lo scopo del programma?
RIPETI FINCHÉ (a <= 8)
{t = t + v[a]
a = a + 2
}
11) Un papà premuroso è con la famiglia in spiaggia, al bagno numero 1. Il bimbo chiede un gelato ma non sa dire quale gusto preferisce. Supponendo che in ogni bagno ci sia un gelataio che vende un unico gusto di gelato e che questo gusto sia diverso da tutti gli altri, il papà dovrà andare e tornare da ogni bagno per far assaggiare il gelato al bambino. Qual è la complessità computazionale dell’algoritmo del papà? Se il gelato viene trovato al bagno numero 10, quanti bagni avrà dovuto attraversare?
12) Un contabile truffaldino deve coprire un ammanco di bilancio con delle fatture false di cui è già in possesso. Per camuffare il suo operato deve coprire esattamente la cifra mancante scegliendo alcune di queste fatture il cui totale deve coincidere precisamente con l’ammanco. Si è in grado di consigliargli un sistema efficiente per mettersi al sicuro? (che non sia emigrare in Patagonia...)
13) Codificando le lettere dell’alfabeto con 6 bit, crittare il messaggio “universita del salento” con la chiave “informatica” usando l’operatore XOR.
14) Nei moderni sistemi operativi è possibile far funzionare contemporaneamente più programmi. Questa affermazione è corretta?
15) Scrivere una piccola struttura in XML per mantenere le informazioni di amici. Le informazioni necessarie sono Nome, Cognome, Indirizzo di casa e Indirizzo dell’ufficio (a loro volta composti da Via, Civico, CAP e Città), la Email, e un numero imprecisato di numeri di telefono senza particolare ordine, ma con la posibilità di indicarne uno preferito.
16) Decomprimere il testo compresso: “Sopra la panca[9,4]ca[3,4]cam[10,3] sotto[9,4][10,5][9,4][20,7] crepa.” “Sopra la panca[6,4]ca[3,4]cam[10,2] sotto[6,4][10,5][6,4][20,7] crepa.” mostrando ogni passaggio.
17) Inserendo l’espressione regolare “<b>([^<]*)(<center>[^<]*</center>)?([^<]*)</b>” in Cerca e inserendo “$1$2$3” in sostituisci, come si desidera modificare il sorgente in HTML di una generica pagina web? (notate che l’espressione [^<] significa “qualsiasi simbolo tranne <”).
18) Mettendo di avere il foglio di Calc come in figura, supponendo che esista una funzione SOMMA.DISPARI(celle) che restituisce il totale ottenuto sommando solo I valori dispari, quale formula devo scrivere nella cella evidenziata per avere il totale dei soli numeri pari?

Lezione del 21 dicembre 2010 /2 (Ultima lezione)

La lezione ha presentato alcuni esercizi e alcuni punti da tenere ben presente durante l'esame:
  • se la soluzione che state pensando appare troppo complicata e macchinosa allora probabilmente state seguendo una strada sbagliata: gli esercizi possono apparire intricati e mostruosi, ma al 99% la soluzione è molto semplice (ma non è semplice il percorso per raggiungerla)
  • Tranne alcune eccezioni (xor, bit, cambi di base) il livello al quale dovete rimanere è quello logico-concettuale: non infilatevi in tecnicismi e complicatezze che non sono rilevanti per l'esercizio.
  • Vi potete inventare le cose: potete aggiungere presupposti (purché siano logici, chiari e coerenti) e inventare funzioni che fanno calcoli semplici funzionali alla vostra soluzione. (Per esempio in un programma potrebbe essere necessario sapere se un valore è pari o dispari: una informazione molto semplice eppure straordinariamente complessa per chi non è addentro ai tecnicismi. Potete perciò assumere che esista una funzione PARI(n) che dice se un numero è pari. Questo però non potete farlo ovviamente se la funzione che postulate è la soluzione dell'esercizio!) Siate creativi.
  • Non vi impiccate alle definizioni, cercate di rispondere alle domande secondo una vostra comprensione dell'argomento, crcando di verificare la coerenza logica di quello che sostenete. È preferibile una risposta meno rigidamente esatta ma più creativa piuttosto che la ripetizione delle definizioni lette da qualche parte sul libro o anche dette a lezione. Questo però non deve essere un alibi per affrontare l'esame con una preparazione superficiale.
  • Lo scopo dell'esame è verificare la vostra comprensione della materia, quindi quello che dovete fare è convincermi di questo fatto. Solo questo dev'essere il criterio che orienterà le vostre risposte. È molto meglio una risposta parziale ma convincente che una completa ma asettica: la competenza si vede soprattutto nella capacità di decide cosa è rilevante e cosa non lo è. Sfoggiare quanto uno è stato bravino a studiare non è una buona strategia per avere un buon voto.
Al 90% l'esame sarà così composto: un preaccertamento fatto in laboratorio, in caso di superamento si passa alla prova scritta. Lo scritto prevederà sia definizioni che esercizi, e avrà un'impostazione fondamentalmente logico/teorica e poco nozionistica. L'orale non è né facoltativo né obbligatorio: lo posso richiedere io per verificare alcuni aspetti dello scritto. Potete propormi di sostenere un esame orale, ma siate consapevoli che l'esito dell'orale può essere uno qualunque di quelli possibili e quindi non necessariamente di miglioramento del risultato dello scritto.

Lezione del 21 dicembre 2010 /1


Lezione del 21 dicembre 2010 /1 (Parte 1 di 3) PSINFORM from Marco Tonti on Vimeo.


Lezione del 21 dicembre 2010 /1 (parte 2 di 3) PSINFORM from Marco Tonti on Vimeo.



Leione del 21 dicembre 2010 /1 (parte 3 di 3) PSINFORM from Marco Tonti on Vimeo.

La mail spedita a lezione che era finita nello spam:




Il contenuto "reale" della email, come viene trasmessa effettivamente con tutte le informazioni supplementari aggiunte dai vari server che si sono occupati dell'invio e della ricezione (ho sostituito le @ con §):

Delivered-To: marco§tonti.info
Received: by 10.231.17.199 with SMTP id t7cs22633iba;
Tue, 21 Dec 2010 01:50:25 -0800 (PST)
Received: by 10.216.7.205 with SMTP id 55mr8440841wep.96.1292925024001;
Tue, 21 Dec 2010 01:50:24 -0800 (PST)
Return-Path:
Received: from ateneo.unile.it (ateneo.unile.it [193.204.68.3])
by mx.google.com with ESMTPS id t11si6016381wes.103.2010.12.21.01.50.23
(version=TLSv1/SSLv3 cipher=RC4-MD5);
Tue, 21 Dec 2010 01:50:23 -0800 (PST)
 Received-SPF: neutral (google.com: 193.204.68.3 is neither permitted nor denied by best guess record for domain of marco.tonti§unisalento.it) client-ip=193.204.68.3;
 Authentication-Results: mx.google.com; spf=neutral (google.com: 193.204.68.3 is neither permitted nor denied by best guess record for domain of marco.tonti§unisalento.it) smtp.mail=marco.tonti§unisalento.it
Received: from ateneo.unile.it (unknown [10.0.211.142])
by ateneo.unile.it (Postfix) with SMTP id 99AB014D8607
for ; Tue, 21 Dec 2010 10:47:14 +0100 (CET)
 Message-Id: <20101221094732.99AB014D8607§ateneo.unile.it>
Date: Tue, 21 Dec 2010 10:47:14 +0100 (CET)
 From: marco.tonti§unisalento.it
To: undisclosed-recipients:;
X-ateneo.unile.it-MailScanner-Information: Please contact the ISP for more information
X-ateneo.unile.it-MailScanner: Found to be clean
X-ateneo.unile.it-MailScanner-SpamScore: s
 X-ateneo.unile.it-MailScanner-From: marco.tonti§unisalento.it
X-Spam-Status: No

ciao marco come va?

Lezione del 20 dicembre 2010 /2

Fondamenti di HTML

Lezione del 20 dicembre 2010 PSINFORM from Marco Tonti on Vimeo.

lunedì 20 dicembre 2010

Lezione del 20 dicembre 2010 /1

C'è stato un addedum alla lezione sui sistemi operativi:
Come abbiamo visto i programmi possono essere scomposti in sottoprocedure più semplici. Questa scomposizione rende il programma più facile da leggere e da correggere. Ma c'è anche un ulteriore vantaggio: molto spesso queste sottoprocedure (e funzioni) hanno un ruolo e un funzionamento molto generale (un esempio l'abbiamo visto: la procedura "scambia" può essere applicata a qualsiasi vettore quindi la si può "riciclare" per tutti i programmi che facciamo). Molto spesso i programmatori raccolgono le loro funzioni sviluppate nel corso del tempo in delle cosiddette Librerie di funzioni (che in Windows sono file a sé stanti con estensione .dll = Dynamic Link Library), oppure usano librerie costruite da altri o anche appartenenti al sistema operativo. Queste librerie vengono raggruppate tematicamente, per esempio una libreria che effettua calcoli matematici avanzati, un'altra con istruzioni per la grafica, un'altra per la crittografia e così via.
Dato che un programma per funzionare necessita di tutte le librerie, quando si produce un programma che debba essere utilizzato su altri sistemi diversi dal proprio è necessario impacchettare tutto insieme e trasportare anche le librerie (che stanno in file separati) insieme al file eseguibile, quello che contiene il programma vero e proprio. Inoltre quando si introduce un programma in un sistema è necessario aggiornare alcune informazioni speciali che il sistema operativo mantiene, come l'icona da usare per i file di un certo programma, l'applicazione da lanciare quando si fa doppio-clic sui file di dati (come succede per i documenti di Word o di Writer). Le librerie inoltre vanno inserite in cartelle speciali del sistema operativo. Tutte queste operazioni sono effettuate durante il processo (automatico) di installazione. Questa operazione è vera a maggior ragione per i driver, essendo questi dei piccoli programmi che vanno a far parte integrante del sistema operativo. Questa è la ragione per cui non è possibile solo copiare una cartella di un programma per trasportalo da un computer a un altro: è necessario il pacchetto intero che contiene tutti file necessari.

Il resto della lezione ha trattato rapidamente i concetti legati ai sistemi di DataBase. L'esempio più classico e accessibile (molto spesso i motori DB sono programmi sofisticati da mettere su un server, o librerie usate da altri programmi) è Access. I database utilizzabili sul proprio computer sono denominati DataBase Desktop (un altro esempio è Filemaker della Apple, prodotto anche per Windows).
Durante la lezione si è discusso di Entità e di Relazioni (e di Chiavi) con l'esempio di come potrebbe essere il sistema di gestione degli studenti dell'Università, con tabelle che registrano gli esami sostenuti, il voto relativo, la presenza di lode, il piano di studi, il corso di laurea. Alla fine della lezione sono stati presentati anch eun paio di esempi di interrogazioni (query in gergo) per calcolare la media di uno studente o contare il numero di lodi. Le query vengono scritte in un linguaggio standard che si chiama SQL (Structured Query Language).

L'argomento è trattato molto approfonditamente nel libro di testo ai capitoli 12, 13 e 14. La lettura dei capitoli è richiesta, specialmente in quelle parti dove si affrontano specificamente gli argomenti trattati. È possibile non soffermarsi sui linguaggi di interrogazione e sui dettagli tecnici più approfonditi, ma è fondamentale essere certi di aver colto l'insieme dei concetti di fondo.


giovedì 16 dicembre 2010

Calendario lezioni settimana del 20 dicembre

Si terranno di mattina due lezioni straordinarie, oltre quelle ordinarie:
lunedì 20 dalle 9.30 alle 11 (straordinaria)
lunedì 20 dalle 17 alle 18.30
martedì 21 dalle 9.30 alle 11 (straordinaria)
martedì 21 dalle 17 alle 18.30

Lezione del 16 dicembre 2010


Lezione del 16 dicembre 2010 PSINFORM from Marco Tonti on Vimeo.

Argomenti:
  • completamento della parte sui fogli di calcolo
  • grafici
  • incolla speciale
  • tecnologia OLE (object linking and embedding)
  • programma Draw di OpenOffice per il disegno di grafici e schemi