21 research outputs found
Implementación de una calculadora de bolsillo usando LEX y YACC
En este trabajo se presenta un ejemplo de la actividad desarrollada en la enseñanza de las asignaturas de compiladores en el Centro Superior de Informática de la Universidad de La Laguna. Se aborda la construcción de una calculadora de bolsillo utilizando las herramientas de ayuda a la construcción de compiladores LEX y YACC. En el laboratorio propuesto se introducen los conceptos de listas recursivas por la derecha y por la izquierda, los conflictos que surgen durante el análisis sintáctico ascendente por desplazamiento y reducción y la asignación de precedencia y asociatividad a operadores
Laboratorios de Compiladores
Aunque existe numeroso material bibliográfico de inmejorable calidad sobre las teorías que sustentan la construcción de compiladores, no hemos encontrado un texto que sirva de apoyo al profesor en el desarrollo de los contenidos de los laboratorios. Este trabajo proporciona una visión global y resumida de los ejercicios de laboratorio que se especifican en el libro “Prácticas de Compiladores en C y Pascal”. En este texto se divide la implementación de un compilador en tareas más reducidas que se plantean como laboratorios prácticos interrelacionados entre sí
Prácticas de teoría de autómatas y lenguajes formales en la Universidad de La Laguna
En este trabajo se presenta una experiencia en la organización de las prácticas de la asignatura Teoría de Autómatas y Lenguajes Formales (TALF) que se imparte en las Ingenierías Técnicas en Informática en el Centro Superior de Informática (CSI) de la Universidad de La Laguna. El trabajo está motivado por el hecho de que si bien es fácil encontrar bibliografía adecuada para esta asignatura, tanto desde el punto de vista de los conceptos que se abordan como del alumnado hacia el que van dirigidos, no conocemos experiencias en las que la atención se centre en un enfoque práctico de estos conceptos
Computer programming as a tool for developing problem-solving skills
El término pensamiento computacional se utiliza para describir cómo piensa un
«científico/a de computadoras» cuando se enfrenta a un problema y los beneficios que
esta forma de pensar podría tener en todos nosotros. El pensamiento computacional
representa el proceso de reconocimiento de aspectos de la Informática en el mundo
que nos rodea, y la aplicación de sus herramientas y técnicas para comprender y
razonar sobre los sistemas y los problemas a los que nos enfrentamos.
El objetivo de este trabajo es analizar en qué medida influye el desarrollo del
pensamiento computacional en la posterior mejora de habilidades relacionadas
con la resolución de problemas en un ámbito científico, específico, o incluso
general o de aplicación práctica en la vida cotidiana. Para ello, se ha trabajado
con alumnado del Grado en Matemáticas y del Grado en Ingeniería Informática,
titulaciones que, en menor y en mayor medida, incorporan asignaturas que introducen
al alumnado en la «programación» (herramienta fundamental para todo
«científico/a de computadoras»). La batería de tests EFAI (Evaluación Factorial de
las Aptitudes Intelectuales) de nivel 4 se utilizó para medir la inteligencia general,
la inteligencia no verbal (INV) y la inteligencia verbal (IV).
De los resultados obtenidos se puede deducir que existe una mayor homogeneidad
en el desarrollo de la INV para el alumnado que presumiblemente ha recibido
una mayor formación ligada a la programación. Aún así, y para poder obtener
conclusiones más robustas será necesario extender el estudio a alumnado de otras
ramas de conocimiento, comparando además las habilidades del alumnado de
nuevo ingreso con la del alumnado que finaliza la titulaciónThe term computational thinking is used to describe how a «computer scientist»
thinks when facing a problem and the benefits that this way of thinking could have
in all of us. Computational thinking represents the process of recognizing aspects
of computing in the world around us, and applying its tools and techniques to
understand and think about the systems and problems we face.
The objective of this work is to analyze the extent to which the development of computational
thinking influences the subsequent improvement of skills or competences
related to the resolution of problems in a specific scientific field, or even in general
and practical situations of everyday life. To this end, we have worked with students
from the Degree in Mathematics and with students from the Degree in Computer
Science. It’s important to note that in both cases, these Degrees incorporate courses
for introducing students to «computer programming» (a fundamental tool for all
«computer scientist»). The EFAI (Factorial Assessment of Intellectual Abilities) test
battery - level 4 - was used to measure general intelligence, non verbal intelligence
(INV) and verbal intelligence (IV).
From the results obtained, it can be deduced that there is a greater homogeneity in the
development of the INV for students who presumably have received more training linked
to programming. Even so, and in order to obtain more robust conclusions, it will be
necessary to extend the study to students from other branches of knowledge, comparing
the skills of the younger students with the students who are close to finish the degre
Aproximación paralela a la técnica Divide y Vencerás
En este trabajo se presenta una propuesta de desarrollo del tema dedicado a la técnica Divide y Vencerás para una asignatura de Programación en Paralelo. Tras una breve introducción a la técnica desde el punto de vista secuencial, se abordan, mediante un ejemplo, las distintas posibilidades de paralelización. El nivel de dificultad se incrementa de forma gradual desde una implementación para Memoria Compartida hasta una para Paso de Mensajes. Finalmente se estudia el rendimiento de las propuestas paralelas frente a las secuenciales
Depression, COVID-19 anxiety, subjective well-being, and academic performance in university students with COVID-19-infected relatives: a network analysis
This study aimed to examine the relationship between anxiety, depression, subjective well-being, and academic performance in Peruvian university health science students with COVID-19-infected relatives. Eight hundred two university students aged 17–54 years (Mean 21.83; SD = 5.31); 658 females (82%) and 144 males (18%); who completed the Patient Health Questionnaire-2, Coronavirus Anxiety Scale, Subjective Well-being Scale (SWB), and Self-reporting of Academic Performance participated. A partial unregularized network was estimated using the ggmModSelect function. Expected influence (EI) values were calculated to identify the central nodes and a two-tailed permutation test for the difference between the two groups (COVID-19 infected and uninfected). The results reveal that a depression and well-being node (PHQ1-SWB3) presents the highest relationship. The most central nodes belonged to COVID-19 anxiety, and there are no global differences between the comparison networks; but at the local level, there are connections in the network of COVID-19-infected students that are not in the group that did not present this diagnosis. It is concluded that anxious–depressive symptomatology and its relationship with well-being and evaluation of academic performance should be considered in order to understand the impact that COVID-19 had on health sciences students
Supporting nested parallelism
Many parallel applications do not completely fit into the data parallel model. Although these applications contain data parallelism, task parallelism is needed to represent the natural computation structure or enhance performance. To combine the easiness of programming of the data parallel model with the efficiency of the task parallel model allows to parallel forms to be nested, giving Nested parallelism.
In this work, we examine the solutions provided to N ested parallelism in two standard parallel programming platforms, HPF and MPI. Both their expression capacity and their efficiency are compared on a Cray- 3TE, which is distributed memory machine. Finally, an additional speech about the use of the methodology proposed for MPI is done on two different architecturesI Workshop de Procesamiento Distribuido y Paralelo (WPDP)Red de Universidades con Carreras en Informática (RedUNCI
Integración de las herramientas "Github education" en el aula
El sistema de control distribuido de versiones Git se ha convertido en el estándar
de facto para manejar proyectos software. Uno de los motivos de la creciente
popularidad de Git es el éxito de GitHub, una plataforma Web de desarrollo
colaborativo. GitHub ofrece toda la funcionalidad de Git e integra diversas he-
rramientas de control de acceso, colaboración, gestión de tareas y control de pro-
yectos, todo ello en la nube. Educadores tanto del mundo académico relacionado
con la Informática como de fuera de ella utilizan GitHub en sus cursos. En este
trabajo se presenta cómo se han utilizado las herramientas Git, GitHub y GitHub
Classroom para gestionar la parte práctica de varias asignaturas de los estudios
del grado en Ingeniería Informática. Esta contribución se centra en motivar esta
experiencia, explicar su implementación y discutir los resultados obtenidos.The distributed version control system Git has become the de facto standard for
managing software projects. One of the reasons for the growing popularity of Git
is the success of GitHub, a collaborative development Web platform. GitHub offers
all the functionality of Git and integrates various tools for access control, collabo-
ration, task management and project control, all of them in the cloud. Educators
from both the academic world related to IT and from outside, are using GitHub
in their courses. This paper presents how the Git, GitHub and GitHub Classroom
tools have been used to manage the laboratories of several subjects of the degree
studies in Computer Engineering. This contribution focuses on motivating this
experience, explaining its implementation and discussing the results obtained
The collective computing model
The parallel computing model used in this paper, the Collective Computing Model (CCM), is a variant of the well-known Bulk Synchronous Parallel (BSP) model. The synchronicity imposed by the BSP model restricts the set of available algorithms and prevents the overlapping of computation and communication. Other models, like the LogP model, allow asynchronous computing and overlapping but depend on the use of specific libraries. The CCM describes a system exploited through a standard software platform providing facilities for group creation, collective operations and remote memory operations. Based in the BSP model, two kinds of supersteps are considered: Division supersteps and Normal supersteps. The structure of divisions produced by the Division Functions and the partnership relation among processors give place to communication patterns among processors that are topologically similar to a hypercube. We have named the resulting structures Dynamic Polytopes To illustrate these concepts, the Fast Fourier Transform Algorithm is used. Computational results prove the accuracy of the model in four different parallel computers: a Parsytec Power PC, a Cray T3E, a Silicon Graphics Origin 2000 and a Digital Alpha Server.Facultad de Informátic