Sobre
JOEL (Jutge Online Educatiu Lliure) és una plataforma per aprendre a programar, un repositori de problemes, i una plataforma per fer córrer concursos de programació. És 100% open source.
Va néixer com un jutge online per ajudar telemàticament a l'ensenyament de Programació a l'Institut Sabadell arran de la pandèmia de Covid-19, però està obert a totes les institucions educatives i a gent que vulgui aprendre a programar pel seu compte. Recopilem problemes de diverses competicions de programació, així com centenars de problemes bàsics d'aprenentatge per ensenyar conceptes i fer servir exercicis a classe.JOEL corre per sobre de JODER (Jutge Online Destinat a l'Ensenyament amb Retroacció), que és un fork (molt divergent) de DMOJ, un jutge online competitiu canadenc de codi obert, modificat per complir una funció educativa.
Demanem als usuaris que es llegeixin les normes de participació abans de participar en el sistema de comentaris.
Què és JOEL?
Jutge Online
JOEL és un Jutge Online, com Domjudge, aceptaelreto, codeforces, o molts altres. Un Jutge Online bàsicament t'ofereix problemes de programació, els resols, i te'ls corregeix automàticament. Després et dóna punts en funció de la dificultat del problema.
Hi ha una taula de puntuacions amb la qual pots competir amb altres usuaris o contra els alumnes del teu institut.
Educatiu
JOEL, a diferència dels altres jutges, és un jutge educatiu. Els problemes són en general més fàcils, tenen un etiquetatge perquè sàpigues quins coneixements necessites per resoldre'ls, si el programa no s'executa correctament et diu on i per què en comptes de simplement dir-te que ho has fet malament, i té un sistema de pistes on pots demanar al sistema que et digui quin és el cas que et falla. Cada problema té el seu sistema de comentaris on pots parlar amb altres usuaris per comentar el problema o demanar/donar pistes.
Els problemes del JOEL, en comptes de valorar-se amb un 0 o un 1, donen també una nota parcial en funció dels casos de prova que has superat, per no desanimar als alumnes que intenten problemes difícils i no compleixen tots els casos.
Lliure
JOEL és un sistema Lliure. No només el codi és totalment obert, sinó que la idea és que qualsevol persona i no només els administradors puguin crear problemes. Qualsevol usuari amb una mica d'experiència i que s'hagi llegit les guies pot demanar permisos per crear problemes, fer problemes nous, i després d'una comprovació, veure'ls penjats a JOEL amb la seva autoria. La totalitat dels casos de prova poden ser vistos per part d'un compte de professor, ja que d'aquesta manera poden ajudar als alumnes a resoldre problemes encallats, amb la qual cosa els problemes també són de codi obert, en contrapartida de la resta de jutges competitius, en què els casos de prova són un secret gelosament guardat.
Què NO és JOEL?
JOEL NO és un jutge competitiu. Tot i que tenim problemes competitius, intentem que la meitat dels nostres problemes siguin problemes senzills d'aprenentatge.
JOEL NO és un jutge amb 100.000 casos de prova per problema. Els problemes de JOEL tenen uns 20-25 casos de prova, que cobreixin els casos extrems i més propensos a fallar, però no n'hi ha més. El sistema de pistes i el donar la nota parcial fa que el jutge sigui més lent que un jutge normal i per tant no volem sobrecarregar-lo
JOEL NO és un jutge estricte amb el Timelimit. Per descomptat que tenim problemes de Timelimit i en gairebé tots els problemes les solucions de força bruta fallaran, però no forçarem problemes que només es puguin resoldre en C++ ni obligarem als usuaris a fer servir llibreries específiques d'input/output. Això pot fer que problemes amb solucions no òptimes siguin acceptats
JOEL NO és perfecte. Tothom pot fer problemes, i de fet molts alumnes els fan, ja que és una gran activitat que ajuda molt a entendre com crear casos de prova i testing efectiu. De vegades hi haurà problemes amb enunciats difícils d'entendre, o que accepten solucions no òptimes. En algun cas el problema podria tenir un error greu. Teniu-ho en compte i sigueu comprensius si trobeu problemes nous d'usuaris amb pocs problemes fets. Es pot informar de qualsevol error que tingui un problema mitjançant el sistema de tickets.
No entenc el missatge que em retorna el jutge.</h4>
Estan tots explicats a La pàgina de respostes del jutge .
El Jutge m'ha dit "Internal Error"
Això és un problema del jutge i no teu o del teu enviament. S'envia un correu automàticament als desenvolupadors quan passa això, així que no cal que ho avisis.
Fins que no s'arregli no facis més enviaments perquè seguiran sense funcionar.
Els problemes estan en un idioma satànic estrany
La majoria de problemes estan fets per professors d'Instituts Catalans i per tant en català. Si vols, em pots enviar un correu i et dono permisos de crear traduccions. Els problemes amb traducció es traduiran automàticament a l'idioma que tinguis posat al peu de pàgina
Hi ha alguna cosa mal traduïda!
El bo de Google Translate. Pots fer un push request a l'arxiu de configuració del castellà o el de català
M'interessa JOEL. Com puc unir la meva institució educativa?
Si ets professor envia'm un correu a malbareda -arroba- ies-sabadell.cat. Et crearem una organització per tenir els teus alumnes agrupats i un compte de professor amb el qual podràs veure els enviaments dels teus alumnes
Pots consultar la guia de professors aquí
Qui hi ha darrere d'això i com em poso en contacte?
JOEL (i JODER) estan desenvolupats per en Marc, que és el Cap d'Estudis de FP a l'Institut Sabadell. Si t'agrada la programació competitiva, segurament m'hauràs vist en algun Programa'm o a les 12 UVes.
Et pots posar en contacte amb mi amb un correu a malbareda -arroba- ies-sabadell.cat per a temes administratius o joder -arroba- ies-sabadell.cat per a temes tècnics
On corren JOEL i JODER?
JOEL corre sobre un OVH personal juntament amb els meus bots de discord i altres coses
JODER pot córrer sobre infinites màquines ja que és un sistema escalable. Actualment una corre al mateix servidor que JOEL (el jutge principal, Kernel), dues a l'Institut Sabadell, i una a l'ordinador de casa meva, tot i que el tanco quan estic jugant al World of Warcraft
Qui és Kernel? Accepta més fans?
Kernel és el meu gat. Li agraden els fans però prefereix el pernil.Com puc col·laborar amb JOEL?
Principalment creant problemes. Llegeix-te la guia del Creador de Problemes TODO i posa't en contacte amb un administrador perquè et doni permisos.
També pots reportar o arreglar bugs. Fes-ho des de les Issues del Github de JOEL i JODER
Si ets d'una institució oficial i vols col·laborar hostejant un JODER al teu propi servidor, contacta amb un administrador
Com es calculen els punts? He sumat tots els punts i tinc menys dels que tocaven!
El sistema antic recompensava massa aquells que dedicaven temps a "farmejar" un gran nombre de problemes fàcils, i recompensava poc aquells que dedicaven temps a resoldre problemes més complexos. Tots podem estar d'acord en que un problema de 30 punts hauria de valdre molt més que 15 problemes d'iniciació a bucles de 2 punts, que estan posats per a aprendre bucles i no per a assolir punts. A més, el vell sistema forçava que la gent que volia punts hagués de tornar cada any als nous problemes de "primer" i tornar a fer problemes molt senzills d'ifs i de bucles per no quedar-se enrere en el ranking. El nou sistema pretén trobar un equilibri en la classificació entre els usuaris que resolen molts problemes i els usuaris que en resolen menys, però més difícils
En resum, el nou sistema de punts calcula la suma ponderada de les puntuacions dels 100 primers enviaments en problemes diferents. La puntuació del problema i-èsim es pondera per 0,95^i. Formalment, on S representa les puntuacions ordenades i P els punts base d'un usuari,

Per no penalitzar excessivament els usuaris que han dedicat temps a resoldre molts problemes, es fa un ajustament additiu B al valor dels punts base. On N és el nombre de problemes dels quals un usuari té una solució completament acceptada,

La puntuació total d'un usuari és llavors la suma P+B.