Algoritmos de ordenación y visualgo.net

¿Has llevado cursos de algoritmos? Son cursos básicos que te dejan para siempre el pensamiento algorítmico necesario para aprender a programar, antes de aprender a codificar. Esta idea de programar antes de codificar se desarrolla en este artículo presentado por Rosanigo y Paur.

fapencio_escribe

Interesante. “Aprender a programar, antes que aprender a codificar”. Va para mi libro.

Uno de los temas más interesantes en estos cursos de algoritmos es el tema de algortimos de ordenación. El problema clásico de, dada una lista de números, ordenar de mayor a menor, y las diferentes estrategias (algoritmos) para alcanzar el objetivo. Revisar cada algoritmo es un poco revisar la historia de la informática.

El asunto es que con el pasar de tiempo, los nombres y las estrategias de resolución (los algoritmos) se confunden y se olvidan.

visualgo.net

Entonces, encontré esta herramienta web muy interesante: http://visualgo.net/ donde se puede, entre otras cosas, revisar el funcionamiento de cada algoritmo de una forma muy visual. El objetivo de este post es mostrar los algoritmos de ordenación más importantes, junto a su respectiva animación en visualgo.net.

Entra a la página, ve a sorting y pones en exploration mode. El otro mode es para aprender a usar la interfaz. Básicamente, en la parte derecha hay dos botones, uno para crear la lista con diferentes opciones y otro para iniciar la ordenación. En el centro de la pantalla se ven los valores que se ordenarán. Abajo, unos controles tipo video, y a la derecha una opción para ver qué se ejecuta en ese momento y qué decisión se toma, y otra donde se observa el algoritmo usado y cómo se va recorriendo. En la parte superior, los diferentes algoritmos de ordenación para irlos seleccionando e ir ejecutando y observar las diferencias en cada estrategia de ordenación (algoritmo).

visualgo_captura.png

Captura de pantalla: Ordenación en ejecución (visualgo.net)

Algoritmos de ordenación

Los algoritmos de ordenación más conocidos son los siguientes:

  • Bubble Sort
  • Select Sort
  • Insert Sort
  • Merge Sort
  • Quick Sort
  • Count Sort

Varios nombres, estrategias algo parecidas. Entonces, vayamos viendo cada uno, junto a su animación en visualgo.net. Es decir, mira el algoritmo y ve a visualgo.net y ejecutalo.

Bubble Sort

Idea: Recorrer el listado de números comparando el izquierdo con el derecho, si el izquierdo es mayor, intercambiar (swap).

De esta forma, el elemento mayor “burbujea” hacia el final del listado.

visualgo.net propone este algoritmo, el que se recorrre cuando ejecutas desde la web:

do
  swapped = false
  for i = 1 to indexOfLastUnsortedElement
    if leftElement > rightElement
      swap(leftElement, rightElement)
      swapped = true
while swapped

Select Sort

Idea: Asignar el primer elemento como el mínimo y compararlo con los demás, si se encuentra otro menor, será el nuevo mínimo y hay que intercambiarlo a la primera posición sin ordenar.

De esta forma se va seleccionando el menor valor cada vez.

visualgo.net propone este algoritmo, el que se recorrre cuando ejecutas desde la web:

repeat (numOfElements - 1) times
  set the first unsorted element as the minimum
  for each of the unsorted elements
    if element < currentMinimum
      set element as new minimum
  swap minimum with first unsorted position

Insert Sort

Idea: Recorrer el listado de números, extrayendo cada número de izquierda a derecha y buscando su lugar para insertarlo. Para esto hay que ir moviendo los elementos del listado para dar espacio el elemento insertado.

visualgo.net propone este algoritmo, el que se recorrre cuando ejecutas desde la web:

mark first element as sorted
for each unsorted element
  'extract' the element
  for i = lastSortedIndex to 0
    if currentSortedElement > extractedElement
      move sorted element to the right by 1
    else: insert extracted element

Merge Sort

Idea: Usar una estrategia de “divide y vencerás”. Partir el listado en dos más pequeños, ordenar cada sublistado y luego mezclar (merge) ambos listados.

visualgo.net propone este algoritmo, el que se recorrre cuando ejecutas desde la web:

split each element into partitions of size 1
recursively merge adjancent partitions
  for i = leftPartStartIndex to rightPartLastIndex inclusive
    if leftPartHeadValue <= rightPartHeadValue
      copy leftPartHeadValue
    else: copy rightPartHeadValue
copy elements back to original array

Quick Sort

Idea: Usar una estrategia de “divide y vencerás”. Usar un pivote para hacer movimientos sobre los valores siguientes entre lo que sea menor o mayor que el pivote. Finalmente mueve el pivote para realizar ordenaciones acotadas, y hacer cambio de pivote.

visualgo.net propone este algoritmo, el que se recorrre cuando ejecutas desde la web:

for each (unsorted) partition
  set first element as pivot
  storeIndex = pivotIndex + 1
  for i = pivotIndex + 1 to rightmostIndex
    if element[i] < element[pivot]
      swap(i, storeIndex); storeIndex++
  swap(pivot, storeIndex - 1)

Count Sort

Idea: Almacenar los valores en otro lugar donde se ha almacenado cada elemento con su valor correspondiente. Finalmente reconstruir el listado original.

visualgo.net propone este algoritmo, el que se recorrre cuando ejecutas desde la web:

create key (counting) array
for each element in list
  increase the respective counter by 1
for each counter, starting from smallest key
  while counter is non-zero
    restore element to list
    decrease counter by 1

Resumen

Bueno es un resumen para quedarse con ciertas cosas de lo anterior:

  • La ordenación es uno de las aplicaciones más frecuentes usadas en programación
  • Los datos se pueden ordenar en forma ascendente o descendente
  • Cada recorrido sobre los datos se llama iteración o pasada
  • Los algoritmos de ordenación más conocidos son:
    •  Burbuja (Bubble)
    •  Selección (Select)
    •  Inserción (Insert)
    •  Mezcla (Merge)
    •  Rápida (Quick)
    •  Conteo (Count)
  • Los algoritmos Merge, Quick y Count son más eficientes que Bubble, Insert y Select.
notbad

Visualización de algoritmos. Bien.

Nos vemos en la red.

Resultados del examen de Admisión 2015-II de la UNICA

Si solo necesitas el PDF de resultados, está aquí.

En agosto, publiqué dos posts sobre los resultados del examen de admisión. El primero, que trataba sobre cómo tomar el PDF que publica la Universidad y convertirlo en cuadros y gráficos de análisis. Y el segundo, donde leyendo dichos cuadros, obtenemos varias respuestas.

Entonces, es hora de repetir los pasos y analizar los últimos resultados.

Convertir el PDF en cuadros y gráficos

Sigamos el primer post tal cual, entonces, este es el proceso:

Primero debemos tomar el PDF y convertirlo en algún formato más tratable. Usamos cometdocs.

EXAMEN20152-1

Convertir el PDF en Excel: Paso 1

EXAMEN20152-2

Convertir el PDF en Excel: Paso 2

Luego, abrimos el archivo y vemos que tiene todo el formato de reportes, que no nos sirve para análisis. La vez pasada usé unos macros realizados al vuelo. Ahora debían funcionar igual, pero no. El formato de los reportes ha cambiado un poco. ¿Hacen reportes a demanda en cada examen? Raro.

EXAMEN20152-3

Limpiar la información convertida: Uso de macros de Excel

Finalmente y luego de algunos retoques finales, tenemos la data preparada.

EXAMEN20152-4

Data formateada, lista para el zoho

Y ahora, en zoho, solo remplazamos la data anterior. Digo remplazamos porque la licencia gratuita solo permite 10 000 registros. De esta manera incluso los links anteriores nos sirven para ver los resultados de este examen.

guyreading

¿Solo 10 000 registros? Cambia de herramienta ¿no?

Así, que ya podemos comentar los resultados.

Como en la vez anterior, solo debes acceder a los links donde se comentan los resultados. Y los comentaremos en perspectiva con el post de agosto.

Sobre los postulantes

postulantes20152

Captura de pantalla

Hubo 6362 postulantes (en agosto hubo 6712). Ingresaron 1411 y 209 exámenes anulados (en agosto hubo 24).  Hubo nuevas modalidades: Mancomunidades.

postulantes20152-2.png

Captura de pantalla

Si vemos a los postulantes por carrera, observamos algo relevante. Normalmente la mayor cantidad de postulantes ha estado en Medicina Humana. Esta vez, la mayor cantidad de postulantes se concentró en Administración, seguido por Ingeniería Civil.

Sobre los puntajes (y un segundo panel)

postulantes20152-3.png

Captura de pantalla

¿Qué observamos? Entre los que ingresaron: Puntaje máximo: 1808.75 (en agosto: 1978.75), puntaje mínimo: 136.25, promedio: 647. Entre los que no ingresaron: Máximo: 1655, mínimo: 0, promedio: 430. ¿Lo viste? Alguien ingresó con 136 puntos mientras que alguien que obtuvo 1655 no ingresó. Aquí podemos filtrar por modalidad o carrera.

En el cuadro de la derecha, de Puntaje versus Modalidad, vemos que en ORDINARIOS tenemos la nota más alta: 1808.75. El grupo con la nota máxima más baja es GRADUADOS con 545 (en agosto también este grupo tuvo la nota más baja).

postulantes20152-4

Captura de pantalla

Un cuatro más. En este, como en el post de agosto la intención era agrupar a los postulantes por sus notas. Y sí, el 67.3% de postulantes sacaron entre 0 y 500 puntos (de un máximo de 2000).

Conclusión

Para terminar como en el post anterior, respondamos las mismas preguntas:

¿Quién fue el primer puesto?

En el Panel 2, damos clic a la barra roja para ver el detalle. Mejor pongamos el cuadro de los diez mejores puntajes:

postulantes20152-5.png

¡Triple empate en el primer lugar!

¿Comparar al primer puesto de cada facultad?

En el Panel 2 observamos gráficamente esta pregunta. También, haciendo un Top12, tenemos:

postulantes20152-6.png

Sí, sí, el top12 fue para salga mi carrera (=

¿Notas de las modalidades diferentes a ORDINARIOS?

En en Panel 2, el gráfico de la derecha nos muestra esta respuesta.

¿Alguien no ingresó con una nota que le hubiera permitido ingresar a otra facultad?

En el Panel 2, el gráfico de la izquierda nos respondió. Específicamente, alguien no ingresó a pesar que obtuvo 1655.

¿Cuántos ingresaron en relación a cuántos postularon?

En en Panel 1, vemos que de 6362 postulantes, 1411 ingresaron, es decir, el 22%. En otras palabras, uno de cada cinco postulantes ingresó.

E igual que en la oportunidad pasada, los invito a seguir jugando con los gráficos y tablas dinámicas.

Nos vemos en la red.

Wikipedia: MDA y Martin Sullon

Una de las conferencias interesantes dentro del CLEI2015 fue la que habló sobre MDA. El trabajo se refería a una propuesta que presenta una herramienta realizada bajo MDE que permite validar modelos de replicación MySQL y cuyo Abstract está aquí.

Entonces estaba leyendo sobre MDA y MDE, cuando llegué a Wikipedia, y me encontré con algo interesante en este artículo:

martinsullon1

Captura de Wikipedia

¿Viste? O sea que la OMG mantiene una guía que se llama “Guía MDA Martin Sullon”. Ya.

Pero el problema no es ese. Bajo los cinco pilares de la Wikipedia, cualquier puede editar, y eso incluye a los bromistas y “troles de internet”. Si ellos abundan en Facebook o Twitter ¿por qué no en Wikipedia?. La solución es simple: editar la entrada a lo correcto. Así, en pocos segundos, corregí la entrada, y ahora se ve así:

martinsullon2

Captura después de la corrección

Como se puede ver, además, le añadí una referencia a la guía real, específicamente a la página de la OMG para descargarse la MDA guide en PDF o en MS Word.

Entonces, si el problema no es ese ¿entonces cuál es el motivo del post? Pues se me ocurrió buscar “guia mda martin sullon” en Google para ver qué encontrada, y mira:

guyreading

¿Qué pasó aquí?

¿Qué? ¿Entonces qué pasó aquí? Simple. Muchas páginas de Internet, incluso universidades, copian el contenido de Wikipedia sin revisión (y según observo, sin mencionar a la fuente). ¿Qué se pide? Que cuando se use el contenido de Wikipedia, se revise, se corrija (si es el caso) y se cite.

¿Y Martin Sullon?  Bueno, revisando un poco. Vemos que esta parte del texto se trajo desde la versión en inglés del mismo artículo:

martinsullon4

Captura. Aquí se observa que el texto es correcto.

Y, una de las cosas útiles de la Wikipedia, se puede saber quién y cuándo añadió esa información errónea:

martinsullon3

Captura: Se usa mucho el historial de cambios de una página de Wikipedia. Los dos marcados (3 y 3) y hechos por la misma IP, son los que realizaron el cambio.

La información ya está corregida. ¿Cuánto demorarán las otras páginas en corregir su contenido?

Nos vemos en la red.

Resultados del examen de Admisión 2015-I de la UNICA y lo que encontramos

En el post anterior vimos los resultados del examen de adición de la UNICA, cómo la universidad ha publicado los resultados en PDF, y nos preguntamos si había forma de obtenerle provecho a ese PDF para descubrir más información. En ese post, nos centramos en transformar el PDF en cuadros y gráficos dinámicos. Para esto usamos algunas herramientas. Sin hablar de tecnología, conseguimos transformar datos en información.

Vamos ahora a comentar los resultados obtenidos. Pero antes…

Nostalgia (otra vez)

Ver ese PDF me recuerda la época en que vi mi nombre en una hoja similar, pegada afuera del local central de la universidad en el centro de Ica. En realidad recuerdo que habían dos tipos de listados: Todos los postulantes, la que tenía los terribles textos de INGRESÓ, NO INGRESÓ, y otra de Todos los ingresantes, la que tenía además una columna de puesto general. Esta última era la que se leía incansablemente en las radios locales y la que además, se publicaba en los diarios de la ciudad.

Siempre fue interesante saber quién fue el primer puesto, comparar al primer puesto de cada facultad, sorprenderse con las notas de las modalidades diferentes a ORDINARIOS, ver que alguien no ingresó con una nota que le hubiera permitido ingresar a otra facultad, o también advertir cuántos ingresaron en relación a cuántos postularon. Estos puntos eran temas de conversación los siguientes días.

Volviendo al presente, este es el tipo de preguntas que pretendo responder con este pequeño tratamiento sobre el PDF de resultados.

Sobre los postulantes

Hablemos sobre los postulantes. Para esto volvamos a los reportes preparados para este punto. Si no tienes cuenta Zoho, te pedirá que te des de alta. Te recomiendo que lo hagas, es gratis.

Captura. El reporte dinámico en el link de arriba.

Captura. El reporte dinámico en el link de arriba.

¿Qué observamos? 6712 postulantes en total, de los que ingresaron 1325. 86 postulantes no fueron a dar examen y 24 exámenes fueron anulados. Si jugamos con las modalidades, vemos que postularon 5 deportistas calificados de los que ingresaron 4, 11 por modalidad Discapacitados de los que ingresaron 10, 134 primeros puestos de colegios, de los que ingresaron 63, etc. También tenemos un filtro por Carrera.

Captura

Captura

¿Qué observamos? En este cuadro vemos la cantidad de postulantes por carrera. Mira las cinco primeras: MEDICINA, CIVIL, ADMINISTRACIÓN, DERECHO Y SISTEMAS. Entre las cinco albergan a 2676 postulantes. Esto representa el 40% del total de postulantes. El total de carreras ofrecidas: 43.

Sobre los puntajes

Hablemos ahora sobre los puntajes obtenidos. Recordemos: 100 preguntas, puntaje máximo: 2000. Los reportes para este grupo están aquí.

Captura. El reporte dinámico, en el link de arriba.

Captura. El reporte dinámico, en el link de arriba.

¿Qué observamos? Entre los que ingresaron: Puntaje máximo: 1978.75 (¡wow!), puntaje mínimo: 95, promedio: 711. Entre los que no ingresaron: Máximo: 1526.25, mínimo: 77.5, promedio: 483. ¿Lo viste? Alguien ingresó con 95 puntos (en una escala de 0..20 sería 01) mientras que alguien que obtuvo 15 (en escala 0..20) no ingresó. Aquí podemos filtrar por modalidad o carrera. Por ejemplo, si filtramos Carrera Medicina y Modalidad Ordinarios, los números son más estables: Ingresantes: Máximo: 1978.75, Mínimo: 1533.75, Promedio: 1620.

En el cuadro de la derecha, de Puntaje versus Modalidad, vemos que en ORDINARIOS tenemos la nota más alta, seguida de DEPORTISTA CALIFICADO, con 1360. El grupo con la nota máxima más baja es GRADUADOS con 545.

Captura.

Captura.

¿Qué observamos? La distribución notas máxima, mínima y promedio por carrera. Vemos que los valores son consistentes cuando filtramos INGRESANTES  y ORDINARIOS. Los demás cuadros grafican datos adicionales al respecto.

Además, en este tercer panel, tenemos esta información adicional:

Captura. La URL al panel, en el link de arriba.

Captura. La URL al panel, en el link de arriba.

¿Qué vemos? En el primer cuadro vemos la distribución de los puntajes. Es decir, hice 20 grupos donde coloqué a los postulantes por sus notas. ¿Resultado? el pico, 1823 postulantes obtuvieron entre 400 y 500. Si observamos la cantidad de postulantes que obtuvieron más de 1100 (cifra aprobatoria en una escala 0..20), la cantidad es baja.

Captura.

Captura.

Este gráfico también nos permite comparar la cantidad de postulantes en función de sus notas, divididos en cuatro grupos: [0,5], <5,10], <10,15] y <15,20]. En la captura, por ejemplo, se informa que el 59.90% de los que ingresaron obtuvieron entre 500 y 1000 puntos.

Conclusión

Para no perdernos entre tantos datos, vamos a volver a nuestras preguntas iniciales, y tratemos de dar respuesta:

    • ¿Quién fue el primer puesto?

En el Panel 2, damos clic a la barra roja para ver el detalle. Mejor pongamos el cuadro de los diez mejores puntajes:

Medicina Humana.

Medicina Humana es la carrera con los postulantes con mejores notas.

    • ¿Comparar al primer puesto de cada facultad?

En el Panel 2 observamos gráficamente esta pregunta. También, haciendo un Top10, tenemos:

NOMBRE PUNTAJE MERITO CONDICION CARRERA
GUTIERREZ LOZANO, RODRIGO ANDRES 1978.75 1 INGRESO MEDICINA HUMANA
HUARCAYA PEÑA, WILMER ALDAIR 1760.00 1 INGRESO INGENIERIA MECANICA Y ELECTRICA
HERNANDEZ TORRES, ANTONY FRANCISCO 1683.75 1 INGRESO AGRONOMIA
BOZA ALMIRON, KATHERINE DEL ROSARIO 1683.75 1 INGRESO INGENIERIA PESQUERA
MONTOYA CANTORAL, JHONSON 1630.00 1 INGRESO ARQUITECTURA
COLLADO HUANCAHUARI, AUGUSTO DAVID 1622.50 1 INGRESO INGENIERIA DE SISTEMAS
ESPINO SERVELEON, FABIOLA JAZMIN 1620.00 1 INGRESO FARMACIA Y BIOQUIMICA
CONTRERAS MARTINEZ, FERNANDO ROBERTO 1611.25 1 INGRESO INGENIERIA CIVIL
HUAMAN PALOMINO, IVAN ALEJANDRO 1601.25 1 INGRESO PSICOLOGIA
TIPISMANA ANTONIO, TATIANA DEL ROSARIO 1561.25 1 INGRESO ENFERMERIA
    • ¿Notas de las modalidades diferentes a ORDINARIOS?

En en Panel 2, el gráfico de la derecha nos muestra esta respuesta.

    • ¿Alguien no ingresó con una nota que le hubiera permitido ingresar a otra facultad?

En el Panel 2, el gráfico de la izquierda nos respondió. Específicamente, alguien no ingresó a pesar que obtuvo 1526.25.

    • ¿Cuántos ingresaron en relación a cuántos postularon?

En en Panel 1, vemos que de 6712 postulantes, 1325 ingresaron, es decir, el 20%. En otras palabras, uno de cada cinco postulantes ingresó.

“Interesante. Seguiré jugando con los cuadros dinámicos. Incluso buscaré a mi primo.”

Es la idea. Si das clic en los cuadros y gráficos, puedes llegar hasta el detalle y ver el nombre de los postulantes.

Nos vemos en la red.

Resultados del examen de Admisión 2015-I de la UNICA y tratamiento de datos: cometdocs, vba y zoho

La semana pasada fue el examen de Admisión 2015-I de la UNICA.

Los resultados se publicaron en la noche, y se pueden encontrar en PDF aquí sin mayor trámite.

He descargado el PDF, cuyo contenido página tras página tiene este forma:

Nostalgia...

Nostalgia…

El archivo consta de 303 páginas, las cuales albergan a los 6712 postulantes que se presentaron a este examen,junto a su calificación (de 0 a 2000), su condición (ingresó, no ingresó, ausente o anulado) y a la facultad y carrera profesional a la que se presentó.

Nostalgia

Este archivo es exactamente igual al que todos los años se pegaba afuera de todos los locales de la Universidad, y se leía una y otra vez desde su publicación hasta el día siguiente por todas las radios locales. El examen de Admisión era un acontecimiento en Ica, todos estábamos atentos a los resultados; si no éramos nosotros, siempre había un primo, amigo o vecino al cual felicitar o al cual colaborar con el corte de cabello de rigor. También había que estar atentos a quienes no había tenido suerte. “Ya será para la próxima, hay que seguir estudiando. El secreto está en no desanimarse”.

¿Qué podemos hacer con este archivo?

Mientras leía el archivo de pies a cabeza y recorría las facultades, carreras, ingresantes y notas, recordaba lo prácticas que son las herramientas de explotación de información, y vinieron a mi mente las tablas dinámicas de Excel y páginas de consulta tipo ponteencarrera.pe ya comentada en un post anterior.

¿No sería ideal tener estas 303 páginas a disposición para obtener información de interés de ellas? Es decir, convertir este reporte de PDF en gráficos y reportes dinámicos de donde podemos obtener información de interés ¿cómo conseguirlo? Con esta idea comencé a buscar en Google a ver qué se podía hacer. Lo que sigue del Post no es el resultado del tratamiento profesional de la información, sino de la curiosidad. Por ello verán seguramente cosas que se podrían hacer mucho mejor. Igual, allá vamos:

Paso 1: Cambiar de formato

Claro, en PDF mucho no se puede hacer. Encontré que hay todo tipo de herramientas para convertir el PDF a todo tipo de formatos. Luego de algunas pruebas, opté por CometDocs. Con esta herramienta gratuita, online y muy sencilla de usar, ya tenía el archivo PDF transformado en un archivo xslx de Excel.

Transformación en proceso

Transformación en proceso

Minutos después, te llega al correo un link al archivo transformado:

Done!

Done!

Entonces, Paso 1 completado: El archivo ya está en formato Excel.

Paso 2: Limpieza de datos

Al abrir el archivo de Excel, vemos que aún hay mucho por hacer:

Excel1

Aún mucho por hacer

¿Qué hacemos ahora? Tenemos que limpiar los datos para dejarlo, desde esta especie de “formato reporte” a una especie de tabla de registros. Pensando en alternativas con poco conocimiento, se me ocurrió usar VBA (Así es amigo; si no lo sabías, tienes una poderosa herramienta metida en tu Excel de siempre).

Así, preparé cuatro funciones al vuelto:

BorrarLin() para borrar todas las líneas que no necesito del reporte.

ArreglaNombre() para colocar el nombre del estudiante en la celda adecuada.

ArreglaNota() para colocar los campos de nota en las celdas correctas.

ArreglaModalidad() para leer la modalidad de las cabeceras de las páginas y colocarlas como dato de columna.

ArreglaCarrera() igual que la anterior, pero para el caso de carreras.

Luego de ejecutar dichas Macros, y ya, aplicando formato de tabla, me quedó esto:

Excel2

Se ve mejor

Con esto cierro el Paso 2. Ya puedo explotar esta información el cualquier herramienta de explotación de datos.

Paso 3: Generación de informes

Suena bien el término “herramienta de explotación de datos”. En realidad, soy un lego en estos temas, así que lo que se me ocurrió fue usar lo que uso siempre en el trabajo: Tablas dinámicas de Excel.

Excel3

No se ve “pro” ¿no?

No me convencía. Tendría que hacer las tablas dinámicas a manos ¿y qué más? ¿copiar las pantallas y publicarlas? Pedí ayuda a mi amigo y colega Germán Cayo, a quien planteé dos consultas: ¿Cómo obtener una mejor visualización de los datos? y ¿Cómo publicar dicha visualización?

Germán me dio algunas alternativas, y me recordó que se pueden usar herramientas colaborativas como Office 365 para publicar la información. Con este nuevo feedback, volví a Google, y encontré esta herramienta que se ve muy útil: Zoho. Wikipedia nos da una idea rápida de lo que es Zoho y de las herramientas colaborativas que ofrece. Como la herramienta tiene una opción de uso sin costo, me di de alta en el servicio.

A través de un asistente muy sencillo, Zoho tiene tres pasos: Crear una Base de Datos, Crear una tabla (o muchas de ellas) a partir de datos de texto, excel, integración con Drive, acceso a Base de Datos, etc. Aparece un asistente tipo la importación de archivos de texto a Excel y en pocos pasos ya tenermos la tabla creada. Al terminar de crear la tabla, nos ofrece cruzar la información y generar los reportes por uno.

Saca tu cuenta de Zoho. Se ve muy bueno.

Saca tu cuenta de Zoho. Se ve muy bueno.

Una vez se empieza a navegar por los reportes recién generados, se ve que se ha cruzado información de más o de menos, hay una variedad de cosas que podemos modificar y afinar: cambiar variables, añadir filtros, reordenar resultados, cambiar modo de cálculo, y un largo etcétera. La herramienta se ve muy útil.

¿Cómo cerrar el Paso 3 si estoy contando cosas que no se ven? Bueno, los reportes se pueden “Publicar”. La restricción de mi licencia gratuita, implica que quienes visiten estos reportes dinámicos, también se den de alta en Zoho. Lo recomiendo.

Entonces, he publicado tres paneles:

Postulante Análisis

panel2

Captura. Sigue el link de arriba.

Puntaje Análisis

panel1

Captura. Sigue el link de arriba.

Puntaje frente a Código

panel3

Captura. Sigue el link de arriba.

Con esto cierro el Paso 3.

Creo que no va a comentar los resultados del examen...

Creo que no va a comentar los resultados del examen…

¡Tranquilo! En el próximo post comentará sobre los resultados del examen, luego de haber ya tratado la información y a la vista de los cuadros y gráficos generados.

Nos vemos en la red.

SPAM y más SPAM: El phishing sigue vivo

¿Has notado que sigue habiendo “fraude” por Internet? Hay noticias de personas que diariamente denuncian que han sido víctimas de estafas y fraudes, y que como consecuencia de ello, sus cuentas bancarias han sido afectadas. Los bancos y afines cada vez intentan mejorar sus sistemas de seguridad, cada vez hay más antivirus, y cada vez hay más software para proteger la información personal. También se mejoran cada vez los procesos de prevención y de atención de estos temas. ¿Entonces? ¿cuál será el problema?

¿Cuál será?

¿Cuál será?

El factor humano

Hay un punto que no pocas veces se descuida: el factor humano. El investigador de la IEEE Ignacio Castillo nos decía a un auditorio lleno de informáticos que a estas alturas somos analfabetos en ciberseguridad. Su exposición sobre este tema nos demostró que está en lo cierto. ¿Cómo entonces estarán nuestros usuarios? ¿cuál es su conocimientos y conciencia sobre las amenazas y riesgos de seguridad cuando navega por Internet?

Tratemos de cubrir un tema a la vez ¿qué tan consciente está el grueso de usuarios de Internet sobre el Phishing?

¿Phishing?

Si ya sabes qué es Phising, felicidades. Si lo oíste, pero no sabes qué es, igual, sabes que no hay que darle clic a todo lo que te manden al correo electrónico, vamos bien. Si es la primera vez que oyes el término, y encima, das clic en cada correo que te llega al Hotmail, sobre todo si es de algún banco o sobre alguna rifa de la que nunca habías oído antes, te tenemos noticias.

Imagina un río donde nadan muchos peces. Hay de todo: Peces muy perspicaces que diferencian un azuelo de comida real, otros que no tanto, y otros que no tienen idea de la diferencia. Tratar de atacar a un pez en particular puede ser muy complejo en términos logísticos y de conocimiento. En este caso, sería mejor dejar muchos anzuelos, y esperar. Si la espera es suficientemente larga y la suerte está en favor del pescador (fisher en inglés), entonces tiempo después, veremos que varios peces han picado.

Si trasladamos esto a algo más familiar. Si abrimos una guía telefónica y empezamos a marcar uno a uno cada teléfono y decimos “Hola, soy yo, ¿puedes abrirme la puerta?” Mucha gente nos colgará el teléfono, pero a la larga alguien caerá en la trampa y abrirá la puerta. El “fisher” ahora pescó otro tipo de pez.

Vamos ahora al último ejemplo: Si preparo un correo lo suficientemente “bonito” para convencerte de que soy alguien más (tu banco, por ejemplo), y en el correo te pido que me respondas con tu tarjeta, tu clave y un par de datos más, y entonces lo lanzo a una cantidad enorme de personas, entonces como “fisher” me sentaré a esperar el resultado de mi “fishing” (O “phishing” comúnmente).

Como ves, no hay grandes métodos criptográficos ni alta tecnología. Si bien es cierto, que estas técnicas pueden añadir el enviarte un adjunto y convencerte de que lo abras, y con esto, instalar en tu computadora un virus, o también, enviarte a alguna página especial que secuestre tu navegador en adelante, etcétera; en general, el método es engañar a la víctima para que la víctima misma entregue sus datos. Aquí más que ingeniería, informática o tecnología, hay lo que se llama ingeniería social.

¿Ingeniería social?

Ingeniería social, definido como el conjunto de técnicas a través de la manipulación psicológica de usuarios legítimos, para que divulguen información confidencial o realicen determinadas acciones orientadas a tal fin, se basa en el principio de “los usuarios son el eslabón débil”. ¿Han visto las películas donde los espías haciendo uso de su inteligencia logran que cualquier persona les brinde datos que no debían brindar? Esa es la ingeniería social en acción.

Por eso, en el Phishing en general, hay mucho de ingeniería social.

Por ejemplo: Correos supuesto del BCP

Habiendo comentado lo anterior, mira esta pintura: Un correo que me ha llegado esta mañana:

Así es, llegó a mi carpeta SPAM. Punto para gmail.

Así es, Gmail lo movió automáticamente a mi carpeta SPAM. Punto para gmail.

Este es un típico correo de Phising. Mira el Asunto del correo, el Remitente. Observa el texto del mensaje. Incluso la firma y el Disclaimer. Imagino a un usuario cualquiera entrando a su correo por la mañana, y empieza a leer este correo, entonces la historía transcurriría así:

Entrando a leer mi

Entrando a leer mi “hot” y a ver mi “face”

Este correo es para informarle que hemos detectado una reciente manipulacion de su cuenta a traves de nuestra banca de internet, por medio de diferentes direcciones de IP. Esto se debe a que la direccion IP de su ordenador es dinamica y varia constantemente, o debido a que otra persona ha manipulado su cuenta.

¡Qué mala redacción! ¡Pero qué importa! ¡Han manipulado mi cuenta!

¡Mi cuenta

¡Mi cuenta!

Por su seguridad hemos restringido el acceso a su cuenta, le solicitamos que para reactivar sus funciones realice el proceso de autentificacion, le pedimos seguir los siguientes pasos que le ayudaran a realizar dicho proceso de la manera mas sencilla, rapida y segura.

¡Qué proactivos! ¡Gracias!

>>REACTIVAR AQUI<<

¿Y esto? Después lo veo…

Recuerde que una vez emitido este correo usted tendra un plazo de 4 dias habiles para llevar dicho proceso de lo contrario su tarjeta sera suspendida temporalmente por no tener activado nuestras nuevas medidas de seguridad, teniendo que apersonarse a una de nuestras oficinas mas cercana para la activacion de su tarjeta y del nuevo proceso de seguridad.

¡Oh no! ¡Solo cuatro días hábiles! ¡Entonces correré a dar clic al link de arriba!

Gracias por utilizar nuestro servicio, juntos somos mas seguros.

Atentamente:
Banco de Credito

“Juntos somos más seguros” Snif Snif. ¡Gracias! ¡Me salvaste la vida!

¡Me salvaste la vida!

¡Me salvaste la vida!

Y luego vamos al dichoso link que seguro nos llevará a la web del BCP y entonces:

alertaviabcp2

#OhWait!

http: //www.superativafm.com.br/ bf9328e18226212abf4b80c5b869ca2d

WHAT!!! (Añadí un par de espacios adrede por ahí. No sigas la página, OJO)

¡Una página brasileña! Esperen ¿el BCP no es peruano…? y entonces… se hace la luz, entras en razón, y descubres el engaño. Evidentemente el BCP nunca tuvo nada que ver con este mensaje. El BCP como cualquier banco serio, nunca envía email con enlaces a sus usuarios. ¡Espera! ¡Eso es lo que siempre me dicen en sus correos! Doy otra mirada, y veo que son varios los correos que me enviaron:

alertaviabcp0

¡Casi...!

¡Casi…!

Lamentablemente esta historia no siempre tiene un final feliz.

Recomendaciones

  • Has caso a las recomendaciones de tu banco de confianza. Ninguno envía este tipo de correos.
  • No des clic a todo lo que te llegue. Tómate un tiempo y pasa el ratón sobre el link, y fíjate a dónde es que ese link te va a llevar. En el ejemplo, la página superativafm.com.br es una radio brasileña, desde la cual deben estar usando espacio web para perpetrar ataques.
  • Sigue esta regla: Ante la duda: No lo hagas. Igual puedes consultar a alguien más, o mejor aún, llamar a tu banco por teléfono para que te confirmen si ellos fueron quienes te enviaron el correo.
  • Mantén actualizado tu antivirus, usa exploradores modernos como Chrome o Firefox.
  • Usa correos que te brinden filtros de seguridad automáticos como gmail. En este ejemplo, el correo nunca llegó a mi bandeja. Tuve que entrar a la carpeta SPAM para verlo.
  • No reenvíes cadenas por correo. Mucha gente aún lo hace. Bueno, si es chiste está muy bueno, reenvía, pero antes borra todos los correos que allí existan. ¿ves que muchas veces hay centenares de correos en una cadena reenviada? Esta es una forma común de obtener tu correo.
  • Fíjate que los lugares donde estés brindando tus datos sean confiables: Mira la url, fíjate si usan https y si tienen un “candadito” delante de la url.
  • En general, piénsalo con calma antes de brindar tus datos personales en Internet.

Disclaimer: Yo no tengo nada contra las operaciones en Internet. Es más, lo que más uso es la Banca por Internet del banco del cual soy cliente, hago compras con Verified By Visa, compro en tiendas online, uso mucho la tienda de PlayStore, o de PlayStation, compro con PayPal, etc. Pienso que mejorar el conocimiento sobre los peligros y amenazas de seguridad hará que mejoremos el “eslabón más débil” del que hablábamos. La respuesta no es “no uses Internet”, si no es esta otra: “Infórmate más”.

Disclaimer 2: Ya me han dicho antes ¿por qué brindas enlaces a wikipedia? Bueno. Soy editor ahí. Es gratis, es colaborativa. Y tiene referencias interesantes. Recuerda que es una enciclopedia, fuente terciaria. Esa es su “chamba”. Por ejemplo para el artículo “Phishing“, 34 referencias y 5 enlaces externos. nada mal.

Nos vemos en la red

PonteEnCarrera.pe y las carreras de Informática – El informe al CIP

En un post anterior, veíamos la página PonteEnCarrera.pe y la información que proporciona sobre orientación vocacional, carreras y aspectos laborales. Ahora, nos concentraremos en una observación que hicimos: La cantidad de denominaciones de carreras universitarias relacionadas a la informática. Las carreras de informática La página indicada nos informa que ha tomado las denominaciones de las carreras y las ha clasificado en “familias” de acuerdo a un documento del INEI llamado “CLASIFICADOR DE CARRERAS EN EDUCACIÓN SUPERIOR Y TÉCNICO PRODUCTIVAS (Versión 1) INEI 2014” que se puede descargar desde aquí. Como se puede ver, es un documento técnico bastante extenso (390 páginas). Uno de los objetivos del documento es contar con un instrumento estandarizado y adaptado a la realidad nacional para producción estadística. Otro objetivo es establecer una clasificación estándar de las carreras universitarias y no universitarias. A partir de la la página 40 aparece el primero grupo de carreras relacionadas a la informática:

4 Ciencias Naturales, Exactas y de la Computación
 44 Informática
 441 Ciencias de la Computación
 441016 Ciencias de la Computación
 441026 Ciencias de la Información
 441036 Computación Científica
 441046 Computación e Informática
 441056 Informática
5 Ingeniería, Industria y Construcción
 51 Ingeniería de Sistemas y Telecomunicaciones
 511 Ingeniería de Sistemas y Cómputo
 511016 Ingeniería de Seguridad y Auditoría Informática
 511026 Ingeniería de Sistemas
 511036 Ingeniería de Sistemas de Información
 511046 Ingeniería de Sistemas de Información y Gestión
 511056 Ingeniería de Sistemas e Informática 1/
 511066 Ingeniería de Sistemas Empresariales
 511076 Ingeniería de Sistemas y Computación 2/
 511086 Ingeniería de Sistemas y Gestión de Tecnologías de la Información
 511096 Ingeniería de Sistemas y Seguridad Informática
 511106 Ingeniería de Sistemas y Telemática
 511116 Ingeniería de Sistemas y Tecnológicas
 511126 Ingeniería de Software
 511136 Ingeniería de Tecnologías de la Información y Sistemas
 511146 Ingeniería en Tecnologías y Sistemas de Información
 511156 Ingeniería Informática
 511166 Ingeniería Informática y Estadística 3/

1/ se incluye la carrera de Ingeniería Informática y de Sistemas 2/ se incluye la carrera de Ingeniería de Computación y Sistemas e Ingeniería de Sistemas y Cómputo 3/ se incluye la carrera de Ingeniería de Informática y Estadística

512 Ingeniería de Telecomunicaciones
 512026 Ingeniería de Tecnologías de Información y Comunicación
 512036 Ingeniería de Tecnologías de Información y Sistemas
 512076 Ingeniería en Teleinformática 4/

4/ se incluye la carrera de Ingeniería Teleinformática

52 Ingeniería Industrial y Producción
 521 Ingeniería Industrial
 521076 Ingeniería Industrial y Sistemas

Sobre este documento, volveremos en otro post. Espera, espera ¡estás mezclado computación, informática e ingeniería de sistemas! Pues claro. La computación y la informática son sinónimos. Ya es hora de presentar al informe presentado al CIP llamado: DENOMINACIONES Y PERFILES DE LAS CARRERAS EN INGENIERÍA DE SISTEMAS, COMPUTACIÓN E INFORMÁTICA. Informe de la comisión. 2006. Cuyo texto y anexos se puede encontrar aquí. Este post, finalmente, tiene como objetivo la lectura y difusión de este informe. El informe, luego de una amplia explicación al respecto, en la página 66 concluye:

Es decir, el día de hoy formalmente Computación e Informática son sinónimos en el idioma español.

Y sobre la Ingeniería de Sistemas, el informe en la página 95 concluye:

A partir de la información recopilada y proporcionada en este informe, se puede apreciar que el cuerpo de conocimiento y el campo de acción de los profesionales de la ingeniería de sistemas en nuestro país, no corresponde a lo que se conoce internacionalmente. La actual ingeniería de sistemas del país se ha desplazado a un campo que no es el propio y del que ahora se tiene mayor claridad sea por la Computing Curricula o IFIP o ANECA.

¿Tantas denominaciones? Sí pues. Ciertas universidades han ido creando sus denominaciones bajo criterios cuando menos, poco académicos. ¿Qué diferencia cada carrera? ¿Cómo compararlas? ¿Qué estudiar? Si regresamos a la página PonteEnCarrera.pe observamos estas alternativas:

Ingeniería de Tecnologías de Información y Sistemas 
El profesional en Ingeniería de Tecnologías de Información y Sistemas tiene una amplia visión de los procesos que generan valor en una organización, en cualquier giro de negocios que este se desenvuelva, siendo capaz de incorporar tecnologías de información en la gestión empresarial a fin de automatizar procesos y optimizar el uso de los recursos. 
Ingeniería de Software 
Carrera de alta demanda a nivel global que permite al egresado dirigir el desarrollo de software, actividad sumamente sofisticada, basada en la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software.
Ingeniería de Sistemas e Informática
Es responsable de la planificación, diseño, desarrollo e implementación de Sistemas de información mecanizados, para satisfacer los diferentes niveles de requerimientos de información de los gerentes y personal operativo de las empresas. Aplica la tecnología de punta en el diseño y rendimiento de procesos de producción administrativos, contables y económicos financieros de una empresa. Sus conocimientos exceden el ámbito tradicional de Hardware y Software y los niveles de información. 
Dentro de las carreras de institutos:
Computación e Informática
Planifica, analiza, diseña, programa e implementa sistemas de información con el fin de incrementarla productividad en la gestión de una organización, a partir del análisis de sus requerimientos y teniendo en cuenta los criterios de calidad y seguridad establecidos. Estudia el funcionamiento delos equipos informáticos, a fin de formular el diseño del hardware que pueda realizar las operaciones de la empresa, y su mantenimiento respectivo. 

Cada texto es un extracto del PDF que acompaña cada carrera. Pero ¿queda claro de qué trata cada una? ¿luego de leer esto ya sabemos qué hace cada profesional, y sobre todo ¿qué no hace? y ¿en qué se diferencia de otra denominación? Además, este tema de la cantidad de denominaciones genera problemas cuando se pretende realizar estudios en el extranjero. ¿Cómo traduzco al inglés el título que tengo? es el pequeño ejercício que se recomienda al respecto. ¿Cuántas y cuáles son realmente (es decir, internacionalmente)? Hay dos tendencias a nivel global: Una tendencia es la relacionada a la Computing Curricula, la que establecer que el campo se llama Computing (computación) y se establecen cinco carreras bien diferenciadas:

  • Computer Engineering (Ingeniería de computadoras)
  • Computer Science (Ciencias de la computación)
  • Information Systems (Sistemas de información)
  • Information Technology (Tecnologías de la información)
  • Software Engineering (Ingeniería de software)

La segunda tendencia es la española. Indica que el campo se llama informática, y la carrera es:

  • Ingeniería informática

Dada la amplitud, hay tres campos de especialización en el pregrado:

  • de Desarrollo de Software
  • de Gestión y Explotación de las Tecnologías de Información
  • de Sistemas

¿Confusión para los nuevos postulantes? Por supuesto. No solo se genera confusión entre los postulantes sino en la industria y en la población. Hay mucho trabajo por hacer al respecto.

¿Qué hacemos ahora?

¿Y ahora, qué hacemos?

¿Y ahora, qué hacemos? Vemos lo que dicen las recomendaciones del informe. Sobre las denominaciones de las carreras, recomienda adecuarse a algunas de las dos tendencias internacionales. Universidades como la UCSP se adhieren a la primera tendencia. Y universidades como la PUCP han aproximado sus propuestas más a la segunda. Este artículo expone la propuesta de la PUCP. Además, el informe recomienda que la denominación de Ingeniería de Sistemas se mantenga, pero que debe recobrar su sentido original e internacional. Sobre los perfiles profesionales, lo mismo, se recomienda que la Ingeniería de Sistemas recobre el sentido dado por la INCOSE, y que las carreras de informática partan de la propuesta de la Computing Curricula o IFIP, que en resumen lo expresan así:

Computing Curricula Ciencias de la Computación: preocupado por la ampliación del conocimiento en el campo de la computación, investiga, desarrolla y aplica en algoritmos para problemas complejos, teoría de lenguajes de programación y compiladores, gráficos por computadora, inteligencia artificial, etc. Ingeniero de Software: preocupado por la mejora del proceso software y por el uso adecuado de técnicas, herramientas y métodos para desarrollar productos software de mediana y gran complejidad, alcanzando niveles de calidad y productividad como los exigidos a nivel internacional. Sistemas de Información: preocupado por el análisis, diseño, selección e implantación de diversas soluciones informáticas que resuelvan los problemas o mejoren los procesos de cualquier organización, con el fin de alcanzar las metas operativas y estratégicas de organización. Tecnologías de Información: preocupado por la selección, instalación, operación y seguridad de la infraestructura tecnológica que requieren las organizaciones tanto a nivel de hardware (equipos), de software (de base) y de las comunicaciones. Ingeniería de Computadoras: preocupado por el diseño de componentes hardware, software y firmware que son las bases de los equipos empleados como parte de la infraestructura tecnológica de las organizaciones. IFIP y otros Ingeniería Informática, preocupado en producir soluciones y mejoras que las organizaciones necesiten aplicando las tecnologías de la información y comunicación.

Mucho por ordenar, mucho por difundir y mucho por hacer. Felizmente, la buena noticia es que se está avanzando a nivel nacional. Nos vemos en la red.