16 resultados para LENGUAJES DE PROGRAMACIÓN

em Universidade Complutense de Madrid


Relevância:

100.00% 100.00%

Publicador:

Resumo:

En estos últimos años la curiosidad por el sector informático, y más específicamente en la programación, ha producido una gran demanda por los interesados en estas áreas. Esto ha provocado que el número de tutoriales y entrenadores haya aumentado de una forma considerable. Debido a esta gran demanda, ha surgido la idea de desarrollar una herramienta con la que poder gestionar tutoriales de programación con una aplicación de escritorio. La finalidad de este proyecto es poder crear tutoriales interactivos que permitan a los alumnos adquirir conocimientos de una forma sencilla y atractiva. Esto se consigue mediante la posibilidad de enriquecer el formato del texto al mostrar las explicaciones o los enunciados de las preguntas y añadir imágenes. Para evitar que sea un tutorial de sólo lectura, que resulta poco atractivo y no permite al estudiante evaluar los conocimientos adquiridos, con esta herramienta se podrán intercalar preguntas entre la teoría para enganchar más al alumno, y conseguir que el aprendizaje sea muy incremental, para no tener una cantidad abrumadora de información en poco tiempo. Con estos tutoriales el alumno podrá comprobar los conocimientos adquiridos gracias al seguimiento continuo. El estudiante, según lea la teoría y realice los ejercicios con grado de dificultad creciente, tendrá más capacidad para resolver ejercicios nuevos y prepararse para continuar el tutorial. El resultado de este proyecto ha sido una herramienta multiplataforma y con licencia abierta MIT, que puede ser descargada de https://github.com/Kherdu/TFG.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

En esta memoria hacemos contribuciones dentro del campo de los lenguajes de bases de datos. Nos hemos propuesto tres objetivos fundamentales: 1. Mejorar la expresividad de los lenguajes de bases de datos actuales. 2. Desarrollar semánticas formales para nuestras propuestas de lenguajes de bases de datos extendidos. 3. Llevar a cabo la implementación de las semánticas anteriores en sistemas de bases de datos prácticos. Hemos conseguido estos tres objetivos en distintas áreas dentro de las bases de datos. Por un lado, en el campo de las bases de datos deductivas, proponemos HH:(C). Este lenguaje extiende las capacidades de los lenguajes de bases de datos deductivos con restricciones dado que permite consultas hipotéticas y cuanti cación universal. Por otro lado, utilizamos el estudio dentro de las bases de datos deductivas y lo aplicamos a las bases de datos relacionales. En concreto proponemos HR-SQL que incorpora consultas hipotéticas y de niciones recursivas no lineales y mutuamente recursivas. La idea tras esta propuesta es superar algunas limitaciones expresivas del lenguaje estándar de de nición de bases de datos SQL. A continuación introducimos ambas aproximaciones. Las fórmulas de Harrop hereditarias con restricciones, HH(C), se han usado como base para lenguajes de programación lógica con restricciones. Al igual que la programación lógica da soporte a lenguajes de bases de datos deductivas como Datalog (con restricciones), este marco se usa como base para un sistema de bases de datos deductivas que mejora la expresividad de los sistemas aparecidos hasta el momento. En el segundo capítulo de esta memoria se muestran los resultados teóricos que fundamentan el lenguaje HH:(C) y una implementación concreta de este esquema que demuestra la viabilidad y expresividad del esquema. Las principales aportaciones con respecto a Datalog son la incorporación de la implicación intuicionista, que permite formular hipótesis, y el uso de cuanti cadores incluso en el lenguaje de restricciones. El sistema está diseñado de forma que soporta diferentes sistemas de restricciones. La implementación incluye varios dominios concretos y también funciones de agregación y restricciones de integridad que son habituales en otros lenguajes de bases de datos relacionales. El signi cado del lenguaje se de ne mediante una semántica de pruebas y el mecanismo operacional se de ne mediante una sem ánica de punto jo que es correcta y completa con respecto a la primera. Para el cómputo de las consultas hipotéticas y de las funciones de agregación se hace uso de una noción de estrati cación más compleja que la que usa Datalog. La semántica de punto jo desarrollada constituye un marco apropiado que lleva a la implementación de un sistema concreto...

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Esta tesis defiende un enfoque metalingüístico al desarrollo de aplicaciones de procesamiento XML, según el cual estas aplicaciones se conciben como clases particulares de procesadores de lenguaje, se describen utilizando formalismos de especificación de alto nivel orientados a la implementación de lenguajes informáticos, y se generan automáticamente a partir de dichas especificaciones. La tesis comienza realizando un análisis unificado de las propuestas más relevantes al desarrollo dirigido por lenguajes de aplicaciones de procesamiento XML realizadas en el Grupo de Investigación en Ingeniería de Lenguajes Software y Aplicaciones (ILSA) de la Universidad Complutense de Madrid (UCM), tanto aquellas basadas en esquemas de traducción, como aquellas basadas en gramáticas de atributos. Como resultado de este análisis, se identifican las dos principales limitaciones de estas propuestas: (i) no abordar la relación existente entre gramáticas específicas para el procesamiento y gramáticas documentales, y (ii) no abordar adecuadamente la especificación modular de tareas complejas. Una vez identificadas estas limitaciones, la tesis se centra en paliar las mismas...

Relevância:

60.00% 60.00%

Publicador:

Resumo:

En este proyecto se ha desarrollado una aplicación Web cuya finalidad es ofrecer al usuario datos provenientes del análisis de texto de las noticias que se encuentran en periódicos online. La aplicación permite al usuario realizar búsquedas personalizadas sobre temáticas específicas y configurar algunos tipos de análisis sobre la información recuperada. Entre los análisis que son llevados a cabo destaca el análisis del sentimiento. Para ello se ofrece la posibilidad de que el usuario utilice sus propios diccionarios de pares palabra-valor, utilizados para realizar este tipo de análisis. Para la codificación de la herramienta, se ha utilizado el lenguaje de programación Python y la framework web Django. El almacenamiento de la información de la aplicación se ha realizado sobre una base de datos NoSQL de tipo MongoDB.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Nuestro trabajo se ha centrado principalmente en la mejora y extensión de una aplicación web llamada VizHaskell, la cual fue creada en otro proyecto anterior. La finalidad de esta herramienta es ser utilizada en el ámbito educativo para el aprendizaje del lenguaje Haskell y, por ello, incluye diferentes mecanismos para facilitar la programación de este lenguaje, a diferencia de otras que están destinados a un uso más serio o profesional. Entre sus características están la de incluir un mecanismo de gestión de usuarios en el que cada usuario dispondrá de su propio espacio de trabajo, permitir la creación de proyectos con la que los usuarios pueden tener de una manera organizada los módulos que vayan realizando, incluso proporcionar una visión original a la hora de obtener los resultados de su trabajo y poder entenderlos mejor, mediante el uso de representaciones gráficas como tablas o escenas 3D totalmente manejables y manipulables. Todo esto es posible sin la necesidad de instalar nada más allá de un navegador compatible con HTML5. Entre las mejoras añadidas están la inclusión de dos nuevas representaciones (tablas asociativas y escenas tridimensionales), la capacidad de anidar complejas estructuras de datos y la capacidad de poder manipular las estructuras de una forma sencilla mediante el uso de conocidos elementos como son los menús contextuales, además de otras mejoras que quizás no son tan llamativas, pero no por ello menos importantes, como la incorporación de funcionalidades relacionadas con los backreferences. Todo esto podemos verlo en detalle en la memoria del proyecto.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

En los últimos años hemos sido testigos de la expansión del paradigma big data a una velocidad vertiginosa. Los cambios en este campo, nos permiten ampliar las áreas a tratar; lo que a su vez implica una mayor complejidad de los sistemas software asociados a estas tareas, como sucede en sistemas de monitorización o en el Internet de las Cosas (Internet of Things). Asimismo, la necesidad de implementar programas cada vez robustos y eficientes, es decir, que permitan el cómputo de datos a mayor velocidad y de los se obtengan información relevante, ahorrando costes y tiempo, ha propiciado la necesidad cada vez mayor de herramientas que permitan evaluar estos programas. En este contexto, el presente proyecto se centra en extender la herramienta sscheck. Sscheck permite la generación de casos de prueba basados en propiedades de programas escritos en Spark y Spark Streaming. Estos lenguajes forman parte de un mismo marco de código abierto para la computación distribuida en clúster. Dado que las pruebas basadas en propiedades generan datos aleatorios, es difícil reproducir los problemas encontrados en una cierta sesion; por ello, la extensión se centrará en cargar y guardar casos de test en disco mediante el muestreo de datos desde colecciones mayores.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

La Ciberseguridad es un campo que cada día está más presente en nuestra vida con el avance de la tecnología. Gobiernos, militares, corporaciones, instituciones financieras, hospitales y otros negocios recogen, procesan y almacenan una gran cantidad de información confidencial en sus ordenadores y transmiten estos datos a través de redes a otros ordenadores. Con el creciente volumen y la sofisticación de los Ciberataques, se requiere una atención continua para proteger los negocios sensibles y la información personal así como salvaguardar la seguridad nacional. En el futuro casi todo va a ser informático por lo que con el avance de la tecnología nuevas amenazas aparecen, más peligrosas y sofisticadas. El enfoque de nuestro proyecto es demostrar que con unos pocos conocimientos de redes, seguridad, computación en la nube y unas pocas líneas de código se puede implementar una potente herramienta de ataque que puede poner en peligro la integridad y confidencialidad de los usuarios e instituciones.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

La verificación formal de un programa es la demostración de que este funciona de acuerdo a una descripción del comportamiento esperado en toda posible ejecución. La especificación de lo deseado puede utilizar técnicas diversas y entrar en mayor o menor detalle, pero para ganarse el título de formal esta ha de ser matemáticamente rigurosa. El estudio y ejercicio manual de alguna de esas técnicas forma parte del currículo común a los estudios de grado de la Facultad de Informática y del itinerario de Ciencias de la Computación de la Facultad de Ciencias Matemáticas de la Universidad Complutense de Madrid, como es el caso de la verificación con pre- y postcondiciones o lógica de Hoare. En el presente trabajo se explora la automatización de estos métodos mediante el lenguaje y verificador Dafny, con el que se especifican y verifican algoritmos y estructuras de datos de diversa complejidad. Dafny es un lenguaje de programación diseñado para integrar la especificación y permitir la verificación automática de sus programas, con la ayuda del programador y de un demostrador de teoremas en la sombra. Dafny es un proyecto en desarrollo activo aunque suficientemente maduro, que genera programas ejecutables.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

El análisis de datos actual se enfrenta a problemas derivados de la combinación de datos procedentes de diversas fuentes de información. El valor de la información puede enriquecerse enormemente facilitando la integración de nuevas fuentes de datos y la industria es muy consciente de ello en la actualidad. Sin embargo, no solo el volumen sino también la gran diversidad de los datos constituye un problema previo al análisis. Una buena integración de los datos garantiza unos resultados fiables y por ello merece la pena detenerse en la mejora de procesos de especificación, recolección, limpieza e integración de los datos. Este trabajo está dedicado a la fase de limpieza e integración de datos analizando los procedimientos existentes y proponiendo una solución que se aplica a datos médicos, centrándose así en los proyectos de predicción (con finalidad de prevención) en ciencias de la salud. Además de la implementación de los procesos de limpieza, se desarrollan algoritmos de detección de outliers que permiten mejorar la calidad del conjunto de datos tras su eliminación. El trabajo también incluye la implementación de un proceso de predicción que sirva de ayuda a la toma de decisiones. Concretamente este trabajo realiza un análisis predictivo de los datos de pacientes drogodependientes de la Clínica Nuestra Señora de la Paz, con la finalidad de poder brindar un apoyo en la toma de decisiones del médico a cargo de admitir el internamiento de pacientes en dicha clínica. En la mayoría de los casos el estudio de los datos facilitados requiere un pre-procesado adecuado para que los resultados de los análisis estadísticos tradicionales sean fiables. En tal sentido en este trabajo se implementan varias formas de detectar los outliers: un algoritmo propio (Detección de Outliers con Cadenas No Monótonas), que utiliza las ventajas del algoritmo Knuth-Morris-Pratt para reconocimiento de patrones, y las librerías outliers y Rcmdr de R. La aplicación de procedimientos de cleaning e integración de datos, así como de eliminación de datos atípicos proporciona una base de datos limpia y fiable sobre la que se implementarán procedimientos de predicción de los datos con el algoritmo de clasificación Naive Bayes en R.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

En la actualidad, el uso del Cloud Computing se está incrementando y existen muchos proveedores que ofrecen servicios que hacen uso de esta tecnología. Uno de ellos es Amazon Web Services, que a través de su servicio Amazon EC2, nos ofrece diferentes tipos de instancias que podemos utilizar según nuestras necesidades. El modelo de negocio de AWS se basa en el pago por uso, es decir, solo realizamos el pago por el tiempo que se utilicen las instancias. En este trabajo se implementa en Amazon EC2, una aplicación cuyo objetivo es extraer de diferentes fuentes de información, los datos de las ventas realizadas por las editoriales y librerías de España. Estos datos son procesados, cargados en una base de datos y con ellos se generan reportes estadísticos, que ayudarán a los clientes a tomar mejores decisiones. Debido a que la aplicación procesa una gran cantidad de datos, se propone el desarrollo y validación de un modelo, que nos permita obtener una ejecución óptima en Amazon EC2. En este modelo se tienen en cuenta el tiempo de ejecución, el coste por uso y una métrica de coste/rendimiento. Adicionalmente, se utilizará la tecnología de contenedores Docker para llevar a cabo un caso específico del despliegue de la aplicación.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Para entender nuestro proyecto, debemos comprender DEVS. Dentro de los formalismos más populares de representación de sistemas de eventos discretos se encuentra DES. En la década de los 70, el matemático Bernard Zeigler propuso un formalismo general para la representación de dichos sistemas. Este formalismo denominado DEVS (Discrete EVent System Specification) es el formalismo más general para el tratamiento de DES. DEVS permite representar todos aquellos sistemas cuyo comportamiento pueda describirse mediante una secuencia de eventos discretos. Estos eventos se caracterizan por un tiempo base en el que solo un número de eventos finitos puede ocurrir. DEVS Modelado y Simulación tiene múltiples implementaciones en varios lenguajes de programación como por ejemplo en Java, C# o C++. Pero surge la necesidad de implementar una plataforma distribuida estable para proporcionar la mecánica de interoperabilidad e integrar modelos DEVS diversificados. En este proyecto, se nos dará como código base el core de xDEVS en java, aplicado de forma secuencial y paralelizada. Nuestro trabajo será implementar el core de manera distribuida de tal forma que se pueda dividir un sistema DEVS en diversas máquinas. Para esto hemos utilizado sockets de java para hacer la transmisión de datos lo más eficiente posible. En un principio deberemos especificar el número de máquinas que se conectarán al servidor. Una vez estas se hayan conectado se les enviará el trabajo específico que deberán simular. Cabe destacar que hay dos formas de dividir un sistema DEVS las cuales están implementadas en nuestro proyecto. La primera es dividirlo en módulos atómicos los cuales son subsistemas indivisibles en un sistema DEVS. Y la segunda es dividir las funciones de todos los subsistemas en grupos y repartirlos entre las máquinas. En resumen el funcionamiento de nuestro sistema distribuido será comenzar ejecutando el trabajo asignado al primer cliente, una vez finalizado actualizará la información del servidor y este mandara la orden al siguiente y así sucesivamente.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

El juez en línea https://www.aceptaelreto.com desarrollado por profesores de la UCM basa su éxito no solamente en la funcionalidad como juez, sino en la batería de problemas de programación que aloja y que presentan retos lo suficientemente variados como para satisfacer a un amplio rango de usuarios. El documento es la memoria final de un Proyecto de Innovación y Mejora de la Calidad Docente (PIMCD) de 2015 en el que se crearon más de 60 problemas para este juez.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

En la actualidad, estudiar comunicación y, específicamente, periodismo es una necesidad, aunque, al mismo tiempo, es un desafío. Esto se justifica por el dinamismo del ecosistema mediático contemporáneo, que corresponde a los medios, a las tecnologías emergentes y a la sociedad, cada vez más participante de los procesos comunicacionales. De hecho, estas transformaciones han cambiado no sólo los procesos, sino, también, las componentes de los grupos profesionales que trabajan en la construcción de la noticia contemporánea, ahora convertida en multilenguaje y pensada para dispositivos antes no pensados, como los teléfonos móviles y las tabletas. Entre los cambios, se destaca el periodismo de datos que tiene en cuenta el fenómeno big data y los contenidos de información disponibles en la nube, informaciones muchas veces disfrazadas o desapercibidas entre contenidos no tan importantes. Para trabajar con estos contenidos y en escenarios emergentes binarios, se justifica la creciente participación de profesionales de las ciencias exactas y de las ingenierías en las salas de redacción de los medios, pues ahora es necesario pensar en la selección, limpieza y comprensión, además de construir el espacio de publicación bajo conceptos digitales para lo multiplataforma. Complementariamente, encontramos una sociedad cada vez más constructora de espacios y caminos para la circulación y retroalimentación de contenidos a través de los medios sociales, posicionándose estos como productores de contenido, es decir, en fuentes activas. Esta investigación de tesis doctoral se ha desarrollado con el objetivo de crear un medio social para el desarrollo del periodismo de datos que tiene como base conceptual la narrativa transmedia, los contenidos multiplataforma y el conectivismo, elementos clave para comprender las posibilidades y aprovechar el conocimiento colectivo disponible en la nube. Por tanto, se han compartido conocimientos y metodologías apropiadas para la investigación en los campos del periodismo y de la ingeniería, tornándose necesaria la inmersión en conceptos relacionados del periodismo, el periodismo de datos, lenguajes y la sociedad mediática para, al final, desarrollar un algoritmo bajo formato de diagrama de flujo, y sus respectivas interfaces, del medio social thirdnews, que sirviera como modelo de ejecución de programación del producto. Entre las metodologías adoptadas, se destacan la investigación bibliográfica y la investigación cuasi-experimental, que empieza a ser común en tesis sobre comunicación aplicada, además del concepto de modelaje de producto y el método Roadmap, utilizados con frecuencia en tesis de ingeniería de producción. Con las conclusiones de la tesis, se espera no sólo poner en práctica el desarrollo del medio social, sino, también, presentar reflexiones teóricas y prácticas sobre el periodismo de datos en las redacciones de los medios actuales.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Cada vez son más los usuarios que optan por usar un juez online de programación como entrenamiento para un concurso de programación o inclusive como herramienta de estudio en el ámbito docente. No obstante, es natural que con su uso se cometan errores que muchas veces no se alcanzan a entender. Por ello, en este proyecto, se trata de resolver esa carencia mediante el ofrecimiento de pistas a los usuarios. Es decir, dado un problema con un formato concreto y una solución en código fuente, se devuelve una ayuda sobre el error cometido en la solución, lo cual supone, no solo una ayuda para participantes en concursos, sino también para alumnos y profesores que pueden beneficiarse de esta ayuda. De hecho, el uso de herramientas de corrección automática está en aumento, y con la solución propuesta, se podría obtener pistas para los problemas que respeten el formato esperado.