Tags:
create new tag
view all tags

Diario delle lezioni

A.A. 2016/2017

Mercoledý 1 Marzo 2017 - Lezioni 1-2

Introduzione

  • Informazioni sul corso.
  • Concetti di algoritmo, di struttura dati, di efficienza; di costo computazionale; di problem solving e di problema computazionale.
  • modello RAM; misura di costo uniforme e logaritmico.

Venerdý 3 Marzo 2017 - Lezioni 3-4

Notazione asintotica (1)

  • Definizione e significato degli insiemi O, Ω e Θ.
  • Algebra della notazione asintotica
  • Esempi
  • Valutazione del costo computazionale di un algoritmo
  • Un primo esempio

Esercizi assegnati:

  • Dimostrare le regole relative all'algebra della notazione asintotica che non sono state dimostrate a lezione

Esercitazioni 1-2: lunedý 6 marzo 2017

  • TinyC. Codifica in TinyC del programma che calcola la somma iterando +1 [ D2, sezione 2 ]
  • Indagini su un programma iterativo [ D1, sez. 2.1 ]:
    • Precondizioni, Postcondizioni, invarianti di ciclo.
    • Terminazione di un ciclo: funzione di terminazione.
  • Esempi:
    • funzione che calcola la moltiplicazione. Uso della funzione somma nel calcolo del prodotto [ D2, sez. 3 ].
    • funzione che calcola il predecessore. Specifica come contratto.
    • somma che usa predecessore. Osservazioni sulla complessitÓ dei programmi TinyC.
    • Esempio: fattoriale: discussione della sua complessitÓ in TinyC e in C.

  • Esercizi consigliati: Dispensa D1, sez. 2.5, esercizi da 2 a 8.
  • Sperimentazioni: Disp. D2, sez. 2.1.

Esercitazioni 3-4: mercoledý 8 marzo 2017

  • Progetto di funzioni a partire dalle specifiche logiche [ D1, sez. 2.3 ].
    • Esempio: divisione intera.
  • Introduzione alla pila di sistema, variabili locali, globali [ D2, sez. 3 ].
  • Uso di passaggi per riferimento per passare pi¨ risultati: funzione int divRef(int, int, int*, int*).
  • Utilizzo della funzione divRef nell'algoritmo mcdMaestra [ D2, sez. 4 ].
  • Valutazione dei parametri: impossibilitÓ di scrivere una funzione myAnd equivalente a &&.

  • Esercizi consigliati: Dispensa D1, sez. 2.5, esercizi da 2 a 8.
  • Elucubrazioni: InutilitÓ dell' if in TinyC. Altri esercizi in Disp. D2, sez. 1.2.

Venerdý 10 Marzo 2017 - Lezioni 5-6

Notazione asintotica (2)

  • Esempi di problemi che si possono risolvere in modo pi¨ o meno efficiente e loro costo computazionale
    • somma dei primi n interi
    • valutazione di un polinomio in un punto
    • ricerca di un elemento in un vettore

Il problema della ricerca

  • ricerca sequenziale e suo costo computazionale nel caso migliore e peggiore
  • ricerca dicotomica e suo costo computazionale nel caso migiore e peggiore

Esercizi assegnati:

  • Calcolare l'andamento asintotico di alcune funzioni ed alcune sommatorie
  • Calcolare il costo computazionale del Selection, dell'Insertion Sort e del Bubble Sort (pseudocodice sulle dispense)

Lunedý 11 Marzo 2017 - Lezioni 7-8

Ricorsione

  • funzioni matematiche ricorsive;
  • ricerca sequenziale e binaria: pseudocodice ricorsivo e calcolo dell'equazione di ricorrenza;
  • altri esempi di problemi risolti con algoritmi ricorsivi.

Esercizi assegnati:

  • Progettare degli algoritmi ricorsivi ed esprimerli tramite pseudocodice che risolvano i seguenti problemi:
    • dato in input un vettore, visualizzare i suoi valori al contrario (dall'ultimo al primo)
    • calcolare la somma di n numeri reali inseriti da tastiera (uno per ogni chiamata ricorsiva)
    • calcolare il MCD tra due interi positivi x ed y come segue:
      • sia y<x
      • se y=0 allora MCD(x,y)=y
      • altrimenti MCD(x,y))MCD(y, x%y)

Esercitazioni 5-6: mercoledý 15 marzo 2017

  • Ancora sui passaggi per riferimento: funzione scambia(int*,int*), ap(int*,int*,int,int) (assegnamento parallelo Ó la Python) [ D3, sez. 2 ].
  • I problemi di alias: funzione scambia(int*,int*) senza variabile di appoggio [ D3, sez. 3 ].
  • Induzione e Ricorsione: definizione induttiva di + e funzione sommaRec(int, int) [ D4, sez. 1.1 ].
  • Esercizio: predecessore ricorsivo in TinyReC. Riflessioni sulla completezza computazioneale di TinyReC.
  • Ricorsione: funzione di Fibonacci. Efficienza e albero delle chiamate generato.
  • Funzioni: stack di attivazione delle chiamate [ D2, sez. 3 ].
  • Fibonacci Iterativo.

  • Esercizi consigliati: Dispensa 3 [sez. 4 ]
  • Esercizi consigliati: Dispensa 4 [sez. 1.3 ]

Venerdý 17 Marzo 2017 - Lezioni 9-10

Soluzioni delle equazioni di ricorrenza (1)

  • carrellata sui 4 metodi:
    • metodo iterativo;
    • metodo di sostituzione;
    • metodo dell'albero;
    • metodo principale: enunciato del teorema senza dimostrazione

Esercizi assegnati:

  • Calcolare la soluzione di alcune equazioni di ricorrenza

Lunedý 20 Marzo 2017 - Lezioni 11-12

Soluzioni delle equazioni di ricorrenza (2)

  • esempi di soluzione di equazioni di ricorrenza tramite i quattro metodi

Esercizi assegnati:

  • Calcolare la soluzione delle seguenti equazioni di ricorrenza con i quattro metodi studiati, ove possibile, tenendo conto che per tutte il caso base Ŕ T(1)=&Theta(1):
    • T(n)=2T(n/2)+Θ(n)
    • T(n)=3T(n/2)+Θ(n)
    • T(n)=3T(n/4)+Θ(n)
    • T(n)=2T(n/2)+Θ(n^2)
    • T(n)=2T(n/2)+Θ(n^3)
    • T(n)=T(n-1)+Θ(n)

Esercitazioni 7-8: mercoledý 22 marzo 2017

  • Fibonacci ricorsivo efficiente [ D4, sez. 2 ].
  • Dimostrazioni induttive di correttezza per funzione ricorsive [ D4, sez. 2 ].
  • Trasformazione sistematica di programmi iterativi in ricorsivi [ D4, sez. 2 ].
  • Esempi di problemi con soluzioni inerentemente ricorsive:
    • Funzione maxPrimo (Esonero 2014) [ S4 ].
    • Calcolo del numero delle partizioni (Homework 1, 2012) [ S3, sez. 1 ]
  • Introduzione ai vettori. Vettori e puntatori. Stampa iterativa di un vettore. [ D6, sez. 1 ]
  • Esempio di sviluppo di programmi su vettori con asserzioni logiche: minimo di un vettore. [ D6, sez. 2.1 ]

  • Esercizi consigliati: Dispensa 4 [sez. 2.4 e 3.3 ]

Venerdý 24 Marzo 2017 - Lezioni 13-14 Il problema dell'ordinamento (1)

  • algoritmi naif: insertion sort, selection sort e bubble sort; calcolo del costo computazionale
  • albero delle decisioni e teorema sulla limitazione inferiore per la complessitÓ di un algoritmo per confronti

Esercizi assegnati:

  • Nell'algoritmo dell'insertion sort, la ricerca della posizione in cui inserire l'elemento corrente pu˛ essere effettuata tramite una ricerca binaria. Calcolare il costo computazionale dell'algoritmo cosý modificato.
  • Scrivere in pseudocodice una funzione che, dato un vettore A ed un indice j, calcoli il valore minimo nel sottovettore A[j..n]. Riscrivere lo pseudocodice del selection sort che utilizzi ripetutamente questa funzione.
  • Determinare l'albero delle decisioni del Selection Sort e dell'Insertion Sort
  • Modificare l'algoritmo di Bubble Sort in modo che non prosegua la computazione se il vettore risulta ordinato.
  • Dato un vettore di n elementi, verificare se contiene occorrenze ripetute dello stesso elemento (prima versione).

Lunedý 27 Marzo 2017 - Lezioni 15-16 Il problema dell'ordinamento (2)

  • algoritmi efficienti:
    • paradigma del divide et impera
    • merge sort (pseudocodice e costo computazionale, pseudocodice della funzione Fondi, problematica dell'ordinamento in loco)
    • quick sort (pseudocodice, pseudocodice della funzione Partiziona)

Esercizi assegnati:

  • Scrivere la funzione di fusione ricorsiva
  • Determinare l'albero delle decisioni della funzione di fusione, quando i vettori da fondere sono a1 a2 e b1 b2 (con l'implicita ipotesi che a1<a2 e b1<b2)
  • Dato un vettore di n elementi, verificare se contiene occorrenze ripetute dello stesso elemento (di nuovo: ma questa volta il costo computazionale dovrebbe essere un O(n log n))

Esercitazioni 9-10: mercoledý 29 marzo 2017

  • Esercizi sui vettori: il problema del baricentro [Esonero 2012, S1 ].
  • Virtuosismi: funzione baricentroRec che calcola il baricentro con un'unica scansione ricorsiva.
  • Generazione delle combinazioni di n oggetti presi k a k . [Esonero 2016, S4 ].
  • Virtuosismi: versione ricorsiva che genera le combinazioni.

  • Letture consigliate: Due grandi classici: crivello di Eratostene e Coefficienti Binomiali [ D6 sez. 2.4 e 2.5 ]
  • Esercizi consigliati: Dispensa 6 [sez. 1.3 e 2.6 ]

Venerdý 31 Marzo 2017 - Lezioni 17-18 Il problema dell'ordinamento (3)

  • algoritmi efficienti: quick sort (costo computazionale nel caso peggiore, migliore e medio, problematica della randomizzazione)
  • algoritmi efficienti: heapsort (struttura dati heap, heapify: pseudocodice)

Esercizi assegnati:

  • Sia dato un vettore di lunghezza n contenente solo valori 0 e 2. Si progetti un algoritmo con costo computazionale lineare che modifichi il vettore in modo che tutte le occorrenze di 0 si trovino pi¨ a sinistra di tutte le occorrenze di 2.
  • Si considerino i valori 0 1 2 3 4 5 6 7. Si determini una permutazione di questi valori che generi il caso peggiore per l'algortimo Quick sort.
  • Calcolare il costo computazionale del Quick sort nel caso in cui il vettore contenga tutti elementi uguali.

Lunedý 3 Aprile 2017 - Lezioni 19-20 Il problema dell'ordinamento (4)

  • algoritmi efficienti: heapsort (buildheap, e heapsort: pseudocodice e costo computazionale)
  • algoritmi lineari: counting sort (versione semplificata e versione completa)

Esercizi assegnati:

  • Scrivere lo pseudocodice di Heapsort nel caso in cui, come struttura dati, si usi un heap minimo (cioŔ tale che A[i]>=A[parent(i)]), che mantiene il minimo nella radice.
  • Scrivere lo pseudocodice di una funzione che, dato un heap, ritorni l'elemento con chiave minima. Valutare il costo computazionale.
  • Discutere la ragionevolezza di una struttura dati in cui:
    • si costruisce in tempo lineare
    • il minimo si trova in tempo costante
    • dopo l'estrazione del minimo, si riaggiusta in tempo costante

Esercitazioni 11-12: mercoledý 5 aprile 2017

Esercizi su vettori e ricorsione in in vista dell'esonero.

  • Il problema 3 dell'Homework di Prova: conteggio delle k uple ordinate di prodotto n .
  • Il problema della prossima permutazione [ dispensa A1 ].
  • Generazione ricorsiva delle permutazioni (o anagrammi) [ D4 sez. 3.2 ].
  • merge tra due vettori ordinati ricorsiva.
  • Virtuosismi: merge ricorsiva da Vero Programmatore C [ Esercizi di stile, L2 sez. 1 ].

  • Esercizi consigliati: Di tutto un po' su ricorsione, puntatori e vettori.

Venerdý 7 Aprile 2017 - Lezioni 21-22 Esercizi in preparazione dell'esonero

Lunedý 12 aprile 2017 - Primo Esonero

Esercitazioni 13-14: mercoledý 12 aprile 2017

  • Breve discussione soluzioni esonero ed errori tipici [dispensa A2 ].
  • Introduzione alla memoria allocata dinamicamente: stack e heap.
  • Funzioni di libreria malloc(int) e calloc(int, int).
  • Differenza tra vettori a lunghezza variabile e vettori dinamici.
  • Vettori bidimensionali: allocazione statica [dispensa D7, sez. 2 ].
  • Allocazione di una matrice dinamica [dispensa D7, sez. 3 ].
  • Esempio: allocazione e costruzione del Triangolo di Tartaglia.

  • Esercizi consigliati: nessuno.

Venerdý 21 Aprile 2017 - Lezioni 23-24 Correzione degli esercizi d'esonero e consegna dei compiti

Esercitazioni 15-16: mercoledý 26 aprile 2017

  • Breve discussione esercizi Homework 1.
  • Tipo di dato sequenza e sua definizione induttiva.
  • Rappresentazione in C delle sequenze: costruttore di tipo struct [dispensa D8, sez. 1 ].
  • Costruttori e distruttori del tipo sequenza.
  • Prime funzioni C su liste: length, sumL [dispensa D8, sez. 3.1 ].

  • Esercizi consigliati: nessuno.

Venerdý 28 Aprile 2017 - Lezioni 25-26

  • Strutture dati fondamentali (1)
    • strutture dati ed insiemi dinamici
    • confronto tra vettore qualunque e vettore ordinato
    • introduzione alle liste: ricerca e inserimento in testa
    • cancellazione nelle liste, liste doppiamente puntate e liste circolari

Esercitazioni 17-18: mercoledý 3 maggio 2017

  • Funzioni che modificano liste: twiceL. Trasparenza referenziale: versioni che generano nuove liste e versioni in place [dispensa D8, sez. 3.2 ].
  • Inserimento e concatenazione di liste. Side effects indesiderati. Versioni ricorsive, iterativa e funzionali [dispensa D8, sez. 3.3 e 3.4 ].
  • Il problema del rovesciamento. Versione ricorsiva inefficiente quadratica, iterativa e versione efficiente con parametro ausiliario.
  • Rovesciamento ricorsivo in place [dispensa D8, sez. 3.5 ].

  • Esercizi consigliati: rovesciamento iterativo in place. Esercizi alla fine di dispensa D8.

Venerdý 5 Maggio 2017 - Lezioni 27-28

  • Strutture dati fondamentali (2)
    • la struttura dati coda
    • le operazioni enqueue e dequeue
    • code con prioritÓ
    • pila
    • le operazioni Push e Pop
    • Esercizio: simulazione di una coda tramite due pile

Esercizi assegnati:

  • scrivere sia lo pseudocodice che il codice C delle funzioni Enqueue e Dequeue quando la coda sia circolare ed implementata su vettore
  • scrivere sia lo pseudocodice che il codice C delle funzioni Pop, Push e Pila_Piena quando la pila sia implementata su vettore

Lunedý 8 Maggio 2017 - Lezioni 29-30

  • Strutture dati fondamentali (3)
    • alberi
      • definizione tramite la nozione di grafo
      • caratterizzazione degli alberi
      • alberi binari completi: relazione tra altezza e numero di nodi
      • memorizzazione degli alberi:
        • tramite record e puntatori
        • posizionale
        • tramite vettore dei padri

Esercizi assegnati:

  • dato un albero tramite vettore dei padri, restituirlo in output tramite notazione posizionale. Calcolare il costo computazionale
  • dato un albero tramite notazione posizionale, restituirlo in output tramite vettore dei padri. Calcolare il costo computazionale

Esercitazioni 19-20: mercoledý 10 maggio 2017

  • Breve discussione delle liste alternative da usare nell'Homework 2. Liste con pointer all'ultimo elemento e liste doppiamente concatenate.
  • Funzioni che rimuovono elementi dalle liste: remove. Versioni funzionali e versioni in place. La funzione di libreria free(void * ) [dispensa D8 , sez. 3.6 ]
  • Differenza tra liste. Cautela nell'uso di chiamate annidate di funzioni di tipo Fun.
  • Alcuni esercizi di compiti passati: immersa, mcdDaLista [dispensa S6 ].

  • Esercizi consigliati: remove iterativa in place. Esercizi alla fine di dispensa D8.

Venerdý 12 Maggio 2017 - Lezioni 31-32

  • Strutture dati fondamentali (4)
    • visite di alberi: in-ordine, pre-ordine e post-ordine
      • pseudocodice ricorsivo
      • costo computazionale tramite equazione di ricorrenza e metodo di sostituzione
      • esercizi che si risolvono utilizzando le visite
    • esercizi che si risolvono usando alberi, pile e code

Lunedý 15 Maggio 2017 - Lezioni 33-34

  • Dizionari (1)
    • tabelle ad indirizzamento diretto
    • tabelle hash
      • ipotesi di uniformitÓ semplice e fattore di carico
      • soluzione delle collisioni tramite liste di trabocco
      • soluzione delle collisioni tramite indirizzamento aperto * Alberi binari di ricerca (ABR):
      • definizione e proprietÓ dell' "ordinamento orizzontale"

Esercitazioni 21-22: mercoledý 17 maggio 2017

  • Definizione induttiva di albero binario.
  • Costruttori e distruttori di alberi binari: makeTree, emptyTree, isEmptyTree.
  • Semplici funzioni definite per ricorsione su alberi binari: numero nodi, peso, altezza.
  • Rivisitazioni delle visite: stampa (preorder) di un albero a parentesi nella forma r(L,R), stampa (inorder) indentata.
  • Funzione makeTreeFromArray che ricostruisce un albero binario partendo da una visita preorder e da una inorder.

Venerdý 19 Maggio 2017 - Lezioni 35-36

  • Dizionari (2) * Alberi binari di ricerca (ABR) - segue: * algoritmo di ricerca
      • algoritmo per il massimo e minimo
      • algoritmo per il successore e predecessore
      • algoritmo di inserimento
      • algoritmo di cancellazione
      • osservazioni sul costo computazionale delle operazioni viste come funzione dell'altezza

Esercizi assegnati:

  • Scrivere lo pseudocodice degli algoritmi per la ricerca del predecessore e del successore in un ABR
  • Dato due ABR T1 e T2, progettare un algoritmo che produca in output un terzo albero binario di ricerca T contenente le chiavi di T1 e di T2. Fare le considerazioni del caso riguardo al costo computazionale.

Lunedý 22 Maggio 2017 - Lezioni 37-38

  • Dizionari (3) * Alberi binari di ricerca (ABR) - segue:
      • alberi bilanciati: alberi rosso-neri
      • dimostrazione che gli alberi rosso-neri hanno altezza logaritmica
  • Grafi (1)
    • Definizioni e semplici proprietÓ
Esercizi assegnati:
  • Costruire un ABR inserendo successivamente le chiavi 41, 38, 31, 12, 19, 8.

Mercoledý 24 Maggio 2017 - Lezioni 39-40

  • Grafi (2)
    • Rappresentazione in memoria di grafi:
      • liste di adiacenza
      • matrice di adiacenza
      • matrice di incidenza
      • lista di archi
      • confronto tra rappresentazioni
    • Visite di grafi
    • Alberi di visita
    • Visita in ampiezza: proprietÓ dell'albero di visita in ampiezza, pseudocodice
    • Esempi di uso di visita in ampiezza: cammini pi¨ corti

Esercizi assegnati:

  • Dato G memorizzato con una struttura dati X, dare in output G memorizzato con un'altra struttura dati Y, dove X ed Y variano in tutti i modi possibili tra le 4 rappresentazioni viste

Esercitazioni 23-24: venerdý 26 maggio 2017

  • Ancora sugli alberi: funzioni eqTree e subTree per uguaglianza e relazione di sottoalbero.
  • Il problema del bilanciamento: versioni ingenue (quadratiche) ed efficienti (lineari) [dispensa D9 ].
  • Presentazione terzo Homework.
  • Esercizi da compiti precedenti:
    • creare una lista con i nodi del livello k: list levelK(binTree B, int k).
    • restituire una lista con i nodi nel cammino dalla radice a un nodo: list pathToX(binTree B, int x) [dispensa S6 ].

Lunedý 29 Maggio 2017 - Lezioni 41-42

  • Grafi (3)
    • Visita in ampiezza: costo computazionale in funzione della struttura dati usata
    • Visita in profonditÓ: pseudocodice, costo computazionale in funzione della struttura dati usata, proprietÓ dell'albero di visita in profonditÓ
    • Esercizi su grafi: cammini pi¨ corti e calcolo delle componenti connesse
    • Grafi euleriani e loro caratterizzazione

Esercizi assegnati:

  • Modificare lo pseudocodice della visita in ampiezza in modo che restituisca la lunghezza dei cammini minimi da un fissato nodo v a tutti gli altri nodi.
  • Dato un grafo G mediante le sue liste di adiacenza, progettare un algoritmo che dica se G Ŕ aciclico oppure no.
  • Dato un grafo G mediante le sue liste di adiacenza, progettare un algoritmo che restituisca il numero delle componenti connesse di G.

Esercitazioni 25-26: mercoledý 31 maggio 2017

  • Discussione terzo Homework.
  • Esercizi da compiti precedenti:
    • relazione prefisso tra alberi: int prefixTree(binTreeList L);
    • numeri naturali implementati come liste;
    • divisione di una lista [dispensa S6 ].

Lunedý 5 Giugno 2017 - Lezioni 43-44

  • Grafi (3)
    • Grafi bipartiti e loro caratterizzazione
    • Accoppiamenti massimi e massimali
    • Colorazioni minime e minimali

Mercoledý 7 Giugno 2017 - Lezioni 45-46

  • Esercizi di riepilogo in vista del secondo esonero e dell'esame scritto

Anni Precedenti

<a title="joomla visitor" href="http://statcounter.com/joomla/" target="_blank"><img class="statcounter" src="http://c.statcounter.com/6759759/0/81bd8f62/1/" alt="joomla visitor" >
Topic attachments
I Attachment History Action Size Date Who Comment
C source code filec coda.c r1 manage 1.5 K 2011-05-12 - 14:07 SimoneSilvestri  
Texttxt elemento_comune_vettori.txt r1 manage 0.4 K 2011-04-01 - 13:01 SimoneSilvestri  
C source code filec elimina_occorrenze.c r1 manage 2.0 K 2011-05-19 - 10:51 SimoneSilvestri  
C source code filec esempio1.c r1 manage 0.2 K 2011-03-15 - 10:25 SimoneSilvestri  
C source code filec fattoriale_iterativo.c r1 manage 0.3 K 2011-03-18 - 07:26 SimoneSilvestri Fattoriale iteraivo
C source code filec find_max_array.c r1 manage 0.6 K 2011-03-18 - 07:30 SimoneSilvestri  
C source code filec inserimento_ordinato.c r1 manage 1.0 K 2011-05-26 - 08:09 SimoneSilvestri  
C source code filec int_list.c r1 manage 0.8 K 2011-05-10 - 09:16 SimoneSilvestri  
C source code filec inverti_list.c r1 manage 1.5 K 2011-05-19 - 10:50 SimoneSilvestri  
C source code filec inverti_lista.c r1 manage 1.7 K 2011-05-12 - 14:09 SimoneSilvestri  
C source code filec liste_funzioni_ricorsive.c r1 manage 2.5 K 2011-05-26 - 08:09 SimoneSilvestri  
Texttxt minimo_vettore_ricorsivo.txt r1 manage 0.2 K 2011-03-31 - 11:05 SimoneSilvestri  
Texttxt occorrenze_vettore_ricorsivo.txt r1 manage 0.3 K 2011-04-01 - 13:00 SimoneSilvestri  
Texttxt palidromo_ricorsivo.txt r1 manage 0.4 K 2011-04-01 - 13:01 SimoneSilvestri  
C source code filec pila.c r1 manage 1.2 K 2011-05-12 - 14:07 SimoneSilvestri  
C source code filec pop.c r1 manage 0.2 K 2011-05-19 - 10:50 SimoneSilvestri  
C source code filec power_function.c r1 manage 0.4 K 2011-03-24 - 08:48 SimoneSilvestri  
C source code filec sum_positive_matrix.c r1 manage 0.7 K 2011-03-24 - 08:42 SimoneSilvestri  
Texttxt to_binary.txt r1 manage 0.2 K 2011-04-15 - 08:55 SimoneSilvestri  
Texttxt trova_vip.txt r1 manage 1.1 K 2011-04-15 - 08:55 SimoneSilvestri  
Texttxt trova_vip_lineare.txt r1 manage 0.8 K 2011-04-28 - 08:27 SimoneSilvestri  
Edit | Attach | Watch | Print version | History: r195 < r194 < r193 < r192 < r191 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r195 - 2017-06-02 - IvanoSalvo






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback