8 research outputs found

    Complexitor: an Educational Tool for Learning Algorithm TIME Complexity in Practical Manner

    Full text link
    Based on the informal survey, learning algorithm time complexity in a theoretical manner can be rather difficult to understand. Therefore, this research proposed Complexitor, an educational tool for learning algorithm time complexity in a practical manner. Students could learn how to determine algorithm time complexity through the actual execution of algorithm implementation. They were only required to provide algorithm implementation (i.e. source code written on a particularprogramming language) and test cases to learn time complexity. After input was given, Complexitor generated execution sequence based on test cases and determine its time complexity through Pearson correlation. An algorithm time complexity with the highest correlation value toward execution sequence was assigned as its result. Based on the evaluation, it can be concluded this mechanism is quite effective for determining time complexity as long as the distribution of given input set is balanced

    Inteligencia artificial y aprendizaje colaborativo asistido por computadora en la programación: un estudio de mapeo sistemático

    Get PDF
    Objective: The Computer-Supported Collaborative Learning (CSCL) approach integrates artificial intelligence (AI) to enhance the learning process through collaboration and information and communication technologies (ICTs). In this sense, innovative and effective strategies could be designed for learning computer programming. This paper presents a systematic mapping study from 2009 to 2021, which shows how the integration of CSCL and AI supports the learning process in programming courses. Methodology: This study was conducted by reviewing data from different bibliographic sources such as Scopus, Web of Science (WoS), ScienceDirect, and repositories of the GitHub platform. It employs a quantitative methodological approach, where the results are represented through technological maps that show the following aspects: i) the programming languages used for CSCL and AI software development; ii) CSCL software technology and the evolution of AI; and iii) the ACM classifications, research topics, artificial intelligence techniques, and CSCL strategies. Results: The results of this research help to understand the benefits and challenges of using the CSCL and AI approach for learning computer programming, identifying some strategies and tools to improve the process in programming courses (e.g., the implementation of the CSCL approach strategies used to form groups, others to evaluate, and others to provide feedback); as well as to control the process and measure student results, using virtual judges for automatic code evaluation, profile identification, code analysis, teacher simulation, active learning activities, and interactive environments, among others. However, for each process, there are still open research questions. Conclusions: This work discusses the integration of CSCL and AI to enhance learning in programming courses and how it supports students' education process. No model integrates the CSCL approach with AI techniques, which allows implementing learning activities and, at the same time, observing and analyzing the evolution of the system and how its users (students) improve their learning skills with regard to programming. In addition, the different tools found in this paper could be explored by professors and institutions, or new technologies could be developed from them.Objetivo: El enfoque de aprendizaje colaborativo asistido por computadora (CSCL) integra la inteligencia artificial (IA) para mejorar el proceso de aprendizaje a través de la colaboración y las tecnologías de la información y la comunicación (TICs). En este sentido, se podrían diseñar estrategias innovadoras y efectivas para el aprendizaje de la programación de computadoras. Este artículo presenta un estudio sistemático de mapeo de los años 2009 a 2021, el cual muestra cómo la integración del CSCL y la IA apoya el proceso de aprendizaje en cursos de programación. Metodología: Este estudio se realizó mediante una revisión de datos proveniente de distintas fuentes bibliográficas como Scopus, Web of Science (WoS), ScienceDirect y repositorios de la plataforma GitHub. El trabajo emplea un enfoque metodológico cuantitativo, en el cual los resultados se representan a través de mapas tecnológicos que muestran los siguientes aspectos: i) los lenguajes de programación utilizados para el desarrollo de software de CSCL e IA; ii) la tecnología de software CSCL y la evolución de la IA; y iii) las clasificaciones, los temas de investigación, las técnicas de inteligencia artificial y las estrategias de CSCL de la ACM. Resultados: Los resultados de esta investigación ayudan a entender los beneficios y retos de usar el enfoque de CSCL e IA para el aprendizaje de la programación de computadoras, identificando algunas estrategias y herramientas para mejorar el proceso en cursos de programación (e.g., La implementación de estrategias del enfoque CSCL utilizadas para formar grupos, de otras para evaluar y de otras para brindar retroalimentación); así como para monitorear el proceso y medir los resultados de los estudiantes utilizando jueces virtuales para la evaluación automática del código, identificación de perfiles, análisis de código, simulación de profesores, actividades de aprendizaje activo y entornos interactivos, entre otros. Sin embargo, aún hay preguntas investigación por resolver para cada proceso. Conclusiones: Este trabajo discute la integración del CSCL y la IA para mejorar el aprendizaje en cursos de programación y cómo esta apoya el proceso educativo de los estudiantes. Ningún modelo integra el enfoque CSCL con técnicas de IA, lo cual permite implementar actividades de aprendizaje y, al mismo tiempo, observar y analizar la evolución del sistema y de la manera en que sus usuarios (estudiantes) mejoran sus habilidades de aprendizaje con respecto a la programación. Adicionalmente, las diferentes herramientas encontradas en este artículo podrían ser exploradas por profesores e instituciones, o podrían desarrollarse nuevas tecnologías a partir de ellas

    Proyecto eMadrid: metodologías educativas, ludificación y calidad

    Full text link
    Esta comunicación presenta un conjunto de trabajos de investigación sobre metodologías docentes, ludificación y calidad realizados en el seno del proyecto eMadrid, de la Comunidad Autónoma de Madrid. En primer lugar se resumen los trabajos realizados en los dos primeros años del proyecto. Posteriormente se presentan las líneas de trabajo previstas para los dos años restantesEstos trabajos se han financiado parcialmente por el proyecto eMadrid (S2013/ICE-2715) de la Comunidad de Madrid, los proyectos FLEXOR (TIN2014-52129-R), RESET (TIN2014-53199-C3-1-R) e iProg (TIN2015-66731-C2-1-R) del Ministerio de Economía y Competitividad, y el proyecto “Adaptación de la metodología PhyMEL a la formación clínica mediante el uso de simuladores” financiado por la empresa Medical Simulato

    Combining program visualization with programming workspace to assist students for completing programming laboratory task

    Get PDF
    Numerous Program Visualization tools (PVs) have been developed for assisting novice students to understand their source code further. However, none of them are practical to be used in the context of completing programming laboratory task; students are required to keep switching between PV and programming workspace since PV’s features are considerably limited for developing programming solution from scratch. This paper combines PV with programming workspace to handle such issue. Resulted tool (which is named PITON) has 13 features extracted from PythonTutor (a program visualization tool), PyCharm (a programming workspace), and student’s feedbacks about PythonTutor. According to think-aloud and user study, PITON is more practical to be used than a combination of PythonTutor and PyCharm. Further, its features are considerably helpful; students rated these features as useful and frequently usedPeer Reviewe

    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

    An Embedding Technique for Language-Independent Lecturer-Oriented Program Visualization

    Get PDF
    Nowadays, programming is a promising skill to be learned; the demand of programmer is increased. To align with such trend, several Program Visualization (PV) tools have been developed. Using such tool, user can learn how a particular program works through interactive and descriptive visualization. However, most of the tools are language-dependent: they use either language-dependent debugger or code to generate visualization. Such dependency may become a problem when a program written in new programming language is incorporated. Therefore, this paper proposes an embedding technique to handle given issue. To incorporate new programming language, it only needs five language-dependent features to be set. In general, our proposed technique works in threefold: embedding some statements to target program, generating visualization states by running the program with console commands, and visualizing given program based on generated visualization states. According to our evaluation, proposed technique is able to incorporate program written in any programming languages as long as those languages provide required language-dependent features. Further, it is practical to be used since it still have the benefits of conventional PV even though it is designed as a language-independent PV

    XVIII Simposio Internacional de Informática Educativa, SIIE 2016

    Get PDF
    El Simposio Internacional de Informática Educativa (SIIE) ofrece un foro internacional para la presentación y debate de los últimos avances en investigación sobre las tecnologías para el aprendizaje y su aplicación práctica en los procesos educativos. También pretende poner en contacto a investigadores, desarrolladores, representantes institucionales y profesores para compartir puntos de vista, conocimientos y experiencias
    corecore