71 research outputs found

    A unified framework to experiment with algorithm optimality and efficiency

    Get PDF
    It is common in algorithm courses to assess the correctness of algorithms via testing as well as conducting experiments to measure their run-time performance. However, two severe problems must be addressed: both activities are conducted using different procedures and tools, and algorithm assessment systems do not support well optimization problems due to their unique characteristics. Given the relevant role of optimization algorithms in computing, we present a unified framework to support experimentation with both criteria, i.e., optimality and efficiency. The contributions of the article are two-fold. Firstly, we present a unified framework to experiment with both criteria, by using explicit principles and by presenting its instantiation in the AlgorEx system. The homogeneous treatment of optimality and time efficiency contributes to smoother integration of experimentation into a course syllabus and to easier adoption of the system. Secondly, we present our experience in several academic years in an algorithms course. Initially, it was noticed that students had severe difficulties to deal with experimentation, but their academic performance sharply increased by fully integrating experimentation along the complete course. The article also identifies some opportunities for extension in AlgorEx

    Experimentación interactiva con algoritmos voraces

    Get PDF
    Aunque pueden establecerse algunos objetivos de aprendizaje comunes a todas las técnicas de diseño de algoritmos, cada técnica particular tiene peculiaridades que obligan a variar ligeramente sus objetivos educativos. Uno de los elementos clave de los algoritmos voraces es una función de selección de candidatos que garantiza un resultado óptimo. Presentamos una colección de ayudantes interactivos diseñados para ayudar al alumno a identificar funciones de selección óptimas para problemas concretos. El proceso de identificación es un experimento (al estilo de las ciencias experimentales), en el que el alumno prueba de forma planificada posibles funciones de selección y decide cuáles son óptimas. La experimentación se realiza con ayuda de varios ayudantes interactivos, que hemos desarrollado para los siguientes problemas: mochila, selección de actividades y árbol de recubrimiento de coste mínimo. Los ayudantes interactivos se han utilizado durante los cursos académicos 2007- 2008, 2008-2009 y 2009-2010, con resultados positivos.Peer Reviewe

    Interacciones entre tres tradiciones intelectuales en la docencia de la algoritmia

    Get PDF
    La informática es una disciplina en la que confluyen tres tradiciones intelectuales distintas: matemáticas, ciencias experimentales e ingeniería. La algoritmia no es una excepción y contiene elementos de las tres tradiciones. La comunicación clasifica en alguna de las tres tradiciones contenidos que son comunes en las asignaturas de algoritmos. La aportación principal consiste en la presentación de varias actividades docentes novedosas, basadas en el uso conjunto de la experimentación y alguna de las otras dos tradiciones. Están inspiradas en la hipótesis de que podría mejorarse el aprendizaje de algunos contenidos tratándolos desde varios enfoques. Por ejemplo, los resultados de probar algoritmos heurísticos con respecto a su optimalidad pueden usarse para el diseño de contraejemplos de su optimalidad. Se completa la descripción de estas actividades con nuestra experiencia durante el curso académico 2019-20. Los resultados obtenidos para algunos contenidos ingenieriles son satisfactorios, pero no tanto para otros contenidos teóricos.Computing is a discipline which is at the cross of three intellectual approaches: mathematics, experimental sciences and engineering. Algorithmics is not an exception and it also contains elements from the three approaches. The paper classifies contents which are common in algorithms courses into any of these traditions. The main contribution consists in presenting several innovative instructional activities, which are based on the joint use of experimentation and one of the other two traditions. Their ultimate goal is to enhance the understanding of some contents by addressing them from several approaches. For instance, the outcomes of testing heuristic algorithms with respect to optimality can be used to design counterexamples of their optimality. The description of these activities is completed with our experience in the academic year 2019-20. The results obtained for some engineering contents are satisfactory, not so much for theoretical contents.Este trabajo se ha financiado con los proyectos de investigación iProg (TIN2015-66731-C2-1-R) del Ministerio de Economía y Competitividad y e-Madrid-CM (S2018/TCS-4307) de la Comunidad Autónoma de Madrid. El proyecto e-Madrid-CM también está financiado con los fondos estructurales FSE y FEDER

    Reflexiones sobre la impartición de asignaturas de algoritmos

    Get PDF
    Ha habido más debate sobre la enseñanza de la introducción a la programación que sobre la enseñanza de cualquier otra materia informática. Sin embargo, es aconsejable, incluso necesario, debatir sobre la docencia de esta materia. Esta comunicación es una reflexión sobre la docencia de la algoritmia, abordando tres temas. Primero, se resalta que los problemas resueltos con varias técnicas destacadas de diseño son de optimización, comentando algunas implicaciones de este hecho. Segundo, se aboga por un enfoque experimental para el aprendizaje de los algoritmos, complementario del más extendido enfoque formal. En concreto, mostramos cómo pueden usarse la visualización y la comparación experimental para que los algoritmos sean más concretos para los alumnos. Tercero, se argumenta que algunos modelos conceptuales presentes en la mayoría de los libros de texto sobre algoritmos son imprecisos, dificultando el aprendizaje de los temas correspondientes. Analizamos esta cuestión en tres técnicas de diseño de algoritmos: la técnica voraz, programación dinámica y ramificación y poda.There has been more debate about the teaching of introductory programming than the teaching of any other informatics matter. However, it is advisable, even necessary, to discuss how to teach this subject matter. This position paper meditates on this concern by addressing three themes. Firstly, it is remarked that problems addressed by several common algorithm design techniques are optimization problems, and some implications are discussed. Secondly, it is advocated an experiential approach to learning algorithms, which would complement the more usual formal approach. In particular, we show how visualization and benchmarking can be used to make algorithms more concrete to students. Thirdly, it is argued that some conceptual models present in most algorithm textbooks are imprecise, making difficult to learn their corresponding topics. We elaborate on this concern for three design techniques, namely greedy algorithms, dynamic programming and branch-and-bound.Este trabajo se ha financiado con el proyecto de investigación e-Madrid-CM (S2018/TCS-4307) de la Comunidad Autónoma de Madrid y los proyectos-puente PROGRAMA de la Universidad Juan Carlos (M2614 y M3035). El proyecto e-Madrid-CM también está financiado con los fondos estructurales FSE y FEDER

    SRec, software de animación de la recursividad

    Get PDF
    SRec es una aplicación que permite la generación automatizada de animaciones de programas basados en la recursividad. Ofrece una gran variedad de facilidades educativas como cargar y guardar animaciones ya generadas, configuración de la información que se muestra en cada momento y una interfaz muy intuitiva. Mitiga el esfuerzo de elaboración de animaciones para los profesores y ayuda a analizar los algoritmos recursivos a los alumnos. Los resultados obtenidos de su utilización en las clases indican una gran aceptación por parte de los alumnos y una mejora en sus evaluaciones académicas.Peer Reviewe

    An Evaluation of the Effortless Approach to Build Algorithm Animations with WinHIPE

    Get PDF
    AbstractThe use of algorithm visualizations in computer science education is not a new thing. Although there is a firm belief that graphical representations of algorithms are learning aids, empirical studies show that what is important is what the students do with the animations rather than what they see in them. In this paper we compare to kinds of interaction: viewing animations vs constructing animations. We have conducted a controlled experiment where a group of students (n=15) had to study an algorithm and complete a knowledge test about it and a subjective opinion questionnaire. Students were randomly divided in constructing and viewing groups. Results have been measured by means of learning outcomes, efficiency issues and student's subjective opinion. Results significantly evidence that builders obtained better results than viewers

    Ayudante interactivo para los algoritmos de Prim y Kruskal

    Get PDF
    Uno de los elementos clave de los algoritmos voraces es una función de selección de candidatos que garantiza un resultado óptimo. Hemos desarrollado una colección de ayudantes interactivos diseñados para ayudar al alumno a identificar funciones de selección óptimas para problemas concretos. El proceso de identificación es un experimento (al estilo de las ciencias experimentales), en el que el alumno prueba de forma planificada posibles funciones de selección y decide cuáles son óptimas. En esta comunicación presentamos un ayudante interactivo desarrollado para soportar el método experimental aplicado al problema del árbol de recubrimiento de coste mínimo (resoluble por los conocidos algoritmos de Prim y Kruskal). La contribución de la comunicación es doble: un estudio bibliográfico sobre el tratamiento del problema en una selección de 12 libros de texto de reconocido prestigio, y el propio ayudante interactivo, llamado TuMiST. Esta aplicación educativa se ha utilizado en clase durante los cursos académicos 2008-2009 y 2009-2010.Peer Reviewe

    Experimentación interactiva con algoritmos voraces

    Get PDF
    Aunque pueden establecerse algunos objetivos de aprendizaje comunes a todas las técnicas de diseño de algoritmos, cada técnica particular tiene peculiaridades que obligan a variar ligeramente sus objetivos educativos. Uno de los elementos clave de los algoritmos voraces es una función de selección de candidatos que garantiza un resultado óptimo. Presentamos una colección de ayudantes interactivos diseñados para ayudar al alumno a identificar funciones de selección óptimas para problemas concretos. El proceso de identificación es un experimento (al estilo de las ciencias experimentales), en el que el alumno prueba de forma planificada posibles funciones de selección y decide cuáles son óptimas. La experimentación se realiza con ayuda de varios ayudantes interactivos, que hemos desarrollado para los siguientes problemas: mochila, selección de actividades y árbol de recubrimiento de coste mínimo. Los ayudantes interactivos se han utilizado durante los cursos académicos 2007- 2008, 2008-2009 y 2009-2010, con resultados positivos.Este trabajo se ha financiado parcialmente con el proyecto TIN2008-04103/TSI del MICINN

    Afrontando la dificultad de clasificar ejercicios de programación en la taxonomía de Bloom

    Get PDF
    La taxonomía de objetivos educativos de Bloom es el marco pedagógico más utilizado en la enseñanza de la informática. Aunque aparentemente es fácil de comprender y usar, su utilización no está exenta de problemas. En una revisión sistemática realizada anteriormente, identificamos las principales dificultades de uso por parte de los autores de las publicaciones seleccionadas, así como las posibles causas y soluciones adoptadas por los mismos. La dificultad principal es la clasificación de un objetivo educativo en algún nivel de la taxonomía. En esta comunicación exponemos una solución, que consiste en el desglose de una actividad en una secuencia de procesos cognitivos más sencillos y más fáciles de clasificar. La ilustramos con su aplicación para clasificar una pequeña selección de ejercicios de programación.Bloom’s taxonomy of educational objectives is the most commonly used pedagogical framework in computer education. Although apparently easy to understand and use, it is difficult to use. In a systematic review conducted previously, we identified the main difficulties reported by the authors. In this review, we identified difficulties, possible causes and the solutions adopted by them. The main difficulty is to classify an educational objective into one of the levels of the taxonomy. In this paper, we present a solution, which consists in breaking an educational objective into a sequence of simpler and easier to classify cognitive processes. We illustrate this solution with its application to a small selection of programming exercises.Este trabajo se ha financiado con los proyectos de investigación TIN2015-66731-C2-1-R del Ministerio de Economía y Competitividad y S2013/ICE-2715 de la Comunidad Autónoma de Madrid
    corecore