Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

● Classification Problems omegaUp Formatted: Don't add space between paragraphs of

the same style, Outline numbered + Level: 1 +


Author: Hugo Dueñas Numbering Style: Bullet + Aligned at: 0.25" + Indent
at: 0.5"
Introduction:
A common problem among users omegaUp is that it is difficult to find quality problems, with
appropriate difficulty level of current experience and the topics that interest them at the moment.
This applies to students and teachers. This document provides a solution that requires very little
intervention by volunteers omegaup and requires users to answer simple questions 3 for every
problem they solve is proposed.
Goals:
- Propose a measure of difficulty of each problem and a way to get it.
- Propose a quality metric of each problem and a way to get it.
- Get labels themes for each issue. Commented [1]: hay que experimentar con la cantidad
de etiquetas que exponemos para que los usuarios
- Give users a quick and easy way to report problems with inappropriate content for it to puedan escoger facilmente
be removed from the platform. Commented [2]: No habia leido hasta el final del
documento. Si queremos esa lista de 40 temas,
No-objectives: necesitamos una UI decente para que el usuario no
tenga que scrollear por 40 elementos.
- Modify details of the wording of each issue. This will be best handled through the review
Commented [3]: Tienes ideas específicas en mente?
system problems. Lo de mostrar las 5 más usadas primero creo que
puede ayudar a mitigar este problema, pero sí creo
- Find the original source of every problem. Although it is very important to recognize that que sigue siendo sub-óptima mi solución.
the original authors deserve, it is not the highest priority right now.
- Identify and deal with duplicate problems. This can be handled largely through
automation.
- Identify and deal with misspellings or content in other languages. This can be handled
largely through automation.

Data Capture
Each user that solves a problem you are going to ask you to answer the following questions:
1. How likely would you to recommend someone else this problem?
The answer will be on the Likert scale of 5 levels:

omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x
Commented [4]: demasiado probable se escucha
raro, pero no se me ocurre una propuesta de como
decirlo diferente
{Nothing, very little, little, Neutral, too A lot}. Commented [5]: También a mi me suena raro, pero
tampoco se me ha ocurrido algo mejor.
The answer to this question will call quality rating.
Commented [6]: Qué tal cambiarlo a {Nada, Muy
2. How hard did you think of this problem? The answer will be in the Likert scale of 5 levels: poco, Poco, Neutral, Mucho}?
{Very easy, easy, medium, hard, very difficult}. Commented [7]: Tampoco me gusta mucho. Otra
opción puede ser que en lugar de que hacer preguntas
The answer to this question will call difficulty rating. pongamos afirmaciones y les preguntemos que tan de
acuerdo están. Por ejemplo: Recomendaría este
3. What matters is this problem? problema a alguien más. Las opciones serían: Muy en
desacuerdo .... Muy de acuerdo
The answer will be a subset of a predefined set of topics.
Commented [8]: El problema de este ranking es que
In addition to the answers to these problems concerning the overall rank user when solving las categorias no son directablemente comparables.
poco o mucho son valores fuzzy que no se mezclan de
the problem and the time it took to answer questions after solving the problem will be captured. manera linear necesariamente. Yo propondria una
You do not have right now contemplated use for the latter two figures, but in future iterations of clasification binaria. Esto modelaria una poblacion ...
Commented [9]: Puede haber una sección de
the project could be taken into account when adding the answers. "alternativas consideradas" donde menciones por qué ...
Data aggregation Commented [10]: Definitivamente estoy abierto a
considerar mejores modelos que la media. Justo ahora...
● If a problem has at least 5 quality ratings will be calculated your average Bayes and that
Commented [11]: sí!
will be used as a measure of quality problem. http://www.evanmiller.org/bayesian-average- ...
● If a problem has at least 5 grades of difficulty, it will be calculated your average Bayes Commented [12]: pero también estoy abierto a dejarlo
subespecificado como "un agregado de las ...
and that will be used as a measure of difficulty of the problem.
Commented [13]: Voy a checar esos modelos
bayesianos para ver cuales son aplicables para ...
Bayesian average:
Sean r1, r2, ..., rn grades (quality / difficulty) given by users to a problem. The average Commented [14]: sí! cualquier proceso que involucre
incertidumbre es bueno aunque sea intentar modelarlo...
Bayesian will be given by the formula
Commented [15]: Lo estoy cambiando por un
𝐶𝑚 + 𝑟 + 𝑟2 + ⋯ + 𝑟𝑛
1 promedio bayesiano con parametros C = 5 y m = ...
Commented [16]: Puede haber una sección de
𝐶 + 𝑛 "alternativas consideradas" donde menciones por qué ...
A priori parameters:
● 𝐶=5 Commented [17]: Definitivamente estoy abierto a
considerar mejores modelos que la media. Justo ahora...
● m = average (simple) of all grades (quality / difficulty) of all problems.
Commented [18]: sí!
http://www.evanmiller.org/bayesian-average- ...
● Each theme is added predefined set one vote for each user who included it in his answer Commented [19]: pero también estoy abierto a dejarlo
subespecificado como "un agregado de las ...
to question 3 in the previous section. Ideally, there should be a few votes (2 or 3) with
Commented [20]: Voy a checar esos modelos
many votes and other issues with very few votes (caused by users who answered bayesianos para ver cuales son aplicables para ...
randomly or other noise). The following chart shows an example of how it would look. Commented [21]: sí! cualquier proceso que involucre
incertidumbre es bueno aunque sea intentar modelarlo...
Commented [22]: Lo estoy cambiando por un
promedio bayesiano con parametros C = 5 y m = ...
Commented [23]: Cuales son nuestras premisas para
creer que esta formula es adecuada?
omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x
Commented [24]: No se omitirian temas o tags
importantes en el caso de que el problema tenga
distintas soluciones?

Puede que muy pocas personas lo resuelvan por otro


metodo, pero podria ser importante para los demas
usuarios saber que existe una alternativa de solución.
Commented [25]: Ese es un buen punto. Si es una
solución alternativa popular, tal vez sus etiquetas
cumplan con la condición de 50% y se incluyan en el
conjunto final de etiquetas. Para incluir a soluciones
alternativas no tan populares podríamos bajar el
threshold a 25% tal vez. No estaría tan convencido de
bajarlo a menos de 25% porque puede dar lugar a
tomar etiquetas cuyos votos son puro ruido. A ti se te
ocurre un mejor enfoque para este punto en particular?
Commented [26]: proponer lo que dices como default,
pero dejar que un humano tome la decisión final?
Commented [27]: Que el humano decida el threshold
global o que sea un threshold por problema?
Commented [28]: aaaah sabes qué te faltó
especificar? si va a haber un humano dándole commit
a las agregaciones o si se va a hacer con un cronjob.
yo lo dije porque seguía con el modelo anterior de que
estas cosas iban a una cola y que un humano le daba
Then, it takes the subset of subjects whose number of votes is greater than or equal to commit. si es así, puedes mostrar el histograma y
mostrar los tags sugeridos usando el threshold que
50% of the number of votes it received the most votes subject. This subset will be sugieres.

displayed to the user as the labels associated with the problem. si se hace de manera automática, de cualquier manera
debería haber un mecanismo para auditar los cambios
y darle override manual.

User Scenarios Commented [29]: Mi idea es que se hagan


automaticamente las agregaciones. Entonces yo creo
See mockups in the last section. que voy a agregar una interfaz para auditar los
cambios y poderles dar override. Pero creo que eso
● When the user solves a problem, he persistently appears a window with the three seria un P2.

questions listed in the section Data capture. The window will disappear forever Once the Commented [30]: sgtm! ponlo en algún lugar para que
sea explícito.
user submits their responses or manually shut down.
Commented [31]: podriamos preguntar cada N dias
● When the user scans the list of problems, you should be able to sort / filter As problems para un N mas o menos grande
igual y la primera vez que preguntamos fue un mal
for its quality / measurement difficulty / labels. For example, a user should be able to momento y el usuario cerro la ventana, pero en otra
ocasion si tiene tiempo / ganas de contestar
easily find problems binary search quality> = 4.0, ordered from easy to difficult.
Commented [32]: No me convence ese approach. En
mi experiencia, entre más días pasen, menos te
acuerdas de qué se trata el problema y qué tanto te
Problems Inappropriate Content gusto. Lo que sí, es que quiero incluir una liga en la
vista del problema para que se vuelva a abrir la
● When a user finds a problem with inappropriate content, footer you find a button "Report ventana si el usuario decide en un futuro volver al ...
Problem" and a window where you capture the reason why it is considered inappropriate Commented [33]: cómo se hará esto? Ahorita en la
lista de problemas hay una opción "Ordenar por", se
appear. Such report shall enter into a queue. agregarán estos tres campos a esa lista? cómo
agregará el usuario la calidad que quiere?
omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x
● When a user from the list of Reviewers (any) enters omegaUp you a notification at the
beginning of the website by giving click opens a page with a table showing the tail of
reports appears. This table displays the contents of each report, a link to the respective
problem and buttons that say:
○ "The problem is inappropriate, remove."
○ "The problem is appropriate to keep."

omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x
Mock ups:
When the user solves the problem:
Actual state:

desired state:

omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x
Commented [34]: Cuál será el tamaño de la ventana?
y el tamaño de la letra?

Commented [35]: Esto es lo que esta haciendo


Vanessa.
Commented [36]: Tengo varias dudas/comentarios:
1. Quizá el lugar en que se propone poner este link no
sea el más adecuado. Cuál es el máximo número de
usuarios que aparece en la tabla de "Best accepted
solvers"? Si son muchos, quizá el link sea difícil de
● If the user clicks the "X" top right, the window is closed forever. encontrar.
● If the user clicks "Submit" before answering any questions, they are shown the following 2. El nombre "Reportar problema" tal vez no sea el
más adecuado. Reportar problema, me parece que
message: tiene un sentido más general y no representa lo que
queremos.
Commented [37]: Creo que actualmente se muestra
hasta 10 usuarios en esa tabla.

No tendría problema en cambiar la leyenda del link si


se te ocurre alguna mejor. Le puse eso porque es el
● If the user answers at least one question (but skip the rest) and click send, your answer patrón que veo en muchos sitios web, e.g. youtube y
facebook.
will be captured and you will not be prompted again. Commented [38]: Un lugar para poner el link puede
● The list of topics will be this: link. The topics appear in alphabetical order, except for the ser justo antes del modulo de envíos, para que sea
más visible.
first 5 topics which are: En inglés se me ocurre que puede ser "Report an issue
with this problem".
○ If there are fewer 5 people who have voted for themes for this problem: The 5
Commented [39]: O que tal poner "Reportar contenido
most voted for this problem issues. inapropiado en este problema"?

○ If no: The 5 most voted issues globally. Commented [40]: La ubicacion si creo que quedaria
mejor arriba de la seccion de envios.
When the user finds an inappropriate problem: Commented [41]: Me parece bien la propuesta de
When the user finds an inappropriate problem, you will click on "Report Problem": titulo, así queda más claro a que es a lo que nos
referimos.
omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x
And the window:

The list of reasons is:


● It does not describe a programming problem.
● It is offensive.
● It is spam.
● Another reason.
If you choose "Another reason," be binding fill in the field "Additional comments". If it is not filled
and is sending the message is displayed:

omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x
When the user wants to look for problems:
Commented [42]: No debería haber un filtro de
calidad explicito porque no es claro porque un usuario
querría ver problemas de baja calidad. Podemos usar
calidad para usar por default o para desempate
(cuando coinciden los putos para el ranking). Le
llamamos a esto el ordenamiento default.
Commented [43]: totalmente de acuerdo!
Commented [44]: Está bien, creo que hacer calidad el
ordenamiento por default también cumple con mi
objetivo de promover más a los problemas con buena
calidad que a los de mala calidad.

As shown in the above image, the user can filter problems:


● Difficulty:
○ NA are problems that have no difficulty as defined for insufficient reviews.
○ "Difficult" problems are having difficulty in the interval [3.0, 4.0].
○ "Medium" are the problems that have difficulty in the range [2.0, 3.0).
○ "Easy" problems are having difficulty in the interval [1.0, 2.0).
○ "Very easy" problems are having difficulty in the interval [0.0, 1.0).
● Topic: The dropdown display the list of topics in alphabetical order.

omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x
In the list of problems, the columns of "Submissions" and "Accepted" are deleted. These two
data will be displayed when the user pose the cursor on the field "Ratio". Instead they are the
columns of "Quality" and "Trouble" to show categorical values as defined above. When the user
pose the cursor over the "quality" field the numerical value is displayed with a decimal (eg an
"excellent" problem could say "3.7 4", see picture below), the "Difficulty" field will have a similar
behavior. Labels topics will be displayed next to the original labels with the same format but
omegaUp blue color.

This is not shown in the picture, but the field "Order by" additionally have the option to sort
by quality or difficulty. The system will default down quality mode.

Notes --- ---- hackathon

One reason to report a problem is a duplicate of someone else. In this case you need to
reference the other problem.

If the user answers at least one question (but skip the rest) and click send, your answer will be
captured and you will not be prompted again.

Api:
Report problem, keep records
Show problems reported
api to do private and notify the owner of the problem

omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x
UI:
Report problem button
Report problem window
UI to make it private
UI for Reviewers (list of issues)
P1: UI to add to the list Reviewers

omegaUp, Inc.
omegaup.org - 10245 Main Street Apt 303, Bellevue, WA 98004 - directors@omegaup.org
x

You might also like