Articoli Manifesto Tools Links Canali Libri Contatti ?
SIForge / GaraGuru

GaraGuru .1

Abstract
Pensate di essere bravi e volete dimostrarlo? GaraGuru è il modo per mettervi alla prova!
Data di stesura: 26/04/2004
Data di pubblicazione: 10/05/2004
Ultima modifica: 04/04/2006
di Giovanni Giorgi, Marco Lamberto, Stefano Fago Discuti sul forum   Stampa

[Figura 1]

Figura 1

Gara che? Cos'è GaraGuru

La communità di lettori di SIForge.org è vistosamente cresciuta, per cui abbiamo pensato che potesse essere interessante indire un piccolo concorso, per stimolare nuove discussioni ed esplorare nuovi temi.

Regolamento

Il Contest consiste nel risolvere almeno una delle quattro sfide proposte.
È possibile svolgere le sfide in uno tra i seguenti linguaggi: Visual Basic, Pascal, Perl, Java, SmallTalk Squeak, C, C++, PHP, Python, Ruby, Common Lisp, Scheme, AppleScript, shell script (bash, sh, ksh, zsh, tcsh, ...).
Potete usare altri lunguaggi a patto di segnalare anche l'interprete e/o il compilatore di riferimento da voi usato, devono essere strumenti Open.

Il risultato va spedito via e-mail a: garaguru@siforge.org

La data ultima per partecipare è il 15 giugno 2004, la proclamazione dei vincitori avverrà nella settimana successiva.

I premi

Ai quattro vincitori, uno per ciascuna prova, verrà fatto omaggio di un libro a scelta fra questi: Siete pregati di segnalare la vostra preferenza al momento della spedizione della soluzione.

SIForge.org ringrazia la collaborazione di Gorilla.it.

Le sfide

1. Web Clipping

Tipologia: web

Scrivete, in un linguaggio a piacere, un componente (ovvero una classe o una funzione) che dato un url, sia in grado di estrarne un frammento. Per esempio, dato http://www.slashdot.org/, il webclipper deve essere in grado di estrarne un particolare articolo.
In input il componente deve prevedere i seguenti parametri:

  • url web
  • tag html di inizio clip (es <table>)
  • tag html di fine clip (es </table>)
  • espressione regolare che estragga i frammenti (es <td>(.*)</td> estrae il contenuto di ogni td).

In output il web clipper deve fornire i frammenti che eseguono il matching con l'espressione regolare.
Il programma deve poter funzionare da linea di comando.

2. Bug Hunter

Tipologia: narrativo

Descrivete il peggior bug che avete dovuto affrontare. Mostrate il segmento di codice incriminato, e raccontate come avete diagnosticato il problema e come lo si è risolto.
Il testo non deve superare le 2 pagine circa (5000 battute).

3. Classe ad oggetti

Tipologia: UML / simulazione

Modellate il funzionamento di una scuola statale italiana.
Nella scuola vi sono un numero indefinito di sezioni (A, B, C, ecc) ognuna con 5 classi (es. 1B, 2B, ecc).
In ogni classe vi sono tra i 15 e i 30 alunni.
Ogni classe ha almeno 2 docenti assegnati.
Ogni studente si sorbisce 5 ore al giorno di lezione, per sei giorni.

Descrivete con del codice, i seguenti use case:

  1. appello
  2. aggiunta/rimozione di docenti
  3. arrivo di studenti ripetenti (simulazione di una bocciatura).
Ricordate: il modello deve prevedere un numero indefinito di sezioni!

È richiesto il codice delle classi del modello, in un linguaggio a piacere tra quelli elencati in precedenza. È tassativo l'uso ad oggetti se si presenta un'implementazione in PHP, C/C++ o Visual Basic.

4. Algoritmi + strutture dati = eeeh?

Tipologia: teorico / algoritmico

Descrivete la struttura dati più strana che vi siete dovuti inventare.
Mostrate a cosa serve e giustificatene l'utilità in generale o nel contesto specifico del vostro problema.
Esempio di strutture dati "esoteriche": SkipList, AVL Trees

Il testo non deve superare le 3 pagine circa (7000 battute).

Ed ora ...

In attesa della proclamazione dei vincitori, buon lavoro!

La Redazione

Informazioni sugli autori

Giovanni Giorgi, classe 1974. Dopo il diploma di liceo Classico, si è laureato in Informatica nel febbraio 2000, e attualmente lavora nel campo del software finanziario (trading on line, soluzioni web).
Appassionato di linguaggi di programmazione, si interessa anche di politica e letteratura.

È possibile consultare l'elenco degli articoli scritti da Giovanni Giorgi.

Marco Lamberto, laureato in Informatica presso la Statale di Milano, con diversi anni di esperienza sistemistica, di sicurezza e sviluppo prevalentemente in ambienti UNIX (Linux in primis) con linguaggi come C, Java, Perl, PHP, XML, HTML, ...

È possibile consultare l'elenco degli articoli scritti da Marco Lamberto.

Stefano Fago, classe 1973. Diplomato in ragioneria, ha conseguito il Diploma di Laurea in Informatica con un progetto legato alle interfacce grafiche soft-realtime in Java. Dopo esperienze in Alcatel ed Elea, ha svolto attività di consulenza come Software Developer e Trainer alla ObjectWay S.p.A. sede di Milano. Attualmente Software Designer presso la sezione Innovazione e Attività Progettuali di BPU Banca. Appassionato del linguaggio Java e di tutte le tecnolgie Object Oriented. Polistrumentista dilettante.

È possibile consultare l'elenco degli articoli scritti da Stefano Fago.

Altri articoli sul tema SIForge / GaraGuru.

Discuti sul forum   Stampa

Cosa ne pensi di questo articolo?

Discussioni

Questo articolo o l'argomento ti ha interessato? Parliamone.