Nuevas acreditaciones de Másters Universitarios de la UOC

Hoy tenemos buenas noticias para los estudiantes de la UOC, especialmente para aquellos que están estudiando alguno de los Másters oficiales de nuestros Estudios. En una entrada previa os explicamos qué significa que un título de Grado o Máster sea “oficial”: una agencia de calidad universitaria (como ANECA a nivel estatal o AQU a nivel autonómico) ha evaluado el programa y certifica su calidad. Esta evaluación se realiza principalmente en dos momentos a lo largo de la vida del programa: Verificación: En el momento de la definición del título, la Universidad presenta una memoria describiendo en detalle la propuesta de programa: los objetivos y competencias, las salidas profesionales, el plan de estudios, la metodología docente y de evaluación, el equipo docente y los recursos disponibles. Evaluación y acreditación: Periódicamente, un comité externo evalúa los resultados obtenidos y comprueba si el programa se desarrolla según lo previsto en la memoria de verificación. Por ejemplo se evalúa si el perfil de los egresados es el demandado por las empresas, si la metodología es adecuada o si los estudiantes están satisfechos con el programa. En caso de que las evaluaciones periódicas sean favorables, se concede la acreditación a dicho programa. Que un Grado o un Máster consiga la acreditación es una noticia excelente para los estudiantes, ya que demuestra que es un programa de calidad, que se está desarrollando de forma adecuada y que sus contenidos son útiles para el mundo profesional. A finales de 2015 pasaron por el proceso de evaluación externa y acreditación diversas titulaciones de Grado y Máster de nuestros Estudios: el Grado de Ingeniería Informática, el Grado de Tecnologías...

Computación cuántica (I): el fin de los ordenadores clásicos

Los ordenadores actuales son descendientes de la Máquina de Turing. Este modelo matemático fue creado por Alan Turing para dar respuesta al Entscheidungsproblem (en alemán, “problema de decisión”), una de las cuestiones centrales de la informática teórica. Las Máquinas de Turing utilizan como memoria una cinta con un número infinito de posiciones y un cursor que puede leer una posición de la cinta, modificar su contenido o desplazarse una posición a la izquierda o a la derecha. El “código” de la máquina de Turing es el conjunto de reglas predefinidas que indican qué acciones debe realizar el cursor según el contenido de la cinta, mientras que los “datos de entrada” sería el contenido inicial de la cinta. También es posible definir una Máquina de Turing Universal que recibe como entrada el código de una máquina de Turing y unos datos de entrada y simula la ejecución de dicha máquina de Turing. Esta Máquina de Turing Universal es uno de los antecesores del concepto de “programa almacenado”: pensar en el programa como un dato más que puede leerse (para ejecutarse) o incluso modificarse. Puede parecer un concepto evidente, pero hasta ese momento la mayoría de máquinas tenían un propósito específico (un problema, una herramienta). Esta idea de máquina “programable y de propósito general” se había utilizado en el campo de las máquinas de tejer (para coser patrones complejos definidos mediante una tarjeta perforada), pero aquí se aplicaba a la realización de cálculos. Aunque excelente como modelo teórico, la Máquina de Turing tiene una arquitectura poco útil desde un punto de vista práctico y existen formas de diseñar una máquina más...

El Congreso Español de Informática (CEDI)

Este septiembre de 2016 se ha celebrado en Salamanca el Congreso Español de Informática (CEDI), uno de los eventos científicos más importantes en el campo de la ingeniería informática en España. Se trata de un multi-congreso organizado por la Sociedad Científica de Informática de España (SCIE) que agrupa a los principales congresos, jornadas y simposios del ámbito informático que se celebran en España. CEDI pretende ser un punto de encuentro para toda la comunidad que desarrolla su actividad en el ámbito de la ingeniería informática, ya sea en investigación, desarrollo, innovación o enseñanza universitaria. Es fácil de imaginar que reunir en un mismo lugar a empresas e investigadores con tanta diversidad de ámbitos de especialidad puede dar lugar a muchas sinergias y oportunidades de colaboración. Muchos artículos, proyectos e iniciativas científicas relevantes han “nacido” o “crecido” durante las CEDI… Los antecedentes del CEDI se remontan a los Congresos Nacionales de Informática y Automática (1970-1985), organizados por la Asociación Española de Informática y Automática (AEIA). En su formato actual, CEDI se inicia en 2005 (Granada), y desde entonces se ha celebrado en 2007 (Zaragoza), 2010 (Valencia) y 2014 (Madrid). Algunos congresos de CEDI tienen una trayectoria muy prolongada, con más de 15 ediciones, y son un referente de la comunidad científica de su ámbito. Podemos citar como ejemplos los congresos sobre Inteligencia Artificial (CAEPIA), Computación Paralela (JP), Informática Gráfica (CEIG), Ingeniería del Software y Bases de Datos (JISBD), Informática Educativa (SIIE), Programación y Lenguajes (PROLE) e Interacción Persona-Ordenador (INTERACCIÓN). También hay otros eventos de temática más específica o bien con menor trayectoria, sobre áreas como lógica difusa (LODISCO), ingeniería de servicios (JCIS), minería de datos (TAMIDA) o sistemas de tiempo real (STR). Además...

Becas para los Másters en Ingeniería Informática y de Telecomunicación

Hace un tiempo escribí en este blog una recopilación de becas para estudiar Ingeniería Informática. Este listado no era tan largo como hubiera querido, ya que la oferta de becas no es muy amplia. Así pues, me alegra poder añadir una nueva incorporación a ese listado. La Caixa d’Enginyers y la UOC han firmado un convenio de colaboración para ofrecer un programa de becas a estudiantes del ámbito tecnológico. Concretamente, las becas se dirigen a estudiantes del Máster Universitario en Ingeniería Informática de la UOC y el Máster Universitario en Ingeniería de Telecomunicación de la UOC-URL. Se trata de 2 becas por un importe de 3.000€ para cubrir los gastos de matrícula. Ambos Másters oficiales ofrecen un enfoque profesionalizador que aporta conocimientos avanzados en su ámbito de especialidad, cubriendo las tecnologías y métodos más relevante para el ejercicio de la profesión. El plazo de inscripción a estas becas está abierto entre el 2 de junio y el 20 de julio. Los solicitantes deben cumplir una serie de requisitos: cumplir los requisitos de acceso al Máster que desean cursar; tener una nota media superior a 6 en su expediente académico; y comprometerse a finalizar sus estudios en un plazo de 3 semestres. Para valorar las solicitudes recibidas, se tendrán en cuenta criterios como el expediente académico, el currículum vitae y los argumentos expuestos en la carta de motivación. La información completa sobre el procedimiento, documentación, criterios de valoración y calendario está disponible en la web del programa de becas. Esta iniciativa forma parte de la estrategia de la Fundació Caixa d’Enginyers y la UOC para fomentar el desarrollo de la sociedad del conocimiento y la formación a...

Optimización de código: un código más eficiente

En los primeros tiempos de la informática, programar exigía utilizar lenguajes muy próximos a la plataforma de ejecución. El código máquina o el lenguaje ensamblador permiten un control muy fino del proceso de ejecución: cómo se asignan los registros del procesador, cómo se almacenan los datos y se accede a la memoria, … Así es posible exprimir la máxima eficiencia de una plataforma, aunque el precio a pagar es la falta de portabilidad y el mayor coste de desarrollo y mantenimiento del código. Afortunadamente, hoy en día podemos utilizar lenguajes de programación de alto nivel, que abstraen estos detalles de la plataforma y nos permiten ser más productivos resolviendo problemas más complejos en menos tiempo. Sin embargo, con esta transición hemos perdido algo de eficiencia… ¿o no? Quizás tampoco tanta, porque los compiladores incorporan técnicas que permiten mejorar el rendimiento del código generado. La optimización de código es el conjunto de fases de un compilador que transforman un fragmento de código en otro fragmento con un comportamiento equivalente y que se ejecuta de forma más eficiente, es decir, usando menos recursos de cálculo como memoria o tiempo de ejecución. Es importante destacar que: La condición de tener un “comportamiento equivalente” es bastante onerosa, ya que incluye también situaciones de error donde el comportamiento debe ser el mismo. Pongamos como ejemplo una instrucción como “x = y / y“. La tentación es substituir esta expresión por “x =1“, pero es necesario garantizar que la variable y no puede ser igual a 0, porque entonces el código podría tener un comportamiento diferente según el lenguaje (p.ej. división por cero). También es fundamental garantizar que el código no será menos eficiente...