Info Center - Soft - Cluj - 2009 Nationala

Informatii generale

  • Categorie: Soft
  • Judetul: Cluj

Descriere

Ce este Info Center?
o Un program care reprezintă o platformă de învăţare şi aprofundare a cunoştinţelor la materia Informatică (clasele 9-12) (limbaj: C++)
o Este format din două zone: pentru elev şi pentru profesor.

De ce Info Center?
o Reprezintă un ajutor pentru profesor prin faptul că poate ajuta elevul să îşi aprofundeze şi să îşi testeze singur cunoştinţele.
o Programul reprezintă o alternativă pentru modul clasic de predare în şcoli.
o Profesorul poate adăuga foarte uşor conţinut la categoriile: Lecţii, Teste, Probleme.
o Aplicaţia se poate folosi acasă, de către elevi – se actualizează când este conectată la internet.

Tehnologiile si librăriile folosite
o .NET Framework 3.5 (C#)
o Microsoft Access Database
o Telerik RibbonBar
o #TextBox – editor de text
Detalii aplicaţie

  1. Zona pentru elevi - utilizare
    Această zonă este utilizată de elevi, deoarece nu se pot face modificări care să afecteze conţinutul. Ea este compusă din 4 părţi: Lecţii, Teste, Probleme, Compilator. Lecţiile, testele si problemele au un atribut dificultate - care reprezintă gradul de cunoştinţe necesar pentru parcurgerea acestora. De asemenea, acestea sunt grupate în funcţie de categoria de materie unde se situează (e.g.: stive, cozi, grafuri, etc.)

a) Lecţii
Elevul poate naviga prin lecţiile puse la dispoziţie. Lecţiile sunt afişate in format HTML. Acestea pot conţine si elemente de genul: animaţii, imagini, sunete, clipuri video, etc. Lecţiile pot avea asociate anumite probleme sau teste, astfel, după parcurgerea lecţiei, elevii să poată să exerseze şi să se testeze.

b) Teste
Testele reprezintă o colecţie de întrebări. Aceste întrebări pot fi de două tipuri: Întrebări grilă sau întrebări simple. Cele grilă conţin 4 itemi din care elevul va alege o singură opţiune. Cele simple, verifică răspunsul elevului, cu cel setat de profesor. Acest gen de întrebări trebuie să aibă o soluţie unică (e.g.: număr, şir de caractere, dar nu drumurile existente intr-un graf). Testele vor afişa corectarea răspunsurilor elevului, si vor afişa rezultatul final, prin adunarea punctelor obţinute prin răspunderea corecta la întrebări.

c) Probleme
Problemele reprezintă rezolvări complete ale unor cerinţe. Ele pot fi compilate in compilator şi verificate cu date de test. Problemele au cuvinte cheie asociate care facilitează găsirea unor probleme care au o anume cerinţă de rezolvat. Există de asemenea şi posibilitatea de a se caută prin titlul sau cerinţa problemelor, sau să se salveze codul sursă într-un fişier pe disc.

d) Compilator
Compilatorul reprezintă un mic mediu de dezvoltare a programelor scrise de elev. Acesta afişează erorile în cazul în care, codul sursă al elevului nu este scris corect. O facilitate foarte importantă, este aceea de testare a problemei. Astfel, utilizatorul poate rezolva o anumită problemă, după care, cu ajutorul compilatorului va verifica dacă datele de ieşire rezultate ca urmare a rulării problemei pe un set de date de intrare, sunt la fel ca cele specificate de profesor, sau chiar de însuşi elevul, acesta având posibilitatea de a-şi introduce propriile date de test.

  1. Zona profesorului – administrare
    Această zonă este folosită de profesor pentru a administra foarte uşor conţinutul afişat în zona elevului. Accesul către această zonă se face doar pe baza unui nume de utilizator si parolă. La fel ca si zona pentru elev, aceasta este împărţită în: Lecţii, Probleme şi Teste. Problemelor şi testelor le pot fi specificate şi tipul, aceasta reprezentând zona de materie căreia îi sunt dedicate (exemplu: stivă, coadă, backtracking, etc.)
    a) Lecţii
    Lecţiile sunt administrate foarte simplu. Aici putem specifica un titlu, dificultate, locaţia fişierului lecţiei (în format HTML), precum şi problemele si testele asociate.

b) Probleme
La probleme pe lângă atributul dificultate şi titlu, prezent şi la teste şi lecţii, mai apar câteva noi. Problemei îi setăm în prealabil o cerinţă, apoi codul sursă care reprezintă rezolvarea problemei. La final există posibilitatea de a adăuga date de test, prin care elevul îşi va putea verifica propriul său program. Pentru limitările acestui sistem de verificare citiţi in detaliu rubrica Observaţii, secţiunea 3.
c) Teste
Testul este compus din mai multe întrebări. Acestea pot fi de tip grilă sau simple. Testul poate fi personalizat prin posibilitatea de a specifica punctajul acordat din oficiu, cât şi punctajul fiecărei întrebare în parte.

Tehnologii

MS .NET Framework 3.5, MS Access DB

Cerinte sistem

SO: Windows 2000 SP5, Windows XP, Windows Vista, Windows 7, Linux (In mare parte orice suporta .NET Framework)

Hardware: 128MB Ram, Procesor 1Ghz, Spatiu HDD: 30 MB

Realizatori

Dolean Timotei

  • Scoala: Liceul de Informatica “Tiberiu Popoviciu”
  • Clasa: XII
  • Judet: Cluj

Screenshots



:fearful: :fearful: :fearful: :fearful: :fearful: :fearful: :fearful: :fearful:
Frumoasa aplicatia…

hm prea tare seamana cu office 2007 daca aveai un design original era sooper :smile:

@razvan:
Tocmai aia urmaresc sa fac in timpu cat o mai ramas :wink:

Stiu ca au cei de la Microsoft un API pentru a crea interfate in genul celor din Office. L-ai putea folosi. Eu am dat peste el din greseala acum cateva luni pe siteul de la WPF.

Imi place cum arata. :smile:
Timotei da-mi un PM cu idul tau ca vreau sa stam de vorba despre o posibila colaborare la sectiunea Pregatire pentru Olimpiada de pe hackpedia avand in vedere ca softul tau e plin de articole.

St3faN

Stiu ca au cei de la Microsoft un API pentru a crea interfate in genul celor din Office. L-ai putea folosi. Eu am dat peste el din greseala acum cateva luni pe siteul de la WPF.


Da... depinde ce folosesti:
1) Este din VS2010 pentru MFC built-in acel ribbon bar
2) Este control de WPF Free (de la MS Office Fluent UI) - dar nu cred ca o sa-l folosesc pe ala (parca m-a plictisit acel design) - ceea ce mi-am propus e sa refac COMPLET interfata, ca aia e cam ce ar trebui in monmentu asta, ca daca mai adaug feature-s o sa fie prea complex si :-@
3) Din seria .NET Libs for Windows 7 cred ca vor include si acolo direct pentru .NET acel ribbon bar.
4) si bineinteles sunt cele 1001 de 3rd party cu ribbon bar care mai de care.:stuck_out_tongue:

Salut,

Impresionant… cum ai rezolvat problema cu compilatorul… banuesc ca ai folosit un compilator, mai vechi gen Borland C/C++ 3.1, l-ai folosit in mod liniei, i-am trimis parametri si programul in format ASCII, si rezultatele le-ai redirectat intr-un fisier, temporary, si ulterior ai procesat, la nivel de string rezultatul? Ai lucrat pe fire de executie? Exemplu: Ce face programul tau la o bucla infinita.

Cand instalezi, soft-ul se instaleaza tot compilatorul cu uniturile ? In fine, daca ai facut altcumva lamureste-ma si pe mine, ca am incercat si eu un proiect asemanator, numai ca eu programez in Delphi, ma rog pascal mai pe romaneste.

Intr-un printscreen(poza 3) spune, in paraneteza la enuntul problemei “fara a folosi vectori”. Cum verifici chestia asta, in codul sursa, scris de elev. Poate elevul foloste o lista(inlantuita, sau dublu), e tot un vector. Si iti da o ţeapa . In fine, aceasta este o chestie minora.

gigaevil

Salut,

Impresionant... cum ai rezolvat problema cu compilatorul.... banuesc ca ai folosit un compilator, mai vechi gen Borland C/C++ 3.1, l-ai folosit in mod liniei, i-am trimis parametri si programul in format ASCII, si rezultatele le-ai redirectat intr-un fisier, temporary, si ulterior ai procesat, la nivel de string rezultatul? Ai lucrat pe fire de executie? Exemplu: Ce face programul tau la o bucla infinita.

Cand instalezi, soft-ul se instaleaza tot compilatorul cu uniturile ? In fine, daca ai facut altcumva lamureste-ma si pe mine, ca am incercat si eu un proiect asemanator, numai ca eu programez in Delphi, ma rog pascal mai pe romaneste.

Intr-un printscreen(poza 3) spune, in paraneteza la enuntul problemei "fara a folosi vectori". Cum verifici chestia asta, in codul sursa, scris de elev. Poate elevul foloste o lista(inlantuita, sau dublu), e tot un vector. Si iti da o ţeapa . In fine, aceasta este o chestie minora.



Da. folosesc un compilator care suporta si librariile mai vechi gen BC 3.1 (iostream.h) si cele mai noi (iostream, std,etc). Asta pentru o cat mai mare compatibilitate. Eu la scoala lucram in BC 3.1, dar nu se exclude upgrade-ul la o versiune superioara si vreau sa pastrez compatiblitatile. Compilatorul poate fi specificat altul decat cel default.

Daca e bucla inifinita taie automat procesul:P. Nu se va intampla sa prea pot bloca programul cu ceva de genul acela. (desi nu se exclud alte metode)

Cat despre modul de functionare a metodei de introducere/extragere parametrii voi vorbi mai detaliat la concurs (unul dintre punctele "forte" ale programului)

Da, se instaleaza si compilatorul default. Initial programul avea si versiune de Pascal (puteai sa selectezi ce limbaj foloseti/detectare automata a limbajului folosit) - dar l-am scos deoarecem nu stiu (asa bine) pascal. Plus ca e cam invechit si nu mai prea are folosinta didactica (nu asa mult)

Mda.. ideea era ca asa suna cerinta. Nu am implementat ceva ce sa verifice corectitudinea surselor in concordanta cu cerinta problemei, desi n-ar fi exclus acest lucru pe viitor. (pentru asta trebuie umpic mai multa "munca" din partea profesorului: sa-mi zica clar ce poate/nu poate folosi)

Sper ca ti-am raspuns la intrebari, si Mersi.

Multumesc pentru atentia cu care ai redactat feedbackul

Deci sa intelegem, ca tu redirectionezi, mesajele de eroare, warningu-rile, date de compilator intr-un fisier *.temporary, si faci o preprocesare, a fisierului, si afisezi, mesajele? Clever ideea. O folosesc si eu deobicei cand interactionez cu utilitarele windows, compilate sub DOS.


Cand elevul scrie codul sursa, al rezolvarii problemei, folosesti un RichEditor, sa mapezi cuvintele, cheie, ai implementat un autocomplet(intellisesnse)? Pentru ca am vazut acolo, cod-ul sursa, “colorat” frumos, indentate, etc. Nu trebuie sa fi asa secretos, ca pentru ca tu acuma urmezi sa fi student, si eu mai avem ceva ani, sa imi perfectionez tehnica de programare.

Bafta la prezentare.

gigaevil

Multumesc pentru atentia cu care ai redactat feedbackul

Deci sa intelegem, ca tu redirectionezi, mesajele de eroare, warningu-rile, date de compilator intr-un fisier *.temporary, si faci o preprocesare, a fisierului, si afisezi, mesajele? Clever ideea. O folosesc si eu deobicei cand interactionez cu utilitarele windows, compilate sub DOS.

Cand elevul scrie codul sursa, al rezolvarii problemei, folosesti un RichEditor, sa mapezi cuvintele, cheie, ai implementat un autocomplet(intellisesnse)? Pentru ca am vazut acolo, cod-ul sursa, "colorat" frumos, indentate, etc. Nu trebuie sa fi asa secretos, ca pentru ca tu acuma urmezi sa fi student, si eu mai avem ceva ani, sa imi perfectionez tehnica de programare.

Bafta la prezentare.


E un richtext editor facut de cei de la SharpCode (open source) EU am mai adaugat niste functionalitati, ca sa-l pot integra cat mai bine cu programul meu. Nu este intellisense. Pentru asta trebuia sa dezvolt umpic "cam mult" pe langa si "n-avea" rost pentru sensul programului. Oricum daca vrei intellisense, mergi pe VS:D

Nu era foarte greu, de scris un syntax highlighting. Iesirile compilatorului le aveai intr-un fisier, in format ASCII, dupa care facea o preprocesare, la nivel de string, a fisiererului, cautai cuvintele keye(rezervate) , le colorai cu o culoare, variabile, constantele, cu alte culori etc.

Puteai implementa un autocomplet, cum au mediile vizuale, pentru o simpla cautare(O(log N) sau O(N) ca nu sunt multe ), intr-o baza de date cu cuvintele rezervate, astfel incat in urma editarii, iti apareau cuvintele cu prefixul introdus. Ceea ce iti povestesc eu am implementat in Fast HTML Editor, si in alte lucrari neprezentate. Deci cu alte cuvinte, ti-am gasi punctul slab al lucrarii.

O intrebare, nu inteleg legutura intre intellisesnse si “mergi pe VS:D”. Mie mi-a iesit in maxim o mie de lini. Deci nu e cine stie ce.

Lucrarea ta, mai are si alte “puncte slabe”, pe care ti le vor prezenta, alti concurenti, care le-au descoperit.

Raportat la lucrarile facute in ActionScript, si care au priza la concursuri, lucrarea ta e frumoasa. La concursurile de soft educational, marea majoritate (90%) au promovat “prezentari” facute in Flash si eu nu inteleg cum si de ce? Flashul fiind mai mult o tehnologie web, si nu un IDE de dezolvare de aplicatii…

gigaevil

Nu era foarte greu, de scris un syntax highlighting. Iesirile compilatorului le aveai intr-un fisier, in format ASCII, dupa care facea o preprocesare, la nivel de string, a fisiererului, cautai cuvintele keye(rezervate) , le colorai cu o culoare, variabile, constantele, cu alte culori etc.

Puteai implementa un autocomplet, cum au mediile vizuale, pentru o simpla cautare(O(log N) sau O(N) ca nu sunt multe ), intr-o baza de date cu cuvintele rezervate, astfel incat in urma editarii, iti apareau cuvintele cu prefixul introdus. Ceea ce iti povestesc eu am implementat in Fast HTML Editor, si in alte lucrari neprezentate. Deci cu alte cuvinte, ti-am gasi punctul slab al lucrarii.

O intrebare, nu inteleg legutura intre intellisesnse si "mergi pe VS:D". Mie mi-a iesit in maxim o mie de lini. Deci nu e cine stie ce.

Lucrarea ta, mai are si alte "puncte slabe", pe care ti le vor prezenta, alti concurenti, care le-au descoperit.

Raportat la lucrarile facute in ActionScript, si care au priza la concursuri, lucrarea ta e frumoasa. La concursurile de soft educational, marea majoritate (90%) au promovat "prezentari" facute in Flash si eu nu inteleg cum si de ce? Flashul fiind mai mult o tehnologie web, si nu un IDE de dezolvare de aplicatii..


O sa vedem :smiley:

@Timotei ti-am vazut lucrearea la CIA si sincer, nu inteleg, ce ti se pare asa de educational acest software si totodata asa de complex.

In primul rand, vad ca lectile, si testele sunt culese din carti. Deschid o carte, sau caut direct la articole pe infoarena.ro, sau in alta parte, si gasesc.

Tab-ul de problemele: De exemplu, studiez programare dinamica, citesc din niste cursuri sau din cateva carticele lectia. Si ma pun sa rezolv cateva probleme. Intru pe infoarena, caut 2-3 probleme, despre programare dinamica, deschid batranelul borland c++ 3.1 sau MinGW, si scriu sursa, dupa ce fac sursa, o trimit, si vad daca am facut-o bine. Avantaje: Ma gandesc, la o complexitate de timp mica[ma enervez daca iau 80-90 de puncte] si sa se incadreze in memorie. Am forumu si post sa postez intrebari, sau sa citesc sfaturi, sunt mult mai multe probleme.

Testele: Iau o carte de bac(100%), sau majoritatea cartilor au teste si le fac.

Din cate inteleg de la ceilalti(St3faN, gigaevil si moldo_razvan) inteleg ca editorul, care face highlighting, nu este scris de tine, iar ca sa compilezi o sursa, instalezi un compilator de c++, si printr-un ShellExecute, ai compilat si redirectionezi output-ul intr-un fisier. Faci o preprocesare si afli warningurile, hinturile si erorile.

Daca totul e bine[ErroCount == 0] atunci, verifici 2-3 teste. Verificare pariez ca e generalizata, adica verifici daca cele 2 fisiere sunt identice. Evaluatorul de la .campion, infoarena, usaco, este mult mai complex si particularizat.

PS: Pariez ca mai mult de 500 de lini n-are tab-ul probleme. Clasa(daca l-ai facut asa, sau functiile) care “compileaza” sursa si verifica iesirea.

gigaevil, un intellisense inseamna mai mult decat autocomplete. Ca de exemplu
intellisense iti mai evidentiaza si greselile din sintaxa in timp ce scrii codul. DAR, mult ne mai place sa ne scoatem ochii unii altora (si nu e prima data cand vad asta pe forum).

Cat despre feedbackul dat de @vladraresraducu sunt de acord cu privire la ideea ca infoarena si alte siteuri de genul asta sunt mai utile datorita ideilor enumerate. TOTUSI consider ca softul facut de timotei nu are ca target principal pregatirea olimpicilor ci fixarea bazelor, a materiei de clasa.

In incheiere, nu cred ca e un concurs in care ne batem in linii de cod, nu-i asa?

dranaxum

gigaevil, un intellisense inseamna mai mult decat autocomplete.
In incheiere, nu cred ca e un concurs in care ne batem in linii de cod.



total de acord cu tine, dranaxum.. calitatea unui soft nu se masoara in linii de cod, cred ca un programator care scrie de 10 ori mai putine linii decat altul si face acelasi lucru e, in orice caz, mai eficient :exclamation: si pana la urma, de ce sa reinventezi roata, nene? daca sunt librarii acolo open source de cine stie ce, de ce sa nu le folosesti si sa economisesti 100+ ore de lucru? si sa te concentrezi astfel pe utilitate.. la sectiunea educational, se puncteaza mai ales ergonomia, ingeniozitatea si ideile care stau in spatele proiectului, nu numarul de linii de cod. accentul se pune pe feed-back-ul cu utilizatorul.

mie mi se pare un soft extrem de bine inchegat, si e foarte greu sa se faca asta. de obicei, la alte softuri, sunt multe sectiuni care nu prea merg mana in mana si sunt puse pe-acolo ca nuca-n perete, dar aici se leaga totul frumos. mi-a placut mult si modul in care este afisat codul sursa, si compilatorul.

Ai mentionat Linux intre sistemele de operare pe care iti functioneaza lucrarea. Te bazezi doar pe modalitatile cunoscute prin care o aplicatie .NET poate fi facuta sa ruleze pe Linux (si care pot fi folosite si de alte lucrari prezente in concurs), sau ai facut tu ceva special pentru asta?

dranaxum


Cat despre feedbackul dat de @vladraresraducu sunt de acord cu privire la ideea ca infoarena si alte siteuri de genul asta sunt mai utile datorita ideilor enumerate. TOTUSI consider ca softul facut de timotei nu are ca target principal pregatirea olimpicilor ci fixarea bazelor, a materiei de clasa.



S-a introdus un feature nou si anumte: Arhiva educationala, in care sunt probleme elementare. Unele probleme sunt extrem de simple.

dranaxum


In incheiere, nu cred ca e un concurs in care ne batem in linii de cod, nu-i asa?


Pai InfoEducatie, Wordul Info, provine de la Informatica, iar informatica se retrage la Programare si office. Office-ul este exclus, deci concursul, se refera la informatica, informatica implica algoritmica, implica multe lini de cod, si scrise ergonimic si "destept".

blue_veek sunt zeci, de evaluatoare, compilate sub windows, gen LimeEvaluator, infoeVal, aveau si cei cu ginfo, unul scris de ei. Ca sa compilezi o sursa iti trebuie o linie, folosind ShellApi. Ca sa afisezi erorile, unei surse, folosind tot aceea functie din ShellApi, numai ca ii bagi un parametru sa iti redirectioneze out-putul intr-un fisier de exemplu
intra in cmd instructiunea:
"dir >> C:\output.txt" , iti va arata fisierele, si ti le va redirectiona intr-un fisier. Dupa aceea, afiseaza erorile,hinturile,warningurile. Daca ErrorCount == 0, atunci incearca sa compileze sursa, introducand un fisier input.in la fisier, verifica daca merge de compilat, si verifica outputul daca este indetic.


Iar despre cat ma invata, nici nu mai vorbim.

Stii ce adjectiv gasesc pentru Arhiva Educationala de pe Infoarena? Simplist. Nu inveti acolo ce e aia un arbore, nu inveti ce e aia un graf. Sunt lucruri pe care numai dintr-un manual le inveti.
Si… daca el a transformat manualul pe suport digital oferind diverse optiuni, e ok din partea mea. Probabil sunt unii care invata de pe calculator. Fiindca pana la urma daca e sa o luam asa, ce rost mai are categoria de software educational daca tot mai bun e manualul nu? Stiu profi universitari de mate care citesc carti pe net.
Intr-adevar poate softul are niste hibe la capitolul interactivitate, nu ma pronunt. Depinde de autor cum si-a structurat ideile pentru realizarea lui dar nu cred ca putem critica atat de vehement softurile din aceasta sectiune intrucat ideea de soft educational este relativ noua si nicio firma, dupa parerea mea, nu si-a impus pana acum ideile. Niciuna nu a facut absolut necesara folosirea unui astfel de produs, omul revenind intr-un final la carti.
Nu consider ca se stie inca reteta “perfecta”: mai multa interactivitate sau mai multe notiuni? un echilibru? Logica ar spune ca e bun un echilibru, dar practica o poate sfida.

ovidiu1

Ai mentionat Linux intre sistemele de operare pe care iti functioneaza lucrarea. Te bazezi doar pe modalitatile cunoscute prin care o aplicatie .NET poate fi facuta sa ruleze pe Linux (si care pot fi folosite si de alte lucrari prezente in concurs), sau ai facut tu ceva special pentru asta?


Nu am facut nimic special. Daca instalezi Mono pe linux, vei putea rula aplcatia:)

@vladraresraducu:
Softul nu e facut petru cui NU ii trebuie. E facut pentru cine-l foloseste. Sincer sa fiu am avut destui colegi care CHIAR mi-au folosi aplicatia pentru pregatire inaintea BAC-ului. Pentru recapitulare in mare parte.
Desigur, dupa cum tu zici, aia ar insemna sa nu faca nimeni nicodata nimic... doar idei pur originale... ceea ce e cam GREU in ziua de azi :wink: Si stai relaxat ca o idee originala va fi pusa direct in productie, pentru a fi comercializata... ca doar, deh, e idee noua si buna, de ce sa nu scoatem bani de pe ea. Sunt unii care nu gandesc asa si o dau/arata si altora, in acest caz venind altii care preiau ideea si scot bani de pe ea.

Si da, recunosc ca infoarena e un site foarte bun si nu am zis ceva legat de el, dar mai mult e pentru olimpici, pentru ce care se antreneaza ca sa castige o competitie/sau pentru propriu lor interes.

@blue_veek, dranaxum:
Mersi :smiley:

@gigaevil:
Un intellisense nu este doar o chestie de genu: afiseaza un arbore de elemente. este INTELLI (inteligent) SENSE... adica imi afiseaza doar ceea ce se potriveste la un moment dat. Ala e intellisense adevarat. SI pentru asta, trebuie lucrat destul de "mult". Ceea ce inca odata, nu a fost scopul aplicatiei mele. Sunt deja destule IDE-uri foarte bune. Ce rost are sa refac o chestie ce a mai fost facuta? Poate daca am ceva in plus, atunci da.