Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2008-02-25 14:56:25.
Revizia anterioară   Revizia următoare  

Arhiva educationala normalnormalnormalnormalnormal

Se propune construirea unei noi arhive de probleme care sa aiba exclusiv scop educational. Spre deosebire de probleme de concurs in care se imbina mai multi algoritmi si rezolvarea de obicei nu este evidenta, problemele din aceasta arhiva vor fi create special pentru cei care vor sa invete cum sa implementeze un algoritm sau o metoda de rezolvare anume. Se va permite accesul la teste, surse si se vor da si link-uri catre documentatie. Mai multe despre acest proiect gasiti aici.

De ce m-as baga?

1. Vei invata cum se creeaza probleme pe infoarena
2. Vei deveni cunoscut
3. Poti invata mai multe despre subiectele care le abordezi
4. Munca ta va ajuta mii de persoane sa invete informatica, si intreaga comunitate iti va fi rescunoscatoare
5. Toate cele de mai sus

Cum pot sa contribui?

1. Contacteaza unul din responsabilii pentru acest proiect pe forumul infoarena:

2. Precizeaza in mesajul tau de intentie ce probleme doresti sa pregatesti. Problemele pe care le-ai ales trebuie sa se regaseasca in tabelul de mai jos sau poti veni cu un algoritm nou care nu e trecut in tabel, iar acesta se va completa corespunzator. Problemele nu trebuie sa fie repartizate nimanui in momentul in care sunt alese.

3. Dupa ce ai obtinut acordul unui responsabil de proiect, vei obtine statutul de helper. In acel moment, vei putea incepe sa editezi problemele. Va trebui sa redactezi enuntul, sa faci teste si eventual un evaluator. Documentatia necesara se gaseste aici.

4. In momentul in care ai finalizat o problema, ea va fi adaugata de catre un administrator in arhiva educationala. Mii de utilizatori infoarena iti vor multumi pentru initiativa ta!

Cine lucreaza

Responsabili de proiect:

Voluntari:

Continutul arhivei

In tabelele de mai jos se afla cei mai importanti algoritmi care trebuie sa se gaseasca sub forma de probleme in arhiva educationala. Pentru fiecare problema este trecut si un responsabil. Responsabilul pe problema va fi cel care s-a oferit prin voluntariat sa o introduca in arhiva. El va fi cel care va scrie enuntul, va crea testele si eventual un evaluator.

Puteti veni oricand cu propuneri si sugestii de probleme noi pe forum!

Nu va apucati de lucru pana nu sunteti informati despre modul in care se baga problemele!

Matematica:

Denumire problemaResponsabilFinalizat
Algoritmul lui EuclidfilipbFilip Cristian Buruiana filipbsmall
Algoritmul lui Euclid extins-small

Programare dinamica:

Denumire problemaResponsabilFinalizat
Cel mai lung subsir comunfilipbFilip Cristian Buruiana filipbsmall
Cel mai lung subsir crescatorFlorianFlorian Marcu Floriansmall
Knapsackgabitzish1Gabriel Bitis gabitzish1small

Algoritmi pe grafuri:

Denumire problemaResponsabilFinalizat
Parcurgere BFSFlorianFlorian Marcu Floriansmall
Parcurgere DFS - componente conexegabitzish1Gabriel Bitis gabitzish1small
Componente biconexe-small
Componente tare-conexe-small
Sortare topologica-small
Lant hamiltonian-small
Ciclu eulerian-small
Algoritmul lui Prim-small
Algoritmul lui Kruskal-small
Algoritmul lui Djikstra-small
Algoritmul Floyd-Warshall-small
Algoritmul Bellman-Ford-small
Algoritmul Roy-Floydgabitzish1Gabriel Bitis gabitzish1small
Flux maxim-small
Flux maxim de cost minim-small
Cuplaj maxim-small
Cuplaj maxim de cost minim-small
Lowest Common Ancestor-small

Siruri de caractere:

Denumire problemaResponsabilFinalizat
Potrivirea sirurilor-small
Arbori de sufixe-small
Trie-small

Structuri de date:

Denumire problemaResponsabilFinalizat
Heapuri-small
Hashuri-small
Arbori de intervale-small
Arbori de indexati binar-small
Range Minimum Query-small
Double ended queue (deque)-small
Structuri de multimi disjuncte-small

Geometrie:

Denumire problemaResponsabilFinalizat
Punct in poligon-small
Infasuratoare convexa-small
Diagrame Voronoi-small

Diverse:

Denumire problemaResponsabilFinalizat
Cautare binaraFlorianFlorian Marcu Floriansmall

Mentionam faptul ca anumiti algoritmi pot fi implementati in complexitati diferite. De exemplu, pentru algoritmul de drumuri minime al lui Djikstra exista atat o solutie de complexitate O(N2), cat si o solutie O(M log2 N). In acest caz, propunem sa nu se faca doua probleme diferite, ci sa se diferentieze punctajul in functie de rezolvare. Diferentierea pentru diferite abordari (complexitati) va fi precizata clar in enunt la rubrica de restrictii. De exemplu: "Un algoritm de complexitate O(N2) obtine 50 de puncte", "Algoritmul Ford-Fulkerson obtine 30 de puncte. Pentru punctaj maxim este necesara implementarea algoritmului lui Dinic.".

Documentatie

Sugestii

Cosmin: ar fi misto sa facem niste useri, admin sau comisie 1 2 3, ca sa poata fi cautate in arhiva usor solutiile oficiale, sau putem pune link la ele din textul problemei.
Cosmin: de asemenea nu cred ca trebuie sa ne chinuim la teste foarte tare, e important ca pe teste sa iti dai seama daca algoritmul e corect si din timpii de executie te poti prinde cat de eficient e.
astronomy: cred ca acum ar trebui sa-si spuna mai multi parerea si sa se ajunga la un format clar in ceea ce priveste problemele. de exemplu, eu ma gandesc sa existe o pagina mare pentru tehnica respectiva, iar aceasta pagina sa contina la inceput o mica introducere, apoi linkuri catre articole sau alte materiale de documentatie, apoi o lista cu problemele care fac parte din arhiva educationala (eventual la fiecare problema si idei de rezolvare daca este cazul si linkuri spre sursele "comisiei") iar apoi o lista cu alte probleme care se pot rezolva folosind cele invatate (de preferat problemele sa fie in ordine crescatoare a dificultatii). voi ce credeti?
Cosmin: eu nu cred ca e neaparat sa existe pagina cu mai multe linkuri sau daca exista la inceput nu trebuie sa fie foarte detaliata. De exemplu merge o pagina cu 2 linkuri la Dijkstra: Dijkstra simplu si Dijkstra cu heapuri spre doua surse si inca unul spre textul problemei, sau chiar din textul problemei sa fie linkurile. Si apoi pe masura ce lumea se uita si citeste poate adauga cine vrea material mai mult.

Ideea e ca vrei sa ai ceva folositor si functional cat mai repede, apoi articole cu explicatii mai detaliate pot aparea de la sine.
Alta chestie ar fi ca sursele considerate oficiale sa urmeze toate acelasi coding style, si sa aiba comentarii, iar cativa dintre coordonatori sa se asigure ca sursele sunt deajuns de frumos scrise si inteligibile. Asta ar ridica destul de mult calitatea exemplelor si le-ar si uniformiza.