Universidad Nacional de ColombiaNational University of Colombia · Bogotá D.C.
Felipe Restrepo Calle
Profesor asociadoAssociate Professor · Líder del grupo PLaSLeader of the PLaS research group
Profesor asociado del Departamento de Ingeniería de Sistemas e Industrial y coordinador de la Maestría en Ingeniería de Sistemas y Computación. Investiga cómo aprender a programar mejor y cómo construir sistemas de software más confiables: educación en programación, análisis automático de código y confiabilidad de sistemas computacionales.
Associate professor in the Department of Systems and Industrial Engineering and coordinator of the Master's program in Systems and Computing Engineering. He researches how to learn programming better and how to build more dependable software systems: programming education, automated code analysis and the dependability of computing systems.

- 75
- publicacionespublications
- 28
- tesis de posgrado dirigidassupervised graduate theses
- 5
- estudiantes que dirijo hoystudents I currently supervise
- 12
- años en la UNALyears at UNAL
Áreas de trabajoAreas of work
Elige un área para ver cómo se conectan publicaciones, tesis y proyectos.Pick an area to see how publications, theses and projects connect.
Haz clic en un área o un tema para ver sus trabajos abajo. Puedes arrastrar los nodos.Click an area or a topic to see its work below. You can drag the nodes.
PublicacionesPublications75
- Sarch: An Integrated Tool for Architecture-Based Security Assurance
- Open-Source Small Language Models for Curriculum-Aligned Math Tutoring in Low-Resource Settings
- Exploring Bias in AI-Generated Imagery: A Design-Research Case Study in University Visual Communication
- Knowledge Graph-Driven Identification of Security Weaknesses in Web-Based Software Architectures
- A Predictive Approach for the Early Reliability Assessment in Embedded Systems Using Code and Trace Embeddings via Machine Learning
- Self‐Regulated Learning Strategies in Computer Programming Education
- Efectos de un entorno de aprendizaje de programación de computadores basado en el desarrollo de videojuegos sobre la motivación por aprender de los estudiantes
- Sarch-Knows: A Knowledge Graph for Modeling Security Scenarios at the Software Architecture Level
- Evaluation of Fault Mitigation Techniques Based on Approximate Computing Under Radiation
- Evaluation of fault injection tools for reliability estimation of microprocessor-based embedded systems
- The Development and Validation of the Questionnaire to Characterize Learning Strategies in Computer Programming (CEAPC)
- Discovering Insights in Learning Analytics Through a Mixed-Methods Framework: Application to Computer Programming Education
- Automated grading software tool with feedback process to support learning of hardware description languages
- EFFECTS OF AN AUTOMATIC ASSESSMENT TOOL ON THE MOTIVATION TO LEARN OF COMPUTER PROGRAMMING STUDENTS
- Una nueva asignatura en posgrados de ingeniería: Investigación educativa en el aula de ingeniería
- Effect of Gamification on the Motivation of Computer Programming Students
- A case study in technology-enhanced learning in an introductory computer programming course
- Monitoring of the refractory lining in a shielded electric arc furnace: An online multitarget regression trees approach
- FTxAC: Leveraging the Approximate Computing Paradigm in the Design of Fault-Tolerant Embedded Systems to Reduce Overheads
- UNCOLAB: A COMPUTATIONAL TOOL FOR COLLABORATIVE LEARNING OF COMPUTER PROGRAMMING
- Temperature Prediction Using Multivariate Time Series Deep Learning in the Lining of an Electric Arc Furnace for Ferronickel Production
- Automatic Grading Tool for Jupyter Notebooks in Artificial Intelligence Courses
- Estrategia de enseñanza basada en la colaboración y la evaluación automática de código fuente en un curso de programación CS1
- Métricas de legibilidad del código fuente: revisión sistemática de literatura
- COMPUTER-ASSISTED GAMIFICATION IN A COMPUTER PROGRAMMING COURSE: AN EXPERIENCE REPORT
- Using an Interactive Software Tool for the Formative and Summative Evaluation in a Computer Programming Course: an Experience Report
- A Vehicle Tracking Device with Built-in Safety Features for Public Transportation Systems
- MiFIT: A Fault Injection Tool to Validate the Reliability of Microprocessors
- Reducing Overheads in Software-based Fault Tolerant Systems using Approximate Computing
- Softerror mitigation for multi-core processors based on thread replication
- Evaluating Impact on Motivation and Academic Performance of a Game-Based Learning Experience Using Kahoot
- Using Approximate Computing and Selective Hardening for the Reduction of Overheads in the Design of Radiation-Induced Fault-Tolerant Systems
- Continuous assessment in a computer programming course supported by a software tool
- Fast Prototyping of Web-Based Information Systems Using a Restricted Natural Language Specification
- A Strategy Based on Technological Maps for the Identification of the State-of-the-Art Techniques in Software Development Projects: Virtual Judge Projects as a Case Study
- SHARC: An efficient metric for selective protection of software against soft errors
- A review of approximate computing techniques towards fault mitigation in HW/SW systems
- Self-Regulated Learning in a Computer Programming Course
- Social Engineering: Application of Psychology to Information Security
- UNCODE: INTERACTIVE SYSTEM FOR LEARNING AND AUTOMATIC EVALUATION OF COMPUTER PROGRAMMING SKILLS
- Towards a developer’s reputation model based on source code features
- Predicting the Programming Language: Extracting Knowledge from Stack Overflow Posts
- Understanding the relationships between self-regulated learning and students source code in a computer programming course
- An effective strategy for selective hardening of software
- Automatic Source Code Generation for Web-based Process-oriented Information Systems
- Automatic source code generation forweb-based process-oriented information systems
- Evaluación de la fiabilidad de microprocesadores COTS mediante las infraestructuras de depuración On-Chip
- Soft Error Mitigation in Soft-Core Processors
- Reducing Implicit Overheads of Soft Error Mitigation Techniques Using Selective Hardening
- An Interactive Tool to Support Student Assessment in Programming Assignments
- Dependability evaluation of COTS microprocessors via on-chip debugging facilities
- A Hardware-Software Approach for On-Line Soft Error Mitigation in Interrupt-Driven Applications
- Finding relationships between socio-technical aspects and personality traits by mining developer e-mails
- PAN at FIRE: Overview of the PR-SOCO track on personality recognition in source code
- Application-Based Analysis of Register File Criticality for Reliability Assessment in Embedded Microprocessors
- Considerations on application of selective hardening based on software fault tolerance techniques
- Efficient metric for register file criticality in processor-based systems
- Efficient Mitigation of Data and Control Flow Errors in Microprocessors
- Selective SWIFT-R
- Fault tolerant embedded systems design by multi-objective optimization
- Efficient mitigation of data and control flow errors in microprocessors
- Compiler-Directed Soft Error Mitigation for Embedded Systems
- A Co-Design Approach for SET Mitigation in Embedded Systems
- Actas de las XII Jornadas de Computación Reconfigurable y Aplicaciones 2012
- Soft core based embedded systems in critical aerospace applications
- A co-design approach for SET mitigation in embedded systems
- On the definition of real conditions for a fault injection experiment on embedded systems
- A Novel Co-Design Approach for Soft Errors Mitigation in Embedded Systems
- Co-diseño de sistemas hardware/software tolerantes a fallos inducidos por radiación
- Rapid Prototyping of Radiation-Tolerant Embedded Systems on FPGA
- Application-driven co-design of fault-tolerant industrial systems
- A compiler-based infrastructure for fault-tolerant co-design
- Hardening Development Environment for Embedded Systems
- Application-Driven Co-design of Fault-Tolerant Industrial Systems
- Platform for intelligent management of Industrial Machinery based on service-oriented architecture
Nada en esta área por ahora.Nothing in this area yet.
Tesis dirigidasSupervised theses28
- Graph-driven security assurance in web-based software architectures
- Prototipo de asistente virtual como apoyo al proceso de aprendizaje en una asignatura de análisis y visualización de datos utilizando grandes modelos de lenguaje
- Sistema de asistencia virtual basado en LLMs para el manejo del cultivo de papa
- Análisis automatizado de comparación de productos con técnicas de procesamiento de lenguaje natural para artículos deportivos extraídos de canales de comercio electrónico
- Evaluación automática de casos de prueba de ejercicios de programación de computadores
- Generación de recomendaciones automáticas de inversión en la Bolsa de Valores de Colombia mediante agentes autónomos de inteligencia artificial
- Modelo de predicción de abandono de clientes en un marketplace mediante técnicas de machine learning
- Prototipo de plataforma educativa basada en modelos de lenguaje para el apoyo en el aprendizaje de matemáticas básicas
- Efecto de un entorno de aprendizaje de programación de computadores basado en el desarrollo de videojuegos sobre la motivación por aprender de los estudiantes
- Evaluación del efecto de un laboratorio híbrido en el aprendizaje de un Lenguaje de Descripción de Hardware (HDL)
- Predictive models of academic performance for early intervention in computer programming courses
- Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
- Design of Fault Tolerant Embedded Systems using Approximate Computing Techniques.
- Development of a software method to assist in the thematic analysis of responses to open ended questions in Spanish-language surveys
- Prototipo de una herramienta de software de calificación automática con proceso de realimentación para el apoyo al aprendizaje de lenguajes de descripción de hardware
- Analítica de aprendizaje en la asignatura Programación de Computadores: una investigación basada en métodos mixtos
- Evaluación del impacto en la motivación en el aprendizaje de los estudiantes de programación de computadores mediante el uso de una herramienta de evaluación automática
- Diseño y validación interna de un instrumento de autoinforme para caracterizar las estrategias de aprendizaje de programación de computadores
- Evaluación del efecto de la gamificación asistida por computador en la motivación de los estudiantes de programación de computadores
- Prototipo de herramienta computacional para el aprendizaje colaborativo de programación de computadores
- Métricas de legibilidad del software: una revisión sistemática de literatura
- An information retrieval strategy for large multimodal data collections involving source code and natural language
- Automatic source code analysis forassessment of solutions toprogramming tasks
- Building a Developer’s Reputation Model for Programming Contest Platforms based on Source Code Analysis
- Static Analysis of Python Programs using Abstract Interpretation: An Application to Tensor Shape Analysis
- Social engineering: psychology applied to Information Security
- Prototipado automático de sistemas de información transaccionales usando una especificación en lenguaje natural restringido
- Source code analysis on student assignments using machine learning techniques
Nada en esta área por ahora.Nothing in this area yet.
ProyectosProjects5
- UNCodeUNCode
- Paradigmas de programaciónProgramming paradigms
- IRISIRIS
- SHESHE
- FTxACFTxAC
Nada en esta área por ahora.Nothing in this area yet.
DocenciaTeaching
Concibo la docencia como un espacio para aprender haciendo, formular buenas preguntas y construir soluciones de manera colaborativa.I approach teaching as a space for learning by doing, asking good questions, and building solutions collaboratively.
Este semestreThis term
Recursos abiertos y MOOCOpen resources and MOOCs
Historial de cursosCourse history (73)
- Lenguajes de programación
- Temas Avanzados en Lenguajes de Programación
- Introducción al análisis y visualización de datos con Python (Diplomado Marzo 2019)
- Introducción al análisis y visualización de datos con Python (Diplomado Mayo 2019)
PublicacionesPublications
Resultados de investigación en educación en computación, lenguajes de programación y sistemas confiables.Research outputs in computing education, programming languages, and dependable systems.
Buscar y filtrar todasSearch and filter all →- Sarch: An Integrated Tool for Architecture-Based Security Assurance
- Open-Source Small Language Models for Curriculum-Aligned Math Tutoring in Low-Resource Settings
- Exploring Bias in AI-Generated Imagery: A Design-Research Case Study in University Visual Communication
- Knowledge Graph-Driven Identification of Security Weaknesses in Web-Based Software Architectures
- A Predictive Approach for the Early Reliability Assessment in Embedded Systems Using Code and Trace Embeddings via Machine Learning
Publicaciones anterioresEarlier publications (66)
- Evaluation of fault injection tools for reliability estimation of microprocessor-based embedded systems
- The Development and Validation of the Questionnaire to Characterize Learning Strategies in Computer Programming (CEAPC)
- Discovering Insights in Learning Analytics Through a Mixed-Methods Framework: Application to Computer Programming Education
- Automated grading software tool with feedback process to support learning of hardware description languages
- EFFECTS OF AN AUTOMATIC ASSESSMENT TOOL ON THE MOTIVATION TO LEARN OF COMPUTER PROGRAMMING STUDENTS
- Una nueva asignatura en posgrados de ingeniería: Investigación educativa en el aula de ingeniería
- Effect of Gamification on the Motivation of Computer Programming Students
- A case study in technology-enhanced learning in an introductory computer programming course
- Monitoring of the refractory lining in a shielded electric arc furnace: An online multitarget regression trees approach
- FTxAC: Leveraging the Approximate Computing Paradigm in the Design of Fault-Tolerant Embedded Systems to Reduce Overheads
- UNCOLAB: A COMPUTATIONAL TOOL FOR COLLABORATIVE LEARNING OF COMPUTER PROGRAMMING
- Temperature Prediction Using Multivariate Time Series Deep Learning in the Lining of an Electric Arc Furnace for Ferronickel Production
- Automatic Grading Tool for Jupyter Notebooks in Artificial Intelligence Courses
- Estrategia de enseñanza basada en la colaboración y la evaluación automática de código fuente en un curso de programación CS1
- Métricas de legibilidad del código fuente: revisión sistemática de literatura
- COMPUTER-ASSISTED GAMIFICATION IN A COMPUTER PROGRAMMING COURSE: AN EXPERIENCE REPORT
- Using an Interactive Software Tool for the Formative and Summative Evaluation in a Computer Programming Course: an Experience Report
- A Vehicle Tracking Device with Built-in Safety Features for Public Transportation Systems
- MiFIT: A Fault Injection Tool to Validate the Reliability of Microprocessors
- Reducing Overheads in Software-based Fault Tolerant Systems using Approximate Computing
- Softerror mitigation for multi-core processors based on thread replication
- Evaluating Impact on Motivation and Academic Performance of a Game-Based Learning Experience Using Kahoot
- Using Approximate Computing and Selective Hardening for the Reduction of Overheads in the Design of Radiation-Induced Fault-Tolerant Systems
- Continuous assessment in a computer programming course supported by a software tool
- Fast Prototyping of Web-Based Information Systems Using a Restricted Natural Language Specification
- A Strategy Based on Technological Maps for the Identification of the State-of-the-Art Techniques in Software Development Projects: Virtual Judge Projects as a Case Study
- SHARC: An efficient metric for selective protection of software against soft errors
- A review of approximate computing techniques towards fault mitigation in HW/SW systems
- Self-Regulated Learning in a Computer Programming Course
- Social Engineering: Application of Psychology to Information Security
- UNCODE: INTERACTIVE SYSTEM FOR LEARNING AND AUTOMATIC EVALUATION OF COMPUTER PROGRAMMING SKILLS
- Towards a developer’s reputation model based on source code features
- Predicting the Programming Language: Extracting Knowledge from Stack Overflow Posts
- Understanding the relationships between self-regulated learning and students source code in a computer programming course
- An effective strategy for selective hardening of software
- Automatic Source Code Generation for Web-based Process-oriented Information Systems
- Automatic source code generation forweb-based process-oriented information systems
- Evaluación de la fiabilidad de microprocesadores COTS mediante las infraestructuras de depuración On-Chip
- Soft Error Mitigation in Soft-Core Processors
- Reducing Implicit Overheads of Soft Error Mitigation Techniques Using Selective Hardening
- An Interactive Tool to Support Student Assessment in Programming Assignments
- Dependability evaluation of COTS microprocessors via on-chip debugging facilities
- A Hardware-Software Approach for On-Line Soft Error Mitigation in Interrupt-Driven Applications
- Finding relationships between socio-technical aspects and personality traits by mining developer e-mails
- PAN at FIRE: Overview of the PR-SOCO track on personality recognition in source code
- Compiler-Directed Soft Error Mitigation for Embedded Systems
- A Co-Design Approach for SET Mitigation in Embedded Systems
- Actas de las XII Jornadas de Computación Reconfigurable y Aplicaciones 2012
- Soft core based embedded systems in critical aerospace applications
- A co-design approach for SET mitigation in embedded systems
- On the definition of real conditions for a fault injection experiment on embedded systems
- A Novel Co-Design Approach for Soft Errors Mitigation in Embedded Systems
- Co-diseño de sistemas hardware/software tolerantes a fallos inducidos por radiación
- Rapid Prototyping of Radiation-Tolerant Embedded Systems on FPGA
- Application-driven co-design of fault-tolerant industrial systems
- A compiler-based infrastructure for fault-tolerant co-design
- Hardening Development Environment for Embedded Systems
- Application-Driven Co-design of Fault-Tolerant Industrial Systems
- Platform for intelligent management of Industrial Machinery based on service-oriented architecture
EstudiantesStudents
La formación de estudiantes es parte esencial de mi trabajo docente e investigativo. Estas son algunas de las personas cuyos trabajos de tesis he acompañado.Student development is an essential part of my teaching and research. These are some of the people whose thesis work I have supervised.
En cursoIn progress
- Roger Steven Ramírez EspejoCountering GenAI-Induced Illusion of Competence: A Pedagogical Framework for Critical Content Evaluation in Software Architecture and Systems Specification
- Dairo Enrique Morales JiménezAgente conversacional para apoyar la recolección de respuestas en cuestionarios de satisfacción docente
- Maria Alejandra Ortiz MoraCaracterización del proceso de aprendizaje de un curso de programación de computadores con Python mediante analítica del aprendizaje
- Sergio Alberto Reyes GómezAprendizaje del diseño de bases de datos en un contexto académico mediado por Inteligencia Artificial Generativa: un estudio cuasi-experimental
- Nelson Andrés Rodriguez RiveraTítulo en definiciónTitle in progress
EgresadosGraduates · doctoradoPhD (3)
- Graph-driven security assurance in web-based software architectures
- Predictive models of academic performance for early intervention in computer programming courses
- Design of Fault Tolerant Embedded Systems using Approximate Computing Techniques.
EgresadosGraduates · maestríamaster's (25)
- Prototipo de asistente virtual como apoyo al proceso de aprendizaje en una asignatura de análisis y visualización de datos utilizando grandes modelos de lenguaje
- Sistema de asistencia virtual basado en LLMs para el manejo del cultivo de papa
- Análisis automatizado de comparación de productos con técnicas de procesamiento de lenguaje natural para artículos deportivos extraídos de canales de comercio electrónico
- Evaluación automática de casos de prueba de ejercicios de programación de computadores
- Generación de recomendaciones automáticas de inversión en la Bolsa de Valores de Colombia mediante agentes autónomos de inteligencia artificial
- Modelo de predicción de abandono de clientes en un marketplace mediante técnicas de machine learning
- Prototipo de plataforma educativa basada en modelos de lenguaje para el apoyo en el aprendizaje de matemáticas básicas
- Efecto de un entorno de aprendizaje de programación de computadores basado en el desarrollo de videojuegos sobre la motivación por aprender de los estudiantes
- Evaluación del efecto de un laboratorio híbrido en el aprendizaje de un Lenguaje de Descripción de Hardware (HDL)
- Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
- Development of a software method to assist in the thematic analysis of responses to open ended questions in Spanish-language surveys
- Prototipo de una herramienta de software de calificación automática con proceso de realimentación para el apoyo al aprendizaje de lenguajes de descripción de hardware
- Analítica de aprendizaje en la asignatura Programación de Computadores: una investigación basada en métodos mixtos
- Evaluación del impacto en la motivación en el aprendizaje de los estudiantes de programación de computadores mediante el uso de una herramienta de evaluación automática
- Diseño y validación interna de un instrumento de autoinforme para caracterizar las estrategias de aprendizaje de programación de computadores
- Evaluación del efecto de la gamificación asistida por computador en la motivación de los estudiantes de programación de computadores
- Prototipo de herramienta computacional para el aprendizaje colaborativo de programación de computadores
- Métricas de legibilidad del software: una revisión sistemática de literatura
- An information retrieval strategy for large multimodal data collections involving source code and natural language
- Automatic source code analysis forassessment of solutions toprogramming tasks
- Building a Developer’s Reputation Model for Programming Contest Platforms based on Source Code Analysis
- Static Analysis of Python Programs using Abstract Interpretation: An Application to Tensor Shape Analysis
- Social engineering: psychology applied to Information Security
- Prototipado automático de sistemas de información transaccionales usando una especificación en lenguaje natural restringido
- Source code analysis on student assignments using machine learning techniques
ProyectosProjects
Iniciativas que integran investigación, desarrollo de herramientas y experiencias educativas.Initiatives combining research, tool development, and educational experiences.
- UNCodeUNCodeSistema interactivo para el aprendizaje y la evaluación automática de habilidades de programación de computadores.Interactive system for learning and automatic evaluation of computer programming skills.SitioSite ↗RepositorioRepository ↗PlataformaPlatform ↗
- Paradigmas de programaciónProgramming paradigmsSitio web educativo para la introducción a los paradigmas de programación y tutoriales de distintos lenguajes.Educational website introducing programming paradigms, including tutorials for different languages.SitioSite ↗
- IRISIRISHerramienta de accesibilidad para que los estudiantes en situación de discapacidad visual puedan percibir imágenes usando las manos.Accessibility tool for visually impaired students to perceive images using their hands.SitioSite ↗
- Software Hardening EnvironmentSoftware Hardening EnvironmentHerramienta para el endurecimiento automático de código fuente para el diseño de sistemas embebidos confiables.Tool for the automatic hardening of source code in the design of dependable embedded systems.Fault Tolerance LabFault Tolerance Lab ↗DOI Selective SWIFT-RDOI Selective SWIFT-R ↗
- Fault Tolerance × Approximate ComputingFault Tolerance × Approximate ComputingUso de computación aproximada y endurecimiento selectivo para reducir overheads en sistemas embebidos tolerantes a fallos.Using approximate computing and selective hardening to reduce overheads in fault-tolerant embedded systems.
TrayectoriaTrajectory
Trayectoria académica, formación, producción intelectual y perfiles profesionales.Academic background, education, intellectual output, and professional profiles.
CV completoFull CV →- 2014–hoy2014–presentUniversidad Nacional de ColombiaNational University of ColombiaProfesor asociadoAssociate professor
- 20142014Universidade Federal do Rio Grande do Sul (Brasil)Universidade Federal do Rio Grande do Sul (Brazil)Investigador posdoctoralPostdoctoral researcher
- 2011–20132011–2013Universidad de Sevilla (España)Universidad de Sevilla (Spain)
- 20052005Universidad Tecnológica de PereiraUniversidad Tecnológica de Pereira
FormaciónEducation
- Posdoctorado · Universidade Federal do Rio Grande do Sul (UFRGS) - Universidad de AlicantePostdoc · Universidade Federal do Rio Grande do Sul (UFRGS) - Universidad de AlicanteDesarrollo de técnicas híbridas de tolerancia a fallos para microprocesadores embebidosDevelopment of hybrid fault-tolerance techniques for embedded microprocessors
- Posdoctorado · Universidad de Sevilla - Universidad de AlicantePostdoc · Universidad de Sevilla - Universidad de AlicantePlataforma para el diseño y análisis integral de circuitos y sistemas digitales para aplicaciones aeroespacialesPlatform for the design and integral analysis of digital circuits and systems for aerospace applications
- Doctor por la Universidad de AlicantePh.D. in Computer Science from the University of AlicanteSobresaliente Cum Laude; Premio Extraordinario de Doctorado 2015-2016Cum laude; PhD extraordinary award 2015-2016
- Magíster en Instrumentación FísicaM.Sc. in Physics Instrumentation from the Technological University of PereiraMención laureado; co-autora María Fernanda Zúñiga ZabalaCum laude; co-author María Fernanda Zúñiga Zabala
- Ingeniero de Sistemas y ComputaciónSystems and Computer Engineer from the Technological University of PereiraMención laureado; co-autores María Fernanda Zúñiga Zabala y John GuerraCum laude; co-authors María Fernanda Zúñiga Zabala and John Guerra