Cosa è un problema
Per "problema" in questo contesto si intende l'aggregazione di testo, risposta numerica e soluzioni commentate di un quesito della tipologia proposta nelle gare matematiche del circuito delle Olimpiadi della Matematica.
In questo archivio consideriamo problemi che hanno:
- una o più versioni del testo: in italiano o in inglese e con o senza ambientazione;
- una o più risposte numeriche formate da 4 cifre, tuttavia la possibilità di avere più di una risposta corretta è riservata solo a quei problemi che sono stati oggetto di difetti (testo impreciso, etc.) e che quindi hanno più di una risposta accettabile;
- una o più soluzioni commentate (anche queste possono essere proposte in italiano o in inglese). Le soluzioni possono essere quelle ufficiali (es. soluzioni ufficiali della gara) o proposte da altri soggetti, caso in cui viene anche indicato l’autore.
Infine i problemi sono catalogati secondo:
- livello di difficoltà compreso tra 1 e 5;
- categoria, a scelta tra: algebra, geometria, combinatoria, teoria dei numeri e “altro”;
- fonte.
Qua si trova un problema di esempio: Problema di Gauss
Come è fatto un problema
Nell'archivio un problema è un file compresso .zip contenente:
- un file
problem.xml: si tratta del problema vero e proprio, qua sono memorizzati tutti i testi, le risposte e le soluzioni del problema; - una cartella
imgcon tutte le immagini incluse nei testi o nelle soluzioni del problema in formato.gif,.pnge/o.jpeg.
Il file problem.xml deve rispettare lo schema seguente per poter essere letto e interpretato dal software.
<?xml version="1.0" encoding="UTF-8" ?>
<problem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" level="{1, 2, 3, 4, 5}" category="{NT, GEOM, ALG, COMB, OTHER}" link="https://youtube.com/..." source="allenamento..." collection="{Trofeo Copernico 2016, Premio Rabuzzi 2015, Gara Locale 2012, …}" author="C. F. Gauss" note="note addizionali">
<question setting="{true, false}" lang="{IT, EN}">
<title> Titolo del problema </title>
<paragraph> 1° paragrafo del testo </paragraph>
<figure filename="nome del file" filetype="{png, gif, jpeg}"> Didascalia </figure>
<paragraph> 2° paragrafo del testo </paragraph>
<paragraph> 3° paragrafo del testo </paragraph>
<embed> Contenuto multimediale in HTML con caratteri di escape </embed>
… altri paragrafi/figure/contenuti multimediali
</question>
… altre versioni del testo
<answer>****</answer>
… eventuali risposte multiple
<solution lang="{IT, EN}" author="…">
<paragraph> 1° paragrafo della soluzione </paragraph>
<figure filename="nome del file" filetype="{png, gif, jpeg}"> Didascalia </figure>
<paragraph> 2° paragrafo della soluzione </paragraph>
<paragraph> 3° paragrafo della soluzione </paragraph>
<embed> Contenuto multimediale in HTML con caratteri di escape </embed>
… altri paragrafi/figure/contenuti multimediali
</solution>
… eventuali altre soluzioni
</problem>
Campi opzionali:
- il tag titolo verosimilmente sarà presente solo nella versione del testo con ambientazione (dal momento che i titoli ne fanno parte);
- l’attributo autore delle soluzioni sarà presente solo in soluzioni alternative a quella ufficiale, la quale è senza autore;
- l'attributo note deve essere utilizzato solamente laddove sono presenti fatti degni di nota.
Attributi alternativi (uno e solamente uno di questi attributi deve comparire):
- collection se è preso da una gara (tutti i possibili valori sono disponibili alla pagina Collections);
- link se è preso da una risorsa linkabile (es. video su YouTube);
- author se è un problema originale inventato dall'autore;
- source per tutto il resto.
N.B. L'attributo author del problema è obbligatorio qualora il problema non abbia altra fonte (i.e. è stato inventato), ma può essere specificato anche in caso di fonte "source" o "link".
Nei testi e nelle soluzioni può essere inserito testo matematico che poi verrà mostrato automaticamente nelle pagine del sito. In particolare nei tag <paragraph> può essere inserito testo in LaTeX (guida completa: L'arte di scrivere con LaTeX). Questo deve essere compreso tra simbolo di dollaro ($ 1+1=2 $) per le formule in linea o tra doppi dollari ($$ 1+1=2 $$) per le formule non in linea.
Inoltre può essere inserito anche codice HTML (ad esempio per la formattazione o altro) a patto che i caratteri di escape dell'XML (>, <, ", ', &) vengano sostituiti con le corrispondenti entità (>, <, ", ', &). Questo vale anche per il codice HTML contenuto nei tag <embed>. Esistono numerosi tool online per automatizzare questo processo, tra cui Free Online XML Escape / Unescape.
È possibile scaricare il file sorgente del problema di esempio proposto nelle precedente sezione: Problema di Gauss (sorgente)
Come scrivere un problema
I problemi devono essere scritti in un file di testo problem.xml (è sufficiente scrivere un file .txt col classico “blocco note” e rinominarlo .xml). I file devono seguire lo schema riportato alla sezione precedente.
Le immagini da allegare al problema possono essere in formato .png, .gif o .jpeg (se sono in formato .jpg basta rinominarle in .jpeg, si tratta dello stesso formato!).
La cartella img contenente le immagini e il file problem.txt devono essere compressi in un archivio .zip (pressoché tutti i sistemi operativi offrono supporto nativo per gli archivi .zip).
Alla pagina Validazione è possibile controllare se il file problem.xml e/o l'archivio .zip sono stati creati correttamente. Caricando il solo file problem.xml (senza necessità di allegare immagini, anche qualora siano previste) o l'intero archivio .zip verrà mostrato il risultato della validazione con una lista di errori, qualora il file non sia valido, oppure un'anteprima del problema se il file risulta valido.
L'anteprima consente di verificare la presenza di eventuali errori di scrittura nei testi e nelle soluzioni, in particolare nelle formule matematiche.
Una volta verificata la corretta composizione del problema è possibile inviarlo per l'approvazione alla pagina Carica problema