Todos los videos del curso de Introducción a C++

Como parte de la iniciativa #QuédateEnCasaConOmegaUp estuvimos impartiendo un curso de Introducción a C++ en vivo a través de Facebook Live.

El material del curso está disponible de forma abierta y gratuita en la plataforma de omegaUp y puedes acceder en este enlace  (https://omegaup.com/course/introduccion_a_cpp) para ver el material y resolver los ejercicios en línea.

Aquí te dejamos un enlace a todos los videos y estaremos actualizando este post con cada video nuevo en la serie:

Queremos agradecer especialmente a nuestro usuario OrlandoIsay del Instituto Tecnológico Superior del Sur de Guanajuato (ITSUR) por impartir este excelente curso.

Soluciones a Liga Omegaup – Fase 1

Para este problema, consideramos un arreglo de ocurrencias O sobre los elementos del arreglo. De modo que la respuesta está dada por

\sum\limits_{i=A}^B O_{i}

Si consideramos el mismo arreglo de ocurrencias O sobre los elementos del arreglo, la respuesta está dada por O_k.

Podemos generar todos los elementos de la secuencia de Fibonacci hasta 30000, y guardarlos en un mapa M, de modo que M_k = 1 si k es un elemento de Fibonnaci, y M_k = 0 en caso contrario. Generamos la respuesta simplemente iterando desde i = 4 hasta i = N - 1, e imprimimos i si M_i = 0.

La clave para este problema, es usar variables que no provoquen un desbordamiento, por ejemplo, unsigned long long. Luego, es conocido que la serie de Fibonacci crece rápidamente, lo suficiente, como para generar la secuencia con todos sus elementos menores o iguales a N, guardando por cada uno su respectiva posición en ella. Por lo tanto, basta con checar si N es un elemento, e imprimir su posición. En caso de no serlo, imprimimos -1.

Este tipo de problema es conocido como straight-forward. Podemos guardar las estaciones de radio, y checar cuál estación es la mas cercana a la frecuencia dada, con una simple resta. En caso de haber dos estaciones con la misma distancia, la respuesta es la mayor. Solo debemos cuidar que la frecuencia esté dentro del rango permitido.

En este problema lo que tenemos es un grafo dirigido acíclico con aristas pesadas (intuitivamente, es un árbol, sin la propiedad de que cualquier par de nodos estan conectados por un único camino).
Los vértices son los eventos temporales, las aristas son dirigidas de p_i a i, y su peso es d_i. Además, cada vértice contiene un valor extra r_i. Un grafo que podemos asociar al primer caso de ejemplo es el siguiente.

Sean v_1 y v_k dos vértices distintos, tales que v_1 es ancestro de v_k. Es decir, existe un camino v_1 \rightarrow v_2 \rightarrow \ldots \rightarrow v_k en el grafo. Definimos S(v_1, v_k) como

\sum\limits_{i=1}^{k - 1} d_{v_i}

 

Es decir, la suma de los pesos en las aristas del camino.
De modo que el problema se convierte en: Para cada vertice v, contar cuántos vértices u en su “subárbol” \; existen tales que

r_u - S(v, u) \geq 0

Porque esto siginifica que tenemos suficientes segundos para viajar por el tiempo desde u hasta v.

Consideremos un arreglo E, donde la entrada E_v guarda cuántos descendientes u de v satisfacen

r_u - S(v, u) \geq 0

Pero

r_u - S(p_v, u) < 0

Donde p_v es el padre de v. Si v = 0, entonces no hace falta considerar a su padre, puesto que no podemos viajar por el tiempo a algún ancestro de 0 (ya que ni siquiera existe alguno).

En otras palabras, E_v guarda cuántos descendientes de v llegan a lo mas al vértice v.

También consideremos un arreglo D, donde la entrada D_v guarda cuántos descendientes u de v satisfacen

r_u - S(v, u) < 0

Es decir, D_v guarda cuántos descendientes de v no pueden llegar al vertice v.

Y además mantengamos un arreglo T, donde la entrada T_v guarda el tamaño del “subárbol” de v (incluyendo a v). En otras palabras, cuántos descendientes tiene v en total mas el mismo.

Por lo tanto, la respuesta final para el vértice v está dada por

(T_v - 1) - \sum\limits_{v \rightarrow u} (E_u + D_u)

donde u es un hijo directo de v.
Ya que esto calcula cuántos descendientes de v si pueden llegar a v.

Para el cálculo de nuestros arreglos, hacemos una dfs sobre el “árbol”  (partiendo del vertice 0). Para cada vértice u, hacemos una búsqueda binaria sobre un arreglo que mantenga la suma acumulada de los costos sobre las aristas que forman parte del camino de 0 a u, que nos devuelva el máximo ancestro v al que podemos llegar desde u.  Lo que nos dice que  E_v actualiza su valor a E_v + 1 (inicialmente, E_1 = E_2  = \ldots = E_n = 0). Esto se puede hacer usando un arreglo global. La idea es añadir la suma acumulada, luego explorar recursivamente el subárbol de u, y luego quitar la suma acumulada que añadimos. Esto es particularmente sencillo si usamos un vector de la STL para el arreglo global.

El arreglo T se calcula facilmente en la misma dfs, ya que

T_v = 1 + \sum\limits_{v \rightarrow u} (T_u)

Ahora podemos generar D, al estilo de programacion dinámica usando E. Notemos que

D_v = \sum\limits_{v \rightarrow u} (E_ u + D_u)

Lo que se puede hacer en la misma DFS.

Por lo tanto, nuestro algoritmo tiene complejidad O(Nlog(N)).

Primero reescribamos la expresión dada como

k = \dfrac{xy}{x + y}

De donde podemos despejar y como

y = \dfrac{xk}{x - k}

Sin perdida de generalidad, supongamos x \leq y, entonces se tiene

x \leq \dfrac{xk}{x - k}

x^2 \leq 2xk

x \leq 2k

Por lo tanto, podemos iterar x desde 1 hasta 2k, obtenemos y, y verificamos que k = \dfrac{xy}{x + y}, y > 0.

Guardamos las parejas que satisfazcan dichas condiciones y las imprimimos en el orden requerido, cuidando no repetir alguna respuesta.

Lo que nos deja con un algoritmo de complejidad O(k).

Una solución alternativa es la siguiente:

Te puedes dar cuenta que x, y > k, entonces el problema se convierte a  buscar a y b que cumplan

\dfrac{1}{k} = \dfrac{1}{k + a} + \dfrac{1}{k + b}

con a,b > 0. Si simplificas la igualdad llegas a que k^2 = ab, así que todo se reduce a encontrar las parejas de divisores a, b de k^2.  Lo que deja también un algoritmo de complejidad O(k).

Nota: Agradezco a José Tapia y a Carlos Galeana por su colaboración en el problema G.

Quédate en casa con omegaUp – nuestra respuesta al COVID-19

Querida comunidad omegaUp:

La epidemia del COVID-19 ha causado cambios importantes en nuestra vida diaria, trabajo, escuela y familia. Para ayudar a manejar el Distanciamiento Social a toda nuestra comunidad, hemos creado la campaña Quédate en casa con omegaUp: una serie de iniciativas educacionales en línea para apoyar la continuidad de la educación tecnológica en Latinoamérica.

1. Tutoriales para Profesores: ¿Cómo usar omegaUp para dar clases de programación en línea?

omegaUp.com es una plataforma gratuita en Español que ayuda a estudiantes a mejorar sus habilidades en Ingeniería de Software resolviendo retos de programación de una forma divertida y competitiva. Profesores de más de 100 escuelas de nivel Medio Superior y Superior en México y Latinoamérica usan la plataforma para dejar tareas y exámenes con retos de programación que los alumnos pueden resolver en línea.

Te invitamos a ver nuestros video-tutoriales para saber cómo funciona la plataforma de omegaUp y cómo puedes usarla para administrar tus cursos de programación en línea. Aquí dejamos el primer tutorial, en los próximos días produciremos más tutoriales que publicaremos en nuestra página de Facebook:

2. Para estudiantes: Ciclo de Conferencias en línea vía Facebook Live

Experiencias de Carrera es uno de los programas sociales de omegaUp que busca conectar el talento latinoamericano con experiencia en la industria de la Ingeniería de Software con estudiantes para motivarlos a continuar en el ramo de las Ciencias Computacionales y compartir la experiencia de trabajar en compañías como Google, Microsoft, Facebook entre otras.

Usualmente omegaUp organiza estas pláticas para las instituciones reconocidas como La Escuela del Mes y Clubes de Programación omegaUp. Sin embargo durante Marzo y Abril abriremos el ciclo de conferencias a todos los estudiantes que deseen entrar a través de Facebook Live. Síguenos en nuestra página de Facebook para que te enteres de las fechas y no te pierdas a ninguno de nuestros excelentes ponentes.

3. Para estudiantes: Aprende a programar en C++ con omegaUp – curso en línea

 

En omegaUp estamos preparando un curso en línea gratuito y abierto al público en general para aprender a programar en C++ en línea, con omegaUp. El curso estará basado en el material de Introducción a C++ que tenemos disponible en la plataforma de omegaUp.

Este curso será una excelente oportunidad para alumnos de nivel Medio Superior y Superior que deseen ampliar sus conocimientos de Ingeniería de Software, o todos aquellos simplemente empezar a incursionar en el amplio mundo de las Ciencias Computacionales.

Síguenos en nuestra página de Facebook para conocer los horarios y más detalles sobre el curso.

4. Liga de Programación omegaUp

¿Estás interesado en el mundo de la programación competitiva? omegaUp organizará la 1er Liga de Programación omegaUp, una serie de concursos semanales abiertos al público en general con temas y niveles de dificultad variados, empezando el próximo Jueves 26 de Marzo.

Demuestra tus habilidades de resolución de problemas computacionales y mejora tu nivel compitiendo contra los mejores. Para más detalles sobre las bases, registro, premios y fechas consulta nuestra página de Facebook.

5. Para nuestros amigos en Centroamérica: 1er Copa Centroamericana de Programación

En omegaUp también estamos organizando la 1er Copa Centroamericana de Programación, una competición dirigida a nuestra comunidad de El Salvador, Honduras y Guatemala. El concurso se llevará a cabo el Sábado 25 de Abril. Para mayor información sobre los requisitos y registro te invitamos a leer nuestras bases aquí.


En estos momentos difíciles es cuando más creemos que podemos contribuir a la causa educacional. Por favor ayúdanos a compartir este mensaje con el hashtag #QuédateEnCasaConOmegaUp. Estamos en contacto y por favor cuiden de su salud y la de sus familiares manteniéndose en casa.

Joe Ponce
Director Ejecutivo, omegaUp

El nuevo ranking de escuelas de omegaUp

PROXIMAMENTE…

Rankings de escuelas

Estamos implementando el nuevo ranking de escuelas de omegaUp, tanto mensual como histórico. Cada uno de ellos funciona de manera similar, salvo por algunas variaciones que detallaremos a continuación:

  • El score de una escuela para el ranking mensual, se obtiene a partir de la suma de los puntos que provee cada problema que los usuarios de la escuela han resuelto dentro del mes actual. 

Contamos los puntos de cada problema una única vez, por lo que si 10 usuarios de una misma escuela, resolvieron el mismo problema que otorgaba 0.5 puntos, la contribución de éstos es 0.5 y no 5 (0.5*10).

  • El score de una escuela para el ranking histórico es calculado de la misma manera que el rank mensual, con el diferencial de que el score se calcula a partir de todos los problemas que se resolvieron desde que la escuela fue creada.

Recuerda que un problema se cuenta como resuelto por una escuela, siempre que un usuario asociado a la misma, lo haya resuelto. Si dicho usuario, luego modifica su escuela actual en su perfil, dicho problema y el puntaje que éste aportaba al score de su escuela anterior, no se mueven a la nueva, puesto que a la fecha en que resolvió dicho problema, el usuario aún no pertenecía su nueva escuela.

Así que si lo que un coder desea es que su escuela mejore su score en el ranking de omegaUp, debe priorizar que los alumnos de la misma resuelvan la mayor cantidad de problemas distintos en la plataforma, pues el hecho de que varios resuelvan el mismo problema, aportaría lo mismo a que uno solo lo haga.

Atentamente,

El equipo de omegaUp

Insignias de Usuario en omegaUp

Estimados coders,

Tenemos el agrado de presentarles una nueva característica de la plataforma: “Insignias de Usuario”. Estas insignias son pequeños reconocimientos para los diversos logros alcanzados por ustedes y se encuentran ya disponibles en la plataforma.

Para ver las insignias que has obtenido, simplemente debes acceder a tu perfil en omegaUp, ahora existe una nueva sección donde se listarán todas tus insignias conseguidas:

Además, si quieres ver todas las insignias existentes, solo debes hacer click en el enlace Ver todas, que se encuentra al costado del número de insignias obtenidas. Recuerda que al poner el mouse sobre el ícono de la insignia, podrás ver la descripción de lo que tienes que hacer para poder obtener dicha insignia. Hay insignias que tienen un ícono sombreado por completo de negro, eso significa que aún no la has obtenido, ¡podrás ver el ícono de la insignia una vez la obtengas!

Si quieres ver un poco más de información de una insignia, basta con que hagas click sobre ella, de esta manera, podrás acceder a una vista más detallada:

Y eso no es todo… Ahora, cada vez que recibas una insignia nueva, recibirás también una notificación, así siempre estarás al tanto de los nuevos reconocimientos adquiridos.

Y si te estás llenando de notificaciones, puedes marcarlas como leídas a todas, o de manera individual.

¡Tú también puedes proponer nuevas insignias, solo debes seguir la Guía para la propuesta de Insignias de omegaUp!

Esperamos que te guste esta nueva característica y que puedas desbloquear todas las insignias de usuario en omegaUp.

¡Muchas gracias! – 2da Gala Anual de omegaUp

Prof. Pedro Fuentes dando un gran discurso en la 2da Gala de omegaUp.

Queridos amigos,

Gracias a la increíble generosidad de todos los participantes, nuestra 2ª Gala Anual celebrada el 19 de Octubre trajo casi $ 40,000 en fondos que serán utilizados para ayudarnos a mejorar omegaUp.com como una plataforma de aprendizaje gratuita para llegar a más estudiantes, y continuar nuestros programas sociales.

Códigos de Yucatán by Rafa Díaz, Artist & member of omegaUp Board of Directors
Eduardo Sosa, Consul Adscrito de México en Seattle, en el discurso de apertura.

Hemos sido honrados por la presencia de Eduardo Sosa, Cónsul de México, Clary Monzón, Cónsul General de El Salvador y Miguel Ángel Velásquez, Cónsul General de Perú. “El trabajo de omegaUp debe ser visto como el puente que une los sueños de nuestros estudiantes con un entorno de innovación que ya está sucediendo en todo el mundo”, fueron las palabras de apoyo del honorable Cónsul Eduardo Sosa. “Los puentes te van a llevar más lejos que las paredes. Son más difíciles de hacer, y deshacer.”, fueron las palabras de aliento del honorable Cónsul Miguel Ángel Velásquez.

Miguel Ángel Velásquez, Honorable Consul de Perú. Clary Monzón, Honorable Consul de El Salvador in Seattle

Miguel Ángel Velásquez, Honorable Consul de Perú en Seattle

Hemos celebrado los logros de la Escuela del Año, el Instituto Técnico Superior del Sur de Guanajuato representado por el Prof. Germán Gutiérrez, el organizador principal de la Coding Cup ITSUR 2019, un concurso de programación organizado en omegaUp que cuenta con 1500 estudiantes que participaron en todo México.

 

La Escuela del Año: Nancy Pacheco, parte del omegaUp Board of Directors y Prof. Germán Gutiérrez del Instituto Tecnológico Superior del Sur de Guanajuato.

 

El Prof. Pedro Fuentes compartió, en un emotivo discurso, su experiencia al guiar a los alumnos del Centro de Bachillerato Tecnológico Agropecuario #39 en Temoac, Morelos, a participar en competiciones internacionales de robótica utilizando la magia de la programación como su fuerte. La historia del Prof. Pedro estará siempre grabada en nuestros recuerdos como un ejemplo de logro y éxito a través de la perseverancia.

Salvador Segura  – parte del  omegaUp Board of Directors, cerrando la Gala 2019.

 

Gracias – amigos, voluntarios y donadores – por hacer posible estas historias de éxito. Su apoyo inspira talento y nos motiva a continuar en este viaje.

omegaUp Fundraising Team y amigos

Para mayor información sobre la organización, visita omegaUp.org y síguenos en Facebook.

Sinceramente,

 

 

 

 


Joemmanuel Ponce
Director Ejecutivo – omegaUp.

Guía para la Propuesta de Insignias en omegaUp

Tú también puedes proponer nuevas insignias para la plataforma, simplemente debes tomar en cuenta las consideraciones que se detallan a continuación y abrir un issue en nuestro repositorio en Github haciendo clic aquí.

Consideraciones:

  • Las insignias en omegaUp son una manera de reconocer logros pequeños pero significativos, conseguidos por los usuarios al usar la plataforma. En dicho sentido, no está permitido proponer insignias ad-hoc, cuya posibilidad de ser conseguidas involucre aspectos que van más allá de la habilidad del estudiante o el uso que éste le da a la plataforma. Por ejemplo:
    • Insignia por haber ganado un concurso en Enero
    • Insignia por tener un nombre de usuario menor a 5 caracteres

 

  • El nombre de una insignia está limitado a 50 caracteres y debe ser pensado como una característica y no como una acción del usuario. Por ejemplo, si lo que se desea proponer es una insignia para un usuario que ha enviado feedback sobre un problema, el nombre de dicha insignia debe ser: “Proveedor de Feedback”, en lugar de “Proveer Feedback” o “Haber provisto de Feedback”.

 

  • La descripción de una insignia debe responder a la pregunta: ¿Qué debe haber realizado un usuario para recibir esta insignia?, y debe seguir el siguiente formato: “El usuario realizó [inserte la acción que realizó]”.

 

  • Una insignia puede tener un ícono personalizado proporcionado por la persona que la propone o implementa. Los íconos personalizados tienen ciertas restricciones, que son:
    • Debe ser un archivo .svg
    • Las dimensiones del ícono son 600×600 píxeles.
    • El archivo debe tener un peso máximo de 15kB.
    • El ícono debe mantener siempre la forma de la insignia por defecto, lo único que puede ser ajustado son los colores y el relleno de la misma. Por lo tanto, en caso de ser requerido, el ícono personalizado puede ser creado a partir de una modificación del ícono por defecto, el cual puede ser descargado del siguiente enlace.

 

  • El usuario que propone una insignia puede indicar también cómo debería ser la consulta en la base de datos, para que ésta sea asignada e incluso la prueba unitaria que se puede realizar. De esta manera podrá facilitar el trabajo de la persona que se encargue de implementar la misma.

Reporte anual de actividades 2019

“Yo sí creo que omegaUp me ayudó a llegar aquí [Microsoft], porque fue la primera plataforma que usé, y por bastante tiempo, para aprender las bases; y eso realmente cambió el destino de mi vida y para dónde fue mi camino” – Elsy Pinzón, Software Engineer en Microsoft de Yucatán, México.

Queridos amigos,

Cuando escribimos la primer línea de código de omegaUp.com 8 años atrás, estábamos cambiando la industria del software en México, pero no lo sabíamos aún. El 2019 marcó el tercer año de operaciones desde que omegaUp se convirtió en una asociación sin fines de lucro ( registro 501(c)(3) en Estados Unidos) con la misión de construir el camino del mejor talento en Ingeniería de Software en América Latina, ofreciendo una plataforma de aprendizaje accesible y programas sociales.  

Estamos convencidos que el idioma no debe ser una barrera de entrada a la industria de la Ingeniería de Software: es por eso que creamos omegaUp.com, una plataforma gratuita online con contenido en Español donde los estudiantes pueden mejorar sus habilidades de programación resolviendo retos. Creemos en el rol fundamental que los profesores tienen en la educación de sus alumnos: es por eso que creamos herramientas en omegaUp para que los profesores administren sus cursos de programación, tareas y organicen exámenes.

omegaUp.com
omegaUp.com

Gracias a la generosidad de ustedes, nuestros donadores, en 2019 pudimos ofrecer un servicio gratuito en omegaUp.com a 22,689 usuarios que resolvieron al menos 1 reto, 88% de ellos de México. En total nuestros usuarios resolvieron 189,151 retos. omegaUp se usa en más de 200 Preparatorias y Universidades, haciéndolo una herramienta de vital importancia en la educación de Ciencias Computacionales de muchos estudiantes. Sólo hay una forma de que una plataforma online pueda ser tan popular sin un presupuesto de promoción: simplemente hace el trabajo de los profesores y estudiantes más fácil.

Luis Héctor Chávez, CTO of omegaUp (back) and Juan Pablo Gómez, Software Engineer at omegaUp (right) helping open source contributors at CCOSS 2019.
Luis Héctor Chávez, CTO de omegaUp (atrás) y Juan Pablo Gómez, Software Engineer en omegaUp (right) ayudando a más contribuidores de Open Source en el  CCOSS 2019.

Nuestros programas sociales van dirigidos a inspirar talento promocionando las carreras exitosas de la comunidad latinoamericana en la Ingeniería de Software. Este año empezamos Historias omegaUp, una serie de entrevistas con Ingenieros de Software de Microsoft y Facebook que aprendieron a programar en omegaUp.com.

Esperamos que estas historias ayuden a inspirar más talento en Latinoamerica validando el valor de nuestra comunidad en la industria.

Con nuestro programa Experiencias de Carrera, organizamos 8 videoconferencias, conectando más de 2000 estudiantes con el talento de la industria que trabaja en compañías como Amazon, DigitalOnUs, Microsoft y Oracle. Estudiantes de escuelas como el Colegio de Bachilleres Tecnológico Agropecuario (CBTa #39) en Temoac, Morelos, CONALEP 252 en Veracruz, la Universidad de Guanajuato, México, tuvieron la oportunidad de escuchar experiencias  y recomendaciones de talento latinoamericano actualmente trabajando en la industria.

Salvador Segura (Director de Business Programs en Microsoft) platicando con alumnos del CONALEP 252 en Veracruz, México

Lanzamos Clubes de Programación omegaUp, un programa piloto que tiene como objetivo apoyar grupos estudiantiles y clubes de programación con recursos que maximicen su impacto. Estamos trabajando muy de cerca con la Universidad Autónoma de Chihuahua y el Colegio de Bachilleres de Chihuahua. Además, cada mes premiamos al mejor estudiante de omegaUp con nuestro programa de Coder del Mes.

Miguel Romero, Director de Programas en omegaUp (centro) con alumnos del Colegio de Bachilleres de Chihuahua, México

Uno de los retos más cruciales que enfrentamos como industria es la diversidad de género. Sólo el 26% de los usuarios de omegaUp son mujeres. Este número no está nada cerca de donde quisiéramos que esté, y como una plataforma educativa de alto impacto reconocemos nuestra responsabilidad social para ayudar con este problema. Estamos comprometidos a ayudar a cerrar la brecha existente incentivando y apoyando esfuerzos de diversidad de género a través de los Clubes de Programación registrados en nuestro programa, donde es un objetivo mutuo incrementar la participación femenina en las actividades del club. 

Nuestros logros no podrían ser posibles sin el tremendo esfuerzo y pasión de nuestros 23 voluntarios distribuidos en Estados Unidos, México y Perú. A todos ellos, muchas gracias por su fantástico compromiso e incansable labor en cumplimiento de la misión de omegaUp.

Voluntarios de omegaUp en el área de Seattle, WA

Voluntarios de omegaUp de México y Silicon Valley
Voluntarios de omegaUp en México y Silicon Valley

Todos estos resultados fueron obtenidos con un presupuesto operativo de tan sólo 62,247 dólares<span style="font-weight: 400;"> de los cuales </span>71% se usaron para nuestros programas sociales<span style="font-weight: 400;">: omegaUp.com, Experiencias de Carrera, Coders del Mes y Clubes de Programación. Invertimos 17% en nuestros esfuerzos de recaudación de fondo como la 1ra Gala Anual ``The Aztec Coders'' celebrada in Bellevue, WA, USA, donde gracias a la generosidad de nuestros donantes conseguimos30,785 dólares en donaciones equivalentes al 49% de nuestro presupuesto anual.

omegaUp 1st Annual Gala 2018: The Aztec Coders
omegaUp 1st Annual Gala 2018: The Aztec Coders

Tu apoyo inspira talento. Juntos podemos contribuir a crear una industria de Ingeniería de Software más diversa empoderando a nuestra comunidad Latinoamericana.

Por favor únete a nuestra causa haciendo tu donación hoy: https://omegaup.org/#donate

Invitación a la Gala Anual de Recaudación de Fondos – Coding Latam. Octubre 19, Bellevue, WA, USA

Gracias por toda su ayuda.

 

 

Joemmanuel Ponce
CEO, omegaUp

El Nuevo Buscador de Problemas de omegaUp

Usuarios de omegaUp:

Hemos creado un Asistente de búsqueda de problemas. Aprovechando las etiquetas y puntuaciones de calidad y de dificultad que ustedes han venido otorgándole a los problemas de la plataforma, hemos implementado este nuevo buscador que permite filtrar los problemas que les interesen en base a diversos temas y la dificultad que éstos deberían poseer.

El Asistente de búsqueda de problemas es una alternativa más fácil de usar para usuarios iniciantes de omegaUp y permite que todos puedan mejorar sus habilidades de programación en tópicos específicos.

¿Cómo funciona el asistente de búsqueda?

problem-finder-wizard
Un breve ejemplo

Usarlo es súper fácil, simplemente debes acceder a la pestaña de Problemas y, debajo de los campos de búsqueda, se encuentra un enlace que dice “Probar el nuevo buscador de problemas”, al hacer click en dicho enlace, se abrirá el nuevo buscador, a partir de ahí el proceso es muy simple:

  1. Escoger los temas y lenguaje de interés: puedes filtrar problemas que puedan ser resueltos  únicamente con Karel o con varios lenguajes, además, al escribir en el campo de Tags, serán listados los temas que coincidan con lo que estás buscando, ¡puedes escoger más de uno solo! Recuerda que si escoges múltiples temas, serán listados los problemas que contengan AL MENOS uno de ellos. Cuando finalices tu selección, clickea en Siguiente.
  2. Escoger el rango de dificultad: los problemas de omegaUp pueden ser calificados desde Muy Fáciles hasta Muy Difíciles, en esta opción tú podrás seleccionar las posibles dificultades que tendrán los problemas que estás buscando. Si deseas escoger problemas que sean únicamente de un tipo de dificultad, puedes poner los selectores de inicio y fin de rango, en el mismo lugar. Una vez seleccionado el rango, debes clickear en Siguiente.
  3. Escoger la prioridad: en este paso deberás escoger el orden respecto al cual deberán ser listados los problemas, puedes escoger entre Calidad (la puntuación de calidad), Puntos para ranking (los puntos que otorga al ser resuelto) y Popularidad (cuántas veces se ha intentado resolver). Cuando hayas definido tu prioridad, clickea en Confirmar.

Voilà! Los problemas que se ajustan a tus criterios de búsqueda aparecerán en la lista y podrás empezar a resolverlos y mejorar tus habilidades de programador!

Esperamos que esta nueva implementación te sea muy útil, si tienes alguna duda o consulta puedes contactarnos en los comentarios.

Categorías omegaUp

Conoce las Categorías de Usuarios de omegaUp

Hemos asignando una categoría a cada usuario de omegaUp. La categoría de cada usuario depende su posición actual en el ranking de omegaUp como se muestra a continuación:

  • El top 1% de usuarios mejor posicionados en el rank obtiene la categoría ω (“omega pequeña”) y color rojo.
  • El top 9% de usuarios siguientes obtiene categoría Ω (“omega grande”) y color amarillo.
  • El top 15% de usuarios siguientes obtiene categoría Θ (“zeta” o “theta”) y color azul.
  • El top 35% de usuarios siguientes obtiene categoría Ο (“ómicron grande”) y color verde.
  • El top 40% de usuarios siguientes obtiene categoría ο (“ómicron pequeña”) y color gris.

¿Cómo puedo saber mi categoría?

Puedes verla en tu página de perfil.

 

¿Cómo asciendo de categoría?

¡Resolviendo más problemas! Conforme resuelvas más problemas, tu posición en el rank irá subiendo y con ella tu categoría.

 

¿De dónde vienen los nombres de las categorías?

De la notación de Landau.

 

¿Por qué omega pequeña (ω) es más alto que omega grande (Ω)?

El orden de las categorías viene de la definición de las notaciones de Landau.

Notación Definición formal Descripción Interpretación práctica
f(n) = o(g(n))   f es dominada por arriba asintóticamente por g. f < g
f(n) = O(g(n))   f es acotada por arriba asintóticamente por g. f <= g
f(n) = Θ(g(n)) f(n) = o(g(n)) y f(n) = O(g(n)) f es acotada por arriba y abajo asintóticamente por g. f = g
f(n) = Ω(g(n))   f es acotada por abajo asintóticamente por g. f >= g
f(n) = ω(g(n))   f es dominada por abajo asintóticamente por g. f > g