Universitatea Constantin Brâncuşi          Colegiul Naţional Ecaterina Teodoroiu
Universitatea Constantin Brâncuşi Colegiul Naţional Ecaterina Teodoroiu
din Tg Jiu din Tg Jiu

 

CONCURSUL DE INFORMATICĂ “RoTopCoder” 2013 – editia III

http://www.rotopcoder.ro

 

Regulamentul de concurs

Capitolul I. Cadrul General şi obiectivele concursului

Art. 1. Concursul RoTopCoder ( http://www.rotopcoder.ro ) se adresează elevilor şi studenţilor care prezintă un interes deosebit pentru dezvoltarea de aplicaţii informatice, având ca scop crearea unui cadru în care competitivitatea în rândul elevilor şi a studenţilor să le sporească performanţele şi să le stimuleze interesul.

Art. 2. A doua ediţie a concursului, din 26-28 aprilie 2013, se desfăşoară pe următoarele categorii:

  1. Programare
  2. Design şi Dezvoltare Web (aplicaţii web, website-uri)
  3. Artă Digitală

Capitolul II. Etapele şi organizarea concursului

Art. 3. Concursul este organizat de către Colegiul Naţional “Ecaterina Teodoroiu” din Tg Jiu, iniţiatorul acestei competiţii, în parteneriat cu Universitatea “Constantin Brâncuși” din Tg Jiu, Facultatea de Inginerie, Departamentul de Automatică, Energie și Mediu. În organizarea şi desfăşurarea concursului pot colabora şi societăţi sau instituţii ştiinţifice, culturale, organizaţii nonguvernamentale, autorităţi locale, cu persoane juridice sau fizice care sunt interesate în a sponsoriza aceste activităţi, în condiţiile prezentului regulament.

Art. 4. La concurs pot participa elevi din clasele IX-XII care sunt înscrişi la şcolile invitate în concurs din judeţul Gorj şi din alte judeţe; studenți de la Universitatea “Constantin Brâncuși” şi de la alte universități din țară.

Concurenţii – elevi vor fi grupaţi pe categorii de vârstă astfel:

a) clasa  a 9-a

b) clasa a  10-a

c) clasele 11-12

Clasamentele se vor realiza pe fiecare clasă.

Concurenții – studenți vor concura la aceeași categorie.

Art. 5. Selecţionarea participanţilor, precum şi a profesorului însoţitor este în atribuţia şcolilor și universităților invitate.

II. 1 Secţiunea Programare

Art. 6. Concursul se desfăşoară într-o singură zi şi constă dintr-o probă practică.

Durata  probei practice este de 3 ore şi constă din rezolvarea a 2–3 probleme de natură algoritmică folosind calculatorul. Rezolvarea unei probleme presupune elaborarea unui program corect, eficient din punct de vedere al timpului de execuţie şi al spaţiului de memorie folosit. Programa pentru concurs este programa şcolară de la profilul matematică-informatică, intensiv informatică corespunzătoare nivelului de studiu.

Secţiunea Programare – Studenti (Instrumentaţie Virtuală)

Durata  probei practice “Instrumentaţie Virtuală” pentru studenţi este de 3 ore şi constă în faptul că studenţii primesc codul sursă realizat în mediul de dezvoltare LabWindows/CVI al unei aplicaţii de control pe care vor trebui să o modifice conform cerinţelor formulate. Implementarea cerinţelor va presupune dezvoltarea codului sursă primit şi elaborarea unui program corect care să lucreze în timp real.

Programa pentru concurs este următoarea:

1. Noţiuni generale de sisteme software de achiziţie şi comandă.
2. Prezentarea generală a mediului de dezvoltare LabWindows/CVI al firmei National Instruments.
3. Elemente de bază: tipuri de date, variabile, constante, organizarea unei aplicaţii.
4. Prezentarea modului de lucru cu evenimente, întreruperi software/hardware.
5. Realizarea de aplicaţii folosind funcţii de tip CVICALLBACK()
6. Realizarea unei aplicaţii de sincronizare a unor taskuri pe evenimente generate hardware şi software.
7. Realizarea unei interfeţe grafice de aplicaţie.
8. Implementarea unei interfeţe software pentru un sistem de achiziţie şi comandă.
9. Implementarea software a unui driver de instrument.
10. Modalităţi de implementare a unei aplicaţii de prelucrare numerică a semnalelor.
11. Modalităţi de implementare a unei aplicaţii software distribuită
12. Includerea într-un program de aplicaţie a modulelor de program precompilate.
13. Interfaţarea cu alte limbaje de nivel superior.
14. Generarea şi importarea de biblioteci în mediul de dezvoltare Labwindows/CVI.
15. Dezvoltarea de aplicaţii pentru implementarea principiului instrumentaţiei virtuale.
16. Dezvoltarea de aplicaţii folosind mecanismul multithreading al sistemului de operare.

 

Secţiunea Programare – Studenti (limbajul C++)

Concursul se desfăşoară într-o singură zi şi constă dintr-o probă practică.
Durata  probei practice este de 3 ore şi constă din rezolvarea a 2–3 probleme de natură algoritmică folosind calculatorul. Rezolvarea unei probleme presupune elaborarea unui program corect, eficient din punct de vedere al timpului de execuţie şi al spaţiului de memorie folosit.

Programa pentru concurs este următoarea:
1.    Elementele de bază ale limbajului de programare. Noţiuni introductive

  • Structura programelor
  • Vocabularul limbajului
  • Tipuri simple de date (standard)
  • Constante, variabile, expresii
  • Citirea/scrierea datelor

Structuri de control

  • Structura liniară
  • tructura alternativă
  • Structuri repetitive

2.    Tipuri structurate de date. Tipul tablou. Tablouri unidimensionale şi bidimensionale.
Fişiere text.

  • Definire.
  • Operaţii specifice.

3.    Algoritmi fundamentali de prelucrare a datelor structurate în tablouri

  • căutare secvenţială, căutare binară
  • sortare
  • interclasare
  • prelucrări specifice tablourilor bidimensionale

4.    Algoritmi elementari.
1. Prelucrarea numerelor:

  • prelucrarea cifrelor unui număr (de exemplu, suma cifrelor, testarea proprietăţii de palindrom, etc.)
  • probleme de divizibilitate (de exemplu,determinarea divizorilor unui număr, determinarea c.m.m.d.c./c.m.m.m.c., testare primalitate, etc.)
  • calculul unor expresii simple (sume, produse, etc.)

2. Prelucrarea unor secvenţe de valori:

  • determinare minim/maxim
  • verificarea unei proprietăţi (de exemplu, dacă toate elementele din secvenţă sunt numere perfecte, etc.)
  • calculul unor expresii în care intervin valori din secvenţă (de exemplu: numărarea elementelor pare/impare, etc.)
  • generarea şirurilor recurente (de exemplu: şirul Fibonacci)

5. Recursivitate. Relaţii de recurenţă. Rezolvarea relaţiilor recurente. Funcţii de program recursive. Funcţii recursive cu parametri vectori. Problema platoului.
6. Stive si cozi. Implementarea cozii si stivei. Implementarea dinamica a cozilor si stivelor
7.  Alocarea dinamica de memorie in C++.
8.  Liste simplu si dublu înlănţuite. Liste simplu înlănţuite. Stive. Cozi. Liste dublu înlănţuite.
9.  Elemente de teoria grafurilor. Memorarea grafurilor. Parcurgere a grafurilor.
10. Algoritmi pentru prelucrarea grafurilor.
11. Arbori. Parcurgerea arborilor. Implementarea arborilor binari
12.  Metoda greedy de elaborare a algoritmilor. Probleme ce conduc la metoda greedy. Problema rucsacului. Planificarea spectacolelor. Memorarea optimală pe benzi
13. Metoda Divide et Impera de elaborare a algoritmilor. Căutarea binară. Turnurile din Hanoi. Sortarea rapidă a vectorilor(interclasare, quick). Găsirea cmmdc a n numere întregi.
14. Metoda Backtracking de elaborare a algoritmilor. Variantele iterativă şi recursivă. Problema celor n regine. Ordonarea unui vector. Generarea produsului scalar a n mulţimi.
Grafuri hamiltoniene şi euleriene. Problema comis-voiajorului. Problema colorării grafurilor.
15. Combinatorica. Metode de reprezentare a multimilor. Generarea produsului cartezian. Generarea unei submultimi. Generarea de permutari. Generarea aranjamente. Generarea combinarilor. Generarea partitiilor unei multimi.

 

II.2 Design și dezvoltare web înscriere și criterii de eligibilitate

A. Înscrierea

Art.7. Proiectele care vor participa la evenimentul final vor fi selectate doar dintre cele înscrise pâna la data de 20 aprilie 2013, prin completarea formularului online. Pentru fiecare proiect, se vor trimite comisiei până la data de 20 aprilie 2013, în variantă electronică, următoarele:

–         Sursa completă a aplicaţiei

–         o documentaţie a proiectului (pagina de titlu cu denumirea proiectului, autor, clasa, şcoala, profesorul îndrumător / nume student, universitatea, profesor îndrumător; prezentarea proiectului, posibilităţi de dezvoltare ulterioară a proiectului, referinţe bibliografice).  Adresa de e-mail la care se vor trimite proiectele se specifică pe site-ul concursului.

–         link spre domeniul pe care este postată aplicaţia

Art.8. Rezultatele se vor afișa în data de 25 aprilie 2012 pe site-ul concursului.

B. Criteriile de eligibilitate

Art.9. Pentru ca un proiect să fie eligibil, autorii acestuia trebuie să fie elevi în ciclul liceal sau student; orice alt considerent de natură sexuală, socială, religioasă etc. este irelevant.

Art.10. Un proiect poate avea doi autori în cazul în care gradul acestuia de complexitate este ridicat; sub nicio formă numărul autorilor unui proiect nu poate fi mai mare. De asemenea, în cazul în care există doi autori ai aceluiași proiect, fiecare dintre cei doi trebuie să fi avut o contribuție în cadrul proiectului.

Art.11. Este necesar ca participanţii să prezinte sursele proiectelor, ca dovadă că acestea le aparţin; în cazul în care nu ei sunt autorii lucrărilor, vor fi respinşi din concurs. Respingerea din concurs poate avea loc şi ca urmare a încălcării dreptului persoanelor la proprietate, caz în care organizatorul nu îşi asumă răspunderea şi nu poate fi făcut responsabil pentru consecinţele aferente.

Art.12. Orice persoană sau grup de două persoane se poate înscrie în concurs cu o singură lucrare. Organizatorii îşi rezervă dreptul de a permite participanţilor să prezinte şi alte proiecte în afara celor aflate în concurs, însă în afara competiţiei.

Art.13. Se pot înscrie în concurs numai lucrări din domeniul comunicării digitale – site-uri.

Art.14. Sunt considerate valide lucrările cu măcar o variantă în limba română, tratând tema care este specificată pe site-ul concursului, însă proiectele încrise nu sunt eligibile dacă promovează sexul, discriminarea sau violenţa de orice fel.

Art.15. În cazul în care există deficienţe majore în materie de conţinut, lucrările sunt considerate a nu fi eligibile.

B. Criteriile de evaluare – design şi dezvoltare web

Art.16 Evaluarea proiectelor prezentate se va realiza ţinând cont de următoarele:

– Design (logo, cromatică, aşezare în pagină etc.)

Arhitectură şi funcţionalitate

User Experience (este permisa folosirea frameworkurilor JS – jQuery, prototype, etc.)

Programare Server Side (PHP si MySQL – folosirea unui framwork este permisa, se va urmari normalizarea bazei de date, performanta, securitatea, redundanta codului, folosirea functionalitatilor noi ale PHP-ului si MySQL-ului)

SEO (titlu, descriere, cuvinte cheie, robots.txt, XML site map etc.) si W3C compliance (este apreciat codul “curat”)

Capitolul III. Desfășurarea concursului

Art.17. Participanții la evenimentul final al concursului vor avea cazarea și masa gratuită. Cheltuielile suportate de finaliştii concursului pentru transport nu vor fi decontate.

Art.18. Fiecare participant la proba de Design si Dezvoltare Web prezintă juriului lucrarea realizată de el în format electronic, însoţită de documentaţia aferentă (care nu va depăşi 5 pagini). Proiectul realizat împreună cu materialele aferente vor fi aduse pe suport de memorie externă (CD, DVD, flash-disk).

Capitolul IV. Problemele de concurs

Art. 19. În alcătuirea tuturor problemelor se vor avea în vedere cerinţe care să permită valorificarea cunoştinţelor dobândite de elevi și studenți, precum şi a capacităţilor de analiză, de sinteză, de evaluare, de soluţionare şi de utilizare a cunoştiinţelor dobândite.

Art. 20.

În alcătuirea cerinţelor pentru proba “Instrumentaţie Virtuală” se va încerca să se pună în evidenţă capacităţile de analiză, sinteză, soluţionare şi utilizare a cunoştinţelor dobândite, în domeniul ingineresc la nivelul implementării practice a unei aplicaţii de automatizare.

Capitolul V. Derularea probei de concurs – programare

Art. 21. Concurenţii vor fi prezenţi în sălile de concurs la ora 8:30.

Art. 22. Fiecărui participant i se va atribui un identificator unic (ID).

Art. 23. Timp de 30 de minute după primirea subiectelor, concurenţii pot formula întrebări referitoare la enunţurile problemelor. Întrebările se formulează în scris, pe foaia cu întrebări vor fi precizate numele problemei, ID-ul concurentului şi sala în care acesta lucrează. Întrebările trebuie formulate astfel încât răspunsul să poată fi DA sau NU. În cazul în care întrebarea este ambiguă, îşi găseşte răspunsul în enunţul problemei sau solicită informaţii despre modalitatea de rezolvare a problemei, răspunsul va fi FĂRĂ COMENTARII. Concurenţii vor accepta răspunsuri semnate numai de unul dintre membrii comisiei.

Art. 24. Precizări

În timpul probei de concurs, concurenţii:

– nu vor avea asupra lor telefoane mobile sau alte mijloace de comunicaţie;

– nu vor utiliza suporturi de memorare externe proprii (CD/flash-disk);

– nu vor utiliza alte surse de documentare decât, eventual, HELP-ul mediului folosit;

– nu vor incerca să interfereze în nici un mod cu activităţile altui concurent sau a sistemului de evaluare;

– nu vor deteriora mediile de lucru;

În programele concurenţilor nu sunt permise următoarele:

– schimbarea drepturilor de acces la fişiere;

– executarea unor alte programe.

Orice încercare de fraudă sau de a sabota desfăşurarea corectă a concursului va fi urmată imediat de eliminarea elevului respectiv din concurs.

Art. 25. Salvarea soluţiilor concurenţilor

– Salvarea soluţiilor concurentului va fi realizată de membrii comisiei tehnice, în prezenţa concurentului.

– Fiecare concurent va salva sursele proprii într-un director având drept nume ID-ul său. În acest director se va găsi câte o singură sursă pentru fiecare problemă rezolvată. Atât numele fişierelor cât şi extensiile acestora se vor scrie cu litere mici, aşa cum se precizează în enunţul fiecărei probleme.

Art. 26. Contestaţii.

Dacă în urma testării soluţiilor proprii cu datele de test furnizate de comisie un concurent constată că apar diferenţe faţă de comportamentul specificat în borderoul de evaluare, acesta poate depune o contestaţie scrisă. Comisia va reevalua toate soluţiile concurenţilor care au depus contestaţii. În cazuri excepţionale, este posibil ca o anumită problemă să se reevalueze pentru toţi concurenţii. Punctajul final este cel obţinut după reevaluare.

Capitolul VI. Stabilirea rezultatelor şi clasamentelor

ART. 27. Punctajul maxim pentru fiecare problemă se stabileşte de către comisie.

ART. 28. În funcţie de punctajul obţinut se va realiza un clasament individual pe clase.

ART. 29. Premierea se va face în ordinea descrescătoare a punctajelor între limitele stabilite de către comisie.

ART. 30. Comisia poate constitui premii speciale.

Capitolul VII. Aspecte organizatorice

Art. 31. Pentru coordonarea concursului se constituie:

  • Comisia de Concurs care se va ocupa de realizarea subiectelor va fi constituită din cadre didactice universitare, profesori din învăţământul preuniversitar, studenţi şi persoane cu o solidă reputaţie în domeniul IT.
  • Comisia de organizare este formată din profesori ai Colegiului National “Ecaterina Teodoroiu” și cadre didactice de la Universitatea “Constantin Brâncuși” din Tg  Jiu

Art. 32. Comisia de organizare menţionată mai sus are următoarele atribuţii şi sarcini:

– asigură difuzarea şi cunoaşterea regulamentului de organizare şi desfăşurare a concursului

– asigură baza materială necesară bunei desfăşurări a acestuia

– informează în mass-media asupra desfăşurării concursului, comunică rezultatele obţinute şi clasamentul concursului

– programa pentru concurs este cea pentru olimpiada judeţeană de informatică, în cazul elevilor

– programa pentru proba “Instrumentaţie Virtuală”, în cazul studenţilor este prezentată în Art.6.

– răspunde de corectitudinea desfăşurării concursului şi a evaluării

– alcătuieşte evidenţa elevilor şi a echipelor participante la concurs

Comisia de Concurs are următoarele atribuţii:

– stabileşte subiectele, bateriile de teste şi jurizarea surselor

– rezolvă contestaţiile în prezenta elevului care a făcut contestaţia şi/sau a cadrului didactic însoţitor

– stabileşte clasamentele şi le aduce la cunoştinţă concurenţilor

– avizează listele cu premii şi menţiuni

– înmânează împreună cu sponsorii diplomele şi premiile într-un cadru festiv

– prezintă concluzii reieşite în urma concursului şi face recomandări pentru perfecţionarea activităţii viitoare

Art.33. Organizatorii îsi rezervă dreptul de a respinge formularele primite în cazul în care acestea sunt incomplete sau veridicitatea informațiilor continute este îndoielnică.

Art.34. Organizatorii stabilesc numărul de participanți pentru fiecare secțiune a concursului.

Art.35. Comisia de concurs împreună cu organizatorii răspund de corectitudinea desfășurării concursului, avizează listele cu premii și mențiuni și semnează atât diplomele de premiere cât și documentele de analiză și datele statistice.

Anexă

Mediul de lucru – concurs de programare

a)  Pentru ELEVI – Comisia tehnică va pune la dispoziţia concurenţilor compilatoare/medii de programare: Free Pascal si Code Blocks.

b)  Pentru STUDENȚI – Comisia tehnică va pune la dispoziţia concurenţilor mediul de dezvoltare LabWindows/CVI

Evaluare – concurs de programare

a) Pentru ELEVI – Se vor folosi la evaluare compilatoarele: Code Blocks si FreePascal sub sistemul de operare Windows.

Evaluarea soluţiilor concurenţilor se va realiza cu un sistem automat de evaluare, fără prezenţa concurenţilor.

Compilarea surselor concurenţilor este realizată de către evaluator.

b) Pentru STUDENȚI – Evaluarea se va realiza de către comisia de evaluare prin analiza răspunsului sistemului simulat, ce a fost implementat ca soluţie la cerinţele formulate. Evaluarea se va face în prezenţa studenţilor.

 

Observaţie

După evaluare, concurenţii vor putea reveni în sălile de concurs şi îşi vor putea testa soluţiile proprii pe datele de test utilizate la evaluare. Comisia va pune la dispoziţia concurenţilor datele de intrare utilizate, precum şi date de ieşire corecte pentru acestea.

De asemenea comisia va afişa o descriere a soluţiilor problemelor ce au constituit proba de concurs.