martes, 26 de noviembre de 2013

Novatadas: los rituales degradantes de las universidades presenciales

Fuente: Wikipedia (foto de una novatada de bajo grado)

Erróneamente se ha confundido la novatada con el proceso de iniciación de las sociedades arcaicas y tribus indígenas (rito de paso, léase "El arquetipo de iniciación" - Carl Gustav Jung: "El hombre y sus símbolos", 1964). Muy al contrario de este concepto, las novatadas en las universidades presenciales van mucho más allá de sus bases antropológicas. Si bien es cierto que actualmente no se llega al grado de intensidad alcanzado hace unas décadas, las novatadas no dejan de ser costumbres o rituales de mal gusto. 

La novatada encierra en sí una idea nociva que en general se le asocia con prácticas que implican humillación, acoso, relaciones de dominio-sumisión, abuso, ridiculizaciones, faltas de consideración y de respeto, y actividades peligrosas. Suele ser una práctica habitual realizada a alumnos profanos en los campus universitarios y en colegios mayores en los primeros meses del curso académico (típicamente octubre y noviembre) y está asociada a bromas que los mal llamados "veteranos" obligan a padecer a sus víctimas. La mayoría de las universidades occidentales y adaptadas a la modernidad han adquirido estos hábitos entre sus alumnos de forma alarmante. Si bien es sabido que en los últimos dos años están proliferando las asociaciones y los movimientos de sensibilización social hacia este acuciante problema que puede derivar en muchos casos en marginación y en terapia psíquica y emocional.

En este contexto existen asociaciones como la gallega “No Más Novatadas” que se responsabiliza de sensibilizar a la sociedad en este crucial tema y de recoger denuncias de víctimas en colegios mayores y universidades de todo el país.


También existe una gran repercusión en la prensa a causa de algunos precedentes ya sentados:


«Mano blanda con las novatadas. Los veteranos actúan con total impunidad: una sola sanción en tres años.» El Mundo:

http://apliweb.uned.es/comunicacion/prensa/ficheros_ver.asp?ID=5061010

Finalmente, recordamos que en la UNED nunca han existido novatadas, por lo que es de agradecer la iniciativa histórica de crear las jornadas de acogida y la concienciación al buen clima humano y social en los centros asociados.



sábado, 23 de noviembre de 2013

Guías de estilo de programación

Tim Lucas (Creative Commons)


«Ni la destreza ni la rapidez otorgan a una obra influencia duradera ni perfección en su belleza».


Plutarco (d.C. 46-50 - d.C.120), historiador y ensayista griego.

Millones de personas en el mundo escriben decenas de líneas de código al día. Programar es un arte que requiere una serie de aptitudes humanas que no solo incluyen la destreza en la resolución de problemas de razonamiento estricto (aptitud analítica). Así, un buen programador debe tener también capacidad de concentración, paciencia, interés por las últimas investigaciones (capacidad de cambio), memoria para recordar variables, funciones de ayuda y zonas de código, además debe de ser ordenado y limpio con el programa que está escribiendo. La imaginación juega también un papel importante en los talentos del programador, pues la capacidad de crear software original y atractivo que resuelva problemas a la sociedad es el punto de partida para el éxito como desarrollador e investigador. Los grandes programadores de la historia no se han destacado nunca por escribir programas "a la carrera", sino por su capacidad de innovación y creatividad en un producto complejo que les ha llevado años de trabajo. Por este motivo, el estudiante de la UNED, con su capacidades de autodisciplina, constancia y esfuerzo de superación es la persona ideal para embarcarse en proyectos software innovadores de alta complejidad que requieran dedicación a largo plazo.

Uno de los talones de Aquiles de los programadores actuales es la legibilidad y el orden del código. Escribir un buen programa requiere un estilo que implica muchos factores a tener en cuenta. De estos factores depende la calidad y el mantenimiento del proyecto. Es importante, en consecuencia, tener presente cómo usar las excepciones, el principio de la Ley de Demeter, los espacios en blanco, la tabulación, la capitalización de los identificadores, la estructuración de los paquetes, etc. De este modo, un proyecto se podrá refactorizar o leer por terceras personas siempre y cuando cumpla con estos preceptos de legibilidad. Esto implicará una mejor calidad final del producto ya que mejorará su seguridad integral.

Finalmente, si está interesado en mejorar la escritura de su código fuente, le proponemos la consulta de los siguientes estándares sobre cada lenguaje de programación:

martes, 12 de noviembre de 2013

Diseño de un motor de base de datos E/R

Fuente: Wikipedia

Desde un punto de vista simple y abstracto, un motor de base de datos permite al usuario realizar las operaciones habituales de creación, lectura, borrado y actualización de datos.  El SGBD (Sistema Gestor de Base de Datos) proporciona una API para el acceso a los servicios proporcionados por el motor de base de datos cuyos "drivers" se encuentran  en el exterior del núcleo del sistema operativo.

La historia de los motores de bases de datos comienza en los años 60, cuando un grupo de ingenieros encargados de diseñar el lenguaje COBOL desarrolla el sistema basado en árboles binarios CODASYL. Posteriormente, en los años 70, Edgar Codd no estaba satisfecho con el sistema CODASYL y comienza a elaborar las bases de lo que sería el modelo relacional (E/R) y las reglas de normalización (véase Forma normal de Boyce-Codd). Por entonces empieza a cristalizarse la idea del lenguaje SQL cuya sintaxis estaba inspirada en el álgebra relacional de tuplas y que permitía cualquier operación sobre bases de datos . Ya a finales de los 70 surgen iniciativas de IBM como DB2, Informix, Sybase (basados ambos en INGRES), y el sistema de alto rendimiento PostgreSQL. A partir de los años 80, con la invención de la programación orientada a objetos, los motores de bases de datos entran en un ciclo de mejora en aspectos de diseño y rendimiento. Actualmente las bases de datos soportan cualquier tipo de objeto (gráfico, sonido, vídeo, textos, XML, etc.), asimismo su incorporación a la Web 2.0 y 3.0 está completamente asentada. Un motor de base de datos utiliza estructuras de datos ampliamente conocidas en la carrera como son las tablas de dispersión (hashing), árboles B+ y montículos (heaps). Uno de los SGBD más conocidos en los entornos universitarios es MySQL (programado en C++ y GPL) con su sistema de almacenamiento GPL-InnoDB (http://en.wikipedia.org/wiki/InnoDB).

 
El diseño de un motor de bases de datos en los estudios de Ingeniería Informática e Ingeniería TIC es una materia de crucial importancia como lo es el diseño de sistemas operativos o el diseño de un lenguaje de programación. Por este motivo, proponemos la lectura o investigación de un modelo sencillo de base de datos relacional denominado SQLite, con la intención de conocer los entresijos de un motor escrito en C y con interfaz a C++. 


También proponemos la lectura de varios libros relacionados con el diseño de bases de datos y que se pueden consultar directamente a través de Google Books:



miércoles, 6 de noviembre de 2013

Ingeniería Informática vs. Ingeniería TIC: «el mismo perro con diferente collar»

Basada en un trabajo de Abilio Estefanía Castellanos (Creative Commons)

Actualmente la oferta de titulaciones a nivel de máster y doctorado de la Escuela de Ingeniería Informática por la UNED es bastante completa y diversificada. Es de elogiar el esfuerzo de los organizadores por crear un amplio rango de perfiles de máster basados en las disciplinas impartidas por los departamentos y  los sectores más demandados por la sociedad.  Sin embargo, a partir de la reforma educativa impuesta por Bolonia (EEES) para la conversión de las licenciaturas y las diplomaturas a un Grado de cuatro cursos se ha conseguido dar un giro de 180º en una dirección incorrecta.  

Bien es sabido por todos la exigua diferencia entre las titulaciones en Ingeniería TIC e Ingeniería Informática de la Escuela de Ingeniería Informática por la UNED. Quizá alguien pueda caer en el error de pensar que ambas titulaciones tienen un corpus curricular totalmente diferente. Nada más lejos de la realidad, los nuevos planes de estudio que se nos presentan desde la dirección de la Escuela son como reza la locución española: «el mismo perro pero con diferente collar».  Ciertamente estos perfiles de especialización son simplemente una escusa para confundir al nuevo alumnado. Se supone, en principio, que la diferencia entre las dos titulaciones estriba en la orientación hacia el mundo de la empresa o hacia el mundo de la investigación. Pero lo verdaderamente conseguido son dos titulaciones de Ingeniería Informática deficitarias, casi idénticas, en donde en una no se estudia "Programación Paralela", o los entresijos de la "Arquitectura TCP/IP" se imparten de manera optativa en otra. Asimismo, en Ingeniería TIC no se estudian "Compiladores" pero se estudia a fondo los lenguajes de programación e "Ingeniería de Software". Además existe demasiada carga lectiva en "Estructura de Computadores" y poca en lo verdaderamente esencial en un Informático: la destreza en programación, diseño y algorítmica.

Este desorden en las titulaciones únicamente puede derivar en la formación de un Ingeniero Informático incompleto y falto de conocimientos de Matemáticas, Ingeniería de Software, Programación Paralela y Redes.

Por este motivo esperamos, desde esta modesta entrada en el blog de la Escuela, que el equipo organizativo tome medidas de cara a la renovación de las titulaciones y fomente de manera más prudente la creación de otro tipo de perfiles más universitarios como podrían ser:
  • Ingeniería Informática y Matemáticas.
  • Ingeniería Informática y Física.
  • Ingeniería Informática: especialización en Arquitectura de Computadores.
  • Ingeniería Informática: especialización en Ingeniería de Software.
  • Ingeniería Informática: especialización en Inteligencia Artificial.
  • Ingeniería Informática: especialización en Lenguajes y Sistemas.
Para los dos primeras titulaciones se puede aprovechar la sinergia y la calidad de las facultades de ciencias e ingenierías para la creación de titulaciones mixtas.