???global.info.a_carregar???
My research interests are centered on software reliability, encompassing both empirical and formal methods applied to software engineering. I am an Associate Professor at Instituto Superior Técnico (IST, ULisboa) and a researcher at INESC-ID, where I am also the Vice-Coordinator of the research area Automated Reasoning and Software Reliability. I am the Executive Coordinator of the scientific area of Programming Methodology and Technology of the Department of Computer Science and Engineering. I worked in the UK Higher Education (HE) for 12 years. I moved to Portugal in 2018 as an Assistant Professor at IST/ULisboa and I was promoted to Associate Professor in 2023. In the UK, I was at Teesside University from 2011 to 2018. I was a Principal Lecturer of Research and Innovation from 2017 to 2018 (equivalent to Associate Professor but with a substantial part of the job dedicated to research administration, such as preparing the Department’s UK REF submission). From 2011 to 2017 I was a Senior Lecturer. Just before that, from February to October 2011, I was a Postdoctoral Research Associate in Computer Science. From 2006 to 2011, I was at The University of Nottingham. In the academic year 2009/2010, whilst still a PhD student, I was hired as Lecturer in Computer Science (Fixed term) to teach the first-year module Algorithmic Problem Solving. From 2006 and 2011, I was a Teaching Assistant in the modules Mathematics for Computer Scientists and Algorithmic Problem Solving. I have a Ph.D. in Computer Science from The University of Nottingham (UK, 2011), and a 5-year BSc in Mathematics and Computer Science from University of Minho (Portugal, 2005). I also earned a Postgraduate Certificate in Education in Learning and Teaching in Higher Education from Teesside University (UK, 2013). This degree allowed me to become a Fellow of the Higher Education Academy, in recognition of attainment against the UK Professional Standards Framework for teaching and learning support in Higher Education. This title can only be given to higher-education academics who demonstrate commitment to teaching, learning and the student experience, through engagement in a practical process that encourages research, reflection and development. I am a member of the, by invitation only, Formal Methods Teaching Committee (https://fme-teaching.github.io) and a Fellow of The Higher Education Academy, UK (https://www.advance-he.ac.uk/fellowship). In 2014 I provided consultancy services to Applied Integration UK, assessing the company’s software development and software testing methodologies and suggested improvements. This led to a Knowledge Transfer Partnership, supported by Innovate UK. The KTP was later evaluated as Outstanding.
Identification

Personal identification

Full name
João Ferreira

Citation names

  • Ferreira, João
  • João F. Ferreira

Author identifiers

Ciência ID
771E-6592-C2AB
ORCID iD
0000-0002-6612-9013

Websites

Knowledge fields

  • Exact Sciences - Computer and Information Sciences - Computer Sciences

Languages

Language Speaking Reading Writing Listening Peer-review
Portuguese (Mother tongue)
English Proficiency (C2) Proficiency (C2) Proficiency (C2) Proficiency (C2) Proficiency (C2)
French Upper intermediate (B2) Advanced (C1) Upper intermediate (B2) Advanced (C1) Upper intermediate (B2)
Spanish; Castilian Upper intermediate (B2) Advanced (C1) Upper intermediate (B2) Advanced (C1) Upper intermediate (B2)
Education
Degree Classification
2013
Concluded
Postgraduate Certificate in Education in Learning and Teaching in Higher Education (Pós-Graduação)
Teesside University, United Kingdom
2011/07/13
Concluded
PhD in Computer Science (Doctor of Philosophy)
University of Nottingham, United Kingdom
"Principles and Applications of Algorithmic Problem Solving" (THESIS/DISSERTATION)
2005
Concluded
Licenciatura in Mathematics and Computer Science (Licenciatura)
Universidade do Minho, Portugal
Affiliation

Science

Category
Host institution
Employer
2011/02 - 2011/10 Postdoc (Research) Teesside University, United Kingdom
Teesside University, United Kingdom

Teaching in Higher Education

Category
Host institution
Employer
2023/09/01 - Current Associate Professor (University Teacher) Universidade de Lisboa Instituto Superior Técnico, Portugal
2018/09/01 - 2023/08/31 Assistant Professor (University Teacher) Universidade de Lisboa Instituto Superior Técnico, Portugal
2017 - 2018 Associate Professor (University Teacher) Teesside University, United Kingdom
Teesside University School of Computing, United Kingdom
2011 - 2017 Assistant Professor (University Teacher) Teesside University, United Kingdom
Teesside University, United Kingdom
2009 - 2010 Invited Assistant Professor (University Teacher) University of Nottingham, United Kingdom
University of Nottingham, United Kingdom
Projects

Grant

Designation Funders
2006 - 2010 Principles and Applications of Algorithmic Problem Solving
SFRH/BD/24269/2005
PhD Student Fellow
Fundação para a Ciência e a Tecnologia
Concluded

Contract

Designation Funders
2020 - 2023 Automated Programming to Revolutionize App Development (GOLEM)
Researcher
Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento em Lisboa, Portugal
Ongoing
2021/02/01 - 2022/06/30 PassCert: Exploring the Impact of Formal Verification on the Adoption of Password Security Software
Principal investigator
Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento em Lisboa, Portugal
Fundação para a Ciência e a Tecnologia
Concluded
2019/09/01 - 2022/02/28 FaultLocker: FAULT LOCalization and repair toolKit for dEpendable softwaRe
PTDC/CCI-COM/29300/2017
Researcher
Concluded
2019/01/01 - 2021/12/31 Qualichain: Decentralised Qualifications' Verification and Management for Learner Empowerment, Education Reengineering and Public Sector Transformation
822404
Researcher
EU Framework Programme for Research and Innovation Excellent Science
Concluded
2015/01 - 2017/09 Review: an Innovative Intelligent Evidence Exploration System
KTP 9885
Principal investigator
Innovate UK
Concluded
2014/11 - 2017/07 Safe hybrid critical systems via automated testing from formal user requirements
KTP 9828
Principal investigator
Innovate UK
Concluded
2009 - 2012 MathIS: Reinvigorating Mathematics for the Information Society
PTDC/EIA/73252/2006
Researcher
Fundação para a Ciência e a Tecnologia
2011 - 2011 Verification of low-level programs with asynchronous interrupts
N/A
Principal investigator
Teesside University
Concluded
Outputs

Publications

Conference paper
  1. Álvaro Silva; Mendes, Alexandra; João F. Ferreira. "Leveraging Large Language Models to Boost Dafny's Developers Productivity". Paper presented in FormaliSE, 2024.
    Accepted
  2. Monika di Angelo; Thomas Durieux; João F. Ferreira; Gernot Salzer. "SmartBugs 2.0: An Execution Framework for Weakness Detection in Ethereum Smart Contracts". 2023.
    10.1109/ASE56229.2023.00060
  3. Saavedra, Nuno; Gonçalves, João; Henriques, Miguel; Ferreira, João F.; Mendes, Alexandra. "Polyglot Code Smell Detection for Infrastructure as Code with GLITCH". 2023.
    10.1109/ase56229.2023.00162
  4. Henrique Botelho Guerra; João F. Ferreira; COSTA SECO, JOÃO. "Hoogle*: Constants and \lambda-abstractions in Petri-net-based Synthesis using Symbolic Execution". Paper presented in 37th European Conference on Object-Oriented Programming (ECOOP 2023), 2023.
  5. Henrique Botelho Guerra; João F. Ferreira; COSTA SECO, JOÃO. "Hoogle*: Synthesis of Constants and lambda-abstractions in Petri-net-based Synthesis using Symbolic Execution". Paper presented in 37th European Conference on Object-Oriented Programming, ECOOP 2023, 2023.
    Published • 10.4230/LIPIcs.ECOOP.2023.4
  6. Nuno Saavedra; João F. Ferreira. "GLITCH: Automated Polyglot Security Smell Detection in Infrastructure as Code". Paper presented in 37th IEEE/ACM International Conference on Automated Software Engineering, 2022.
    Published • 10.1145/3551349.3556945
  7. Ricardo Pereira; João F. Ferreira (771E-6592-C2AB); Alexandra Mendes; Rui Abreu. "Extending EcoAndroid with Automated Detection of Resource Leaks". Paper presented in 9th IEEE/ACM International Conference on Mobile Software Engineering and Systems 2022 (MobileSoft 2022), 2022.
    Published
  8. Miguel Trinca; João F. Ferreira (771E-6592-C2AB); Rui Abreu. "A Preliminary Study on Generating Well-Formed Q# Quantum Programs for Fuzz Testing". Paper presented in 2nd International Workshop on Artificial Intelligence in Software Testing, co-located with 15th IEEE International Conference on Software Testing, Verification and Validation (ICST) 2022, 2022.
    Published
  9. Miguel Grilo; João Campos; João F. Ferreira; Almeida, José Bacelar; Mendes, Alexandra. "Verified Password Generation from Password Composition Policies". Paper presented in International Conference on Integrated Formal Methods (iFM 2022), 2022.
    Published
  10. Lima, Rui; João F. Ferreira (771E-6592-C2AB); Mendes, Alexandra. "Automatic Repair of Java Code with Timing Side-Channel Vulnerabilities". Paper presented in 36th IEEE/ACM International Conference on Automated Software Engineering Workshops, 2021.
    Published • 10.1109/asew52652.2021.00014
  11. Carolina Carreira; 771E-6592-C2AB; Alexandra Mendes; Nicolas Christin. "Exploring Usable Security to Improve the Impact of Formal Verification: A Research Agenda.". Paper presented in Proceedings First Workshop on Applicable Formal Methods (AppFM 2021), 2021.
    Published
  12. Ana Ribeiro; João F. Ferreira (771E-6592-C2AB); Alexandra Mendes. "EcoAndroid: An Android Studio plugin for developing energy-efficient Java mobile applications". 2021.
    Published
  13. Carolina Carreira; João F. Ferreira; Mendes, Alexandra. "Towards Improving the Usability of Password Managers". Paper presented in Communication accepted at INForum 2021 (INForum ¿ Simpósio de Informática), Lisboa, 2021.
    Published
  14. Saul Johnson; João F. Ferreira; Alexandra Mendes; Julien Cordry. "Skeptic: Automatic, Justified and Privacy-Preserving Password Composition Policy Selection". Paper presented in ACM ASIA Conference on Computer and Communications Security (ASIACCS 2020), 2020.
  15. Thomas Durieux; João F. Ferreira; Rui Abreu; Pedro Cruz. "Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts". Paper presented in International Conference on Software Engineering (ICSE 2020), 2020.
  16. Julie Porteous; João F. Ferreira; Alan Lindsay; Marc Cavazza. "Extending Narrative Planning Domains with Linguistic Resources". Paper presented in International Conference on Autonomous Agents and Multi-Agent Systems (AAMAS 2020), Auckland, 2020.
    Accepted
  17. Thomas Hayton; Julie Porteous; João F. Ferreira; Alan Lindsay. "Narrative Planning Model Acquisition from Text Summaries and Descriptions". Paper presented in AAAI Conference on Artificial Intelligence (AAAI-20), 2020.
  18. Ferreira, João F.; Cruz, Pedro; Durieux, Thomas; Abreu, Rui. "SmartBugs: a framework to analyze solidity smart contracts". Paper presented in 35th IEEE/ACM International Conference on Automated Software Engineering, 2020.
    Published • 10.1145/3324884.3415298
  19. Pereira, David; Ferreira, Joao F.; Mendes, Alexandra. "Evaluating the Accuracy of Password Strength Meters using Off-The-Shelf Guessing Attacks". Paper presented in International Workshop on Reliability and Security Data Analysis (RSDA), 2020.
    Published • 10.1109/issrew51248.2020.00079
  20. Tony Hoare; Alexandra Mendes; João F. Ferreira. "Logic, Algebra, and Geometry at the Foundation of Computer Science". Paper presented in FMTea 2019 – Formal Methods Teaching Workshop and Tutorial (co-located with FM 2019, 3rd World Congress on Formal Methods), 2019, 2019.
    Accepted
  21. João F. Ferreira (771E-6592-C2AB); Alexandra Mendes. "Open and Interactive Learning Resources for Algorithmic Problem Solving.". Paper presented in 9th International Workshop on Open Community approaches to Education, Research and Technology (OpenCert), 2019.
    Published
  22. Saul Johnson; 771E-6592-C2AB; Alexandra Mendes; Julien Cordry. "Lost in Disclosure: On The Inference of Password Composition Policies". Paper presented in 4th International Workshop on Reliability and Security Data Analysis (RSDA), 2019.
    Published
  23. Mengda He; Shengchao Qin; João F. Ferreira. "Towards a Program Logic for C11 Release-Sequences". Paper presented in International Symposium on Theoretical Aspects of Software Engineering (TASE), 2018, 2018.
  24. Alexandra Mendes; João F. Ferreira. "Towards Verified Handwritten Calculational Proofs (short paper)". Paper presented in 9th International Conference on Interactive Theorem Proving (ITP 2018), 2018, 2018.
  25. João F. Ferreira; Saul A. Johnson; Alexandra Mendes; Phillip J. Brooke. "Certified Password Quality – A Case Study Using Coq and Linux Pluggable Authentication Modules". Paper presented in International Conference on integrated Formal Methods (iFM 2017), 2017, 2017.
  26. Alan Lindsay; Jonathon Read; João F. Ferreira; Thomas Hayton; Julie Porteous; Peter Gregory. "Framer: Planning Models from Natural Language Action Descriptions". Paper presented in 27th International Conference on Automated Planning and Scheduling (ICAPS’17), 2017, 2017.
  27. Ali Almohammad; João F. Ferreira; Alexandra Mendes; Phil White. "ReqCap: Hierarchical Requirements Modeling and Test Generation for Industrial Control Systems". Paper presented in 4th International Workshop on Requirements Engineering and Testing (RET’17), 2017, 2017.
    10.1109/rew.2017.65
  28. Jonathan Siddle; Alan Lindsay; João F. Ferreira; Julie Porteous; Jonathon Read; Fred Charles; Marc Cavazza; Gersende Georg. "Visualization of Patient Behavior from Natural Language Recommendations". Paper presented in International Conference on Knowledge Capture (K-CAP 2017), 2017, 2017.
    10.1145/3148011.3148036
  29. Malcolm McNeely; Julie Porteous; João F. Ferreira; Alan Lindsay. "Towards a Constraints Approach to Generating Personalised Horror Film Variants". Paper presented in Workshop on Constraint Satisfaction Techniques for Planning and Scheduling Problems (COPLAS'17), 2017, 2017.
  30. Thomas Hayton; Julie Porteous; João F. Ferreira; Alan Lindsay; Jonathon Read. "StoryFramer: From Input Stories to Output Planning Models". Paper presented in Workshop on Knowledge Engineering for Planning and Scheduling, 2017, 2017.
  31. Mengda He; Viktor Vafeiadis; Shengchao Quin; João F. Ferreira. "Reasoning about Fences and Relaxed Atomics". Paper presented in 24th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP'16), Pages 520--527, 2016, 2016.
  32. Cindy Even; Anne-Gwenn Bosser; João F. Ferreira; Cédric Buche; Florian Stéphan; Marc Cavazza; Christine Lisett. "Supporting Social Skills Rehabilitation with Virtual Storytelling". Paper presented in Twenty-Ninth International Florida Artificial Intelligence Research Society Conference (FLAIRS29), Pages 329--334, 2016, 2016.
  33. Alexandra Mendes; Roland Backhouse; João F. Ferreira. "Structure Editing of Handwritten Mathematics: Improving the Computer Support for the Calculational Method". Paper presented in Ninth ACM International Conference on Interactive Tabletops and Surfaces (ITS’14), Pages 139–148, 2014, 2014.
  34. Chris Martens; João F. Ferreira; Anne-Gwenn Bosser; Marc Cavazza. "Generative story worlds as linear logic programs". Paper presented in Seventh Intelligent Narrative Technologies Workshop (INT7), Pages 17--23, 2014, 2014.
  35. João F. Ferreira; Alexandra Mendes. "The Magic of Algorithm Design and Analysis: Teaching Algorithmic Skills using Magic Card Tricks". Paper presented in Innovation & Technology in Computer Science Education (ITiCSE'14), Pages 75--80, 2014, 2014.
  36. Yanhong Huang; João F. Ferreira; Guanhua He; Shengchao Qin; Jifeng He. "Deadline analysis of AUTOSAR OS periodic tasks in the presence of interrupts". Paper presented in 15th International Conference on Formal Engineering Methods (ICFEM'13), LNCS 8144, 2013, 2013.
    10.1007/978-3-642-41202-8_12
  37. Chris Martens; Anne-Gwenn Bosser; João F. Ferreira; Marc Cavazza. "Linear logic programming for narrative generation". Paper presented in 12th International Conference on Logic Programming and Nonmonotonic Reasoning (LPNMR'13), 2013, 2013.
    10.1007/978-3-642-40564-8_42
  38. Yanhong Huang; Yongxin Zhao; Shengchao Qin; Guanhua He; João F. Ferreira. "A timed CSP model for the time-triggered language Giotto". Paper presented in 35th Annual IEEE Software Engineering Workshop (SEW-35), 2012, 2012.
    10.1109/SEW.2012.18
  39. João F. Ferreira; Guanhua He; Shengchao Qin. "Automated verification of the FreeRTOS scheduler in HIP/SLEEK". Paper presented in International Symposium on Theoretical Aspects of Software Engineering (TASE), 2012, 2012.
    10.1109/TASE.2012.45
  40. João F. Ferreira; Alexandra Mendes; Alcino Cunha; Carlos Baquero; Paulo Silva; L. S. Barbosa; J. N. Oliveira. "Logic training through algorithmic problem solving". Paper presented in Third International Congress on Tools for Teaching Logic (TICTTL'11), LNCS 6680 (FoLLI-LNAI Series), 2011, 2011.
    10.1007/978-3-642-21350-2_8
  41. Backhouse, R.; Chen, W.; Ferreira, J.F.. "The algorithmics of solitaire-like games". Paper presented in Mathematics of Program Construction 2010 (MPC'10), LNCS 6120, 2010, 2010.
    10.1007/978-3-642-13321-3_1
  42. João F. Ferreira. "Designing an algorithmic proof of the two-squares theorem". Paper presented in Mathematics of Program Construction 2010 (MPC'10), LNCS 6120, 2010, 2010.
    10.1007/978-3-642-13321-3_10
  43. João F. Ferreira; Alexandra Mendes; Roland Backhouse; L. S. Barbosa. "Which mathematics for the information society?". Paper presented in 2nd International FME Conference on Teaching Formal Methods (TFM'09), LNCS 5846, 2009, 2009.
    10.1007/978-3-642-04912-5_4
  44. João F. Ferreira; Alexandra Mendes. "Students' feedback on teaching mathematics through the calculational method". Paper presented in 39th IEEE Frontiers in Education Conference (FiE'09), 2009, 2009.
    10.1109/FIE.2009.5350478
  45. Roland Backhouse; João F. Ferreira. "Recounting the rationals: Twice!". Paper presented in Mathematics of Program Construction 2008 (MPC'08), LNCS 5133, 2008, 2008.
    10.1007/978-3-540-70594-9_6
  46. João F. Ferreira; João L. Sobral; Alberto J. Proença. "JaSkel: A Java skeleton-based framework for structured cluster and grid computing". Paper presented in 6th IEEE International Symposium on Cluster Computing and the Grid (CCGrid'06), 2006, 2006.
    10.1109/CCGRID.2006.65
  47. João F. Ferreira; João L. Sobral. "ParC#: Parallel computing with C# in .Net". Paper presented in Parallel Computing Technologies 2005 (PaCT'05), LNCS 3606, 2005, 2005.
  48. Joost Visser; J.N. Oliveira; L.S. Barbosa; João F. Ferreira; Alexandra Mendes. "Camila Revival: VDM meets Haskell". Paper presented in Overture Workshop (co-located with FM'05), 2005., 2005.
Conference poster
  1. David R. Ferreira; João F. Ferreira; Mendes, Alexandra. "How are Contracts Used in Android Mobile Applications?". Paper presented in 46th International Conference on Software Engineering (ICSE 2024), 2024.
Edited book
  1. João F. Ferreira (771E-6592-C2AB); Alexandra Mendes; Claudio Menghi. Formal Methods Teaching, 4th International Workshop and Tutorial, FMTea 2021. Springer International Publishing. 2021.
    Published • 10.1007/978-3-030-91550-6
Journal article
  1. Monika di Angelo; Thomas Durieux; João F. Ferreira; Gernot Salzer. "Evolution of automated weakness detection in Ethereum bytecode: a comprehensive study". Empirical Software Engineering (2024): https://doi.org/10.1007/s10664-023-10414-8.
    10.1007/s10664-023-10414-8
  2. Lima, Rui; Ferreira, João F.; Mendes, Alexandra; Carreira, Carolina. "DifFuzzAR: automatic repair of timing side-channel vulnerabilities via refactoring". Automated Software Engineering 31 1 (2024): http://dx.doi.org/10.1007/s10515-023-00398-6.
    10.1007/s10515-023-00398-6
  3. Steve Dunne; João F. Ferreira; Mendes, Alexandra; Campbell Ritchie; Bill Stoddart; Frank Zeyda. "bGSL: An Imperative Language for Specification and Refinement of Backtracking Programs". Journal of Logical and Algebraic Methods in Programming (JLAMP) 130 100811 (2023):
    Published
  4. Henrique Botelho Guerra; João F. Ferreira; João Costa Seco. "Hoogle¿: Constants and ¿-abstractions in Petri-net-based Synthesis using Symbolic Execution (Artifact)". Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2023): https://drops.dagstuhl.de/opus/volltexte/2023/18260/.
    10.4230/DARTS.9.2.20
  5. Guerreiro, Sérgio Luís Proença Duarte ; João F. Ferreira; Tiago Fonseca; Miguel Correia. "Integrating an Academic Management System with Blockchain: A case study.". Blockchain: Research and Applications 100099 (2022):
    Published
  6. Julie Porteous; João F. Ferreira (771E-6592-C2AB); Alan Lindsay; Marc Cavazza. "Automated Narrative Planning Model Extension". Autonomous Agents and Multi-Agent Systems (JAAMAS) 35 2 (2021): 1-29.
    Published
  7. Mengda He; Viktor Vafeiadis; Shengchao Qin; João F. Ferreira. "GPS+: Reasoning about Fences and Relaxed Atomics". International Journal of Parallel Programming 46.6 (2018), 2018 (2018):
  8. João F. Ferreira; Alexandra Mendes. "A calculational approach to path-based properties of the Eisenstein–Stern and Stern–Brocot trees via matrix algebra". Journal of Logical and Algebraic Methods in Programming 85 5 (2016): 906-920. https://doi.org/10.1016%2Fj.jlamp.2015.11.004.
    10.1016/j.jlamp.2015.11.004
  9. João F. Ferreira; Cristian Gherghina; Guanhua He; Shengchao Qin; Wei-Ngan Chin. "Automated Verification of the FreeRTOS Scheduler in HIP/SLEEK". International Journal on Software Tools for Technology Transfer, Vol. 16, Issue 4, Pages 381–397, 2014 (2014):
  10. Roland Backhouse; Wei Chen; João F. Ferreira. "The algorithmics of solitaire-like games". Science of Computer Programming 78 11 (2013): 2029-2046. http://www.scopus.com/inward/record.url?eid=2-s2.0-84882450622&partnerID=MN8TOARS.
    10.1016/j.scico.2012.07.007
  11. Roland Backhouse; João F. Ferreira. "On Euclid's algorithm and elementary number theory". Science of Computer Programming 76 3 (2011): 160-180. http://www.scopus.com/inward/record.url?eid=2-s2.0-78751569989&partnerID=MN8TOARS.
    10.1016/j.scico.2010.05.006
Preprint
  1. David R. Ferreira; João F. Ferreira; Mendes, Alexandra. "Contract Usage and Evolution in Android Mobile Applications". 2024. https://arxiv.org/abs/2401.14244.
Activities

Supervision

Thesis Title
Role
Degree Subject (Type)
Institution / Organization
2023 - Current Exploring Seed Scheduling Strategies to Improve the Performance of Smart Contract Fuzzers
Supervisor
Universidade de Lisboa Instituto Superior Técnico, Portugal
2023 - Current Automated Invariant Generation to Improve the Scalability of Smart Contract Fuzzers
Supervisor
Universidade de Lisboa Instituto Superior Técnico, Portugal
2022 - Current Exploring Usable Security to Improve the Impact of Formal Verification
Supervisor of Carolina Carreira
Universidade de Lisboa Instituto Superior Técnico, Portugal
2022 - Current Extending EcoAndroid to Enable Better Energy-Efficient Mobile Applications
Supervisor of Miguel Jardim
Universidade de Lisboa Instituto Superior Técnico, Portugal
2022 - Current An Investigation Into User Expectations for Formal Verification
Co-supervisor of Mariana Soares
Universidade do Porto Faculdade de Engenharia, Portugal
2020 - Current Persistent and Lock-Free Data Structures for Non-Volatile Memories (provisional title)
Supervisor of André Martins
Universidade de Lisboa Instituto Superior Técnico, Portugal
2017 - 2024 The Only Human Factor: Formal Methods for Secure Password Composition Policy Design and Deployment
Supervisor of Saul Johnson
Teesside University, United Kingdom
2022 - 2023 Automated Repair of Persistence Bugs
Supervisor of Rodrigo Antunes
Universidade de Lisboa Instituto Superior Técnico, Portugal
2022 - 2023 Automatic Detection of Code Smells in Docker
Supervisor of Miguel Henriques
Universidade de Lisboa Instituto Superior Técnico, Portugal
2022 - 2023 Automatic Source Code Summarization using Transformers
Co-supervisor of Bernardo Lourenço
Universidade de Lisboa Instituto Superior Técnico, Portugal
2022 - 2023 Randomized Testing of File I/O Programs
Supervisor of Afonso Figueiredo
Universidade de Lisboa Instituto Superior Técnico, Portugal
2022 - 2023 Automatic Detection of Code Smells in Terraform
Supervisor of João Gonçalves
Universidade de Lisboa Instituto Superior Técnico, Portugal
2022 - 2023 Studying contract usage in Android mobile applications
Co-supervisor of David Ferreira
Universidade do Porto Faculdade de Engenharia, Portugal
2021 - 2023 HOOGLE*: Synthesis of Constants and ¿-abstractions in Petri net based Synthesis using symbolic execution
Supervisor of Henrique Guerra
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021/03/01 - 2022 Formal Verification of Persistent Concurrent Data Structures
Supervisor of Ricardo Graça
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 - 2022 Automated Program Repair of Arithmetic Programs in Dafny: Repairing Simple Arithmetic Programs
Supervisor of Hugo Martins
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 - 2022 Reasoning About Persistent and Concurrent Data Structures: Evaluating the Persistent Owicki-Gries Program Logic Through the Verification of a Persistent Queue
Supervisor of Francisco Mendes
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 - 2022 Extending the Concert Framework to Verify Solana Programs
Supervisor of João Gomes
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 - 2022 Formal Specification and Verification of the Lazy JellyFish Skip List: A Case Study in Iris on the Verification of Concurrent Maps with Version Control
Supervisor of Pedro Carrott
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 - 2022 GLITCH: Polyglot Code Smell Detection for Infrastructure as Code
Supervisor of Nuno Saavedra Silva
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 - 2022 A Comparative Study of Self-Supervised Learning Techniques for Functional Program Repair
Supervisor of André Silva
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 - 2022 Automatic Bug Prioritization of SmartBugs Reports using Machine Learning
Supervisor of João Dinis
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 - 2022 Smart Contract Migration Across Heterogeneous Blockchains
Co-supervisor of Tiago Domingues
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 - 2022 Extending a Hybrid Fuzzer for Smart Contracts with a Test-Suite Diagnosability Metric
Co-supervisor of Francisco Friande
Universidade do Porto Faculdade de Engenharia, Portugal
2020 - 2022 Persistence of Passwords in Bitwarden's Browser Extension: Unnecessary Retention and Solutions (provisional title)
Supervisor of Rafael Prates
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 Extending EcoAndroid with Automated Detection of Resource Leaks
Supervisor of Ricardo Pereira
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 Development of a Multi-Platform Whiteboard Application
Supervisor of Lucas Soares
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 Migrating Smart Contracts Across Heterogeneous Blockchains
Co-supervisor of Luís Abrunhosa
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 A Static Analysis-based Platform-as-Service to Improve the Quality of Smart Contracts
Supervisor of Dinis Araújo
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 Refining High-Level Specifications of Decentralized Finance Protocols to EVM bytecode using the K framework
Supervisor of Tiago Barbosa
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 Mechanizing Feng-Ying Quantum Hoare Logic in Coq for Formal Proofs of Programs with Quantum and Classical Variables
Supervisor of Mustafa Khalil
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 SmartPasswords: Increasing Password Managers' Usability by Generating Compliant Passwords
Supervisor of João Campos
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 On Usable Security and Verified Password Managers
Supervisor of Carolina Carreira
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 Formal Verification of Password Generation Algorithms used in Password Managers
Supervisor of Miguel Grilo
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 - 2021 Serious Game for Forest Fire Prevention
Co-supervisor of Ana Catarina Bernardo
Engenharia Informática (Master)
Universidade da Beira Interior, Portugal
2020 - 2021 Verification of Auction-Based Smart Contracts using the ConCert Framework
Supervisor of Diogo José Fonseca Patrício
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 - 2021 Prioritizing Facebook's Infer Static Analysis Tool Warnings
Supervisor of João Martins
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 - 2020/10 IntelliComment. An IDE Plugin to Improve Java Source Code Using Comments
Supervisor of Francisco Duarte
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 - 2020 Evaluating Password Strength Meters and Password Composition Policies using Guessing Attacks
Supervisor of David Pereira
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 - 2020 Formal Verification of Pointer-Based Splay Trees in Iris
Supervisor of Ricardo Graça
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 - 2020 Automatic Repair of Java Code with Timing Side-Channel Vulnerabilities
Supervisor of Rui Lima
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 - 2020 EcoAndroid: An Android Studio Plugin for Developing Energy-Efficient Java Mobile Applications
Supervisor of Ana Ribeiro
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 - 2020 Practical Detection of JavaScript Concurrency Bugs using Callback Graphs
Supervisor of Bernardo Furet
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 - 2020 Towards Automated Checking of Input Data Usage with Facebook Infer
Co-supervisor of Rui Ferreira
Universidade de Lisboa Instituto Superior Técnico, Portugal
2018/09/30 - 2019/10/30 A Study of Static Analysis Tools for Ethereum Smart Contracts
Supervisor
MEIC (Master)
Universidade de Lisboa Instituto Superior Técnico, Portugal
2016 - 2019 Planning Domain Model Acquisition from Narrative Synopses
Co-supervisor
Teesside University, United Kingdom
2014 - 2018 Visualising Natural Language: A Text-to-Scene Approach for recommendation and violations
Co-supervisor
Teesside University, United Kingdom
2012 - 2017 Reasoning about C11 Programs with Fences and Relaxed Atomics
Co-supervisor
Teesside University, United Kingdom
2013 - 2016 RuthR: A High-Level Reversible Programming Language
Supervisor
Teesside University, United Kingdom
2014 - 2015 Therapeutic game based on narrative generation techniques for Schizophrenia
Co-supervisor
École nationale d'ingénieurs de Brest, France

Event organisation

Event name
Type of event (Role)
Institution / Organization
2024 - 2024 Co-Chair of The Programming Languages Mentoring Workshop (PLMW) @ SPLASH 2024 (2024 - 2024)
Workshop (Co-organisor)
2022 - 2024 Proceedings co-chair of 46th International Conference on Software Engineering (ICSE 2024) (2022 - 2024)
2023 - 2023 Co-Chair of The Programming Languages Mentoring Workshop (PLMW) @ SPLASH 2023 (2023 - 2023)
Workshop (Co-organisor)
2022 - 2022 Co-chair of PhD-iFM'22, the PhD Symposium at the 17th International Conference on integrated Formal Methods (iFM) (2022 - 2022)
Conference (Co-organisor)
2022 - 2022 Co-chair of RSDA22: 7th IEEE International Workshop on Resiliency, Security, Defenses and Attacks (2022 - 2022)
2020/10/01 - 2021/03/07 Site Director of Lisbon Site of Southwestern Europe Regional Contest (SWERC) 2020-2021 (2020 - 2021/03/07)
Call (President of the Organising Committee)
2020 - 2021/02/20 Coordinator of MIUP 2020 (Inter-University Programming Marathon) (2020 - 2021/02/20)
Call (President of the Organising Committee)
2021 - 2021 Co-chair of Formal Methods Teaching Workshop and Tutorial (FMTea'21) (2021 - 2021)
Conference (Co-organisor)
2021 - 2021 Co-chair of RSDA21: 6th IEEE International Workshop on Reliability and Security Data Analysis (2021 - 2021)
Conference (Co-organisor)
2019 - 2019 Scientific Coordinator of MIUP 2019 (Inter-University Programming Marathon) (2019/10/12 - 2019/10/12)
Call (Member of the Scientific Committee)
2017 - 2017 Organizer of the Northern Concurrency Working Group Meeting, held at Teesside University, 13th of January 2017 (https://ncwg.github.io/2017) (2013)
Workshop (Co-organisor)

Jury of academic degree

Topic
Role
Candidate name (Type of degree)
Institution / Organization
2022 Improving the comprehension of model checkers' results using natural language (Pre-thesis)
(Thesis) Main arguer
Ezequiel José Veloso Ferreira Moreira (PhD)
Universidade do Minho, Portugal
2021 Lightweight Trustworthy High-Level Software Design
(Thesis) Main arguer
Liu Chong (PhD)
Universidade do Minho, Portugal
2021 Blockchain Interoperability (Pre-thesis)
(Thesis) Arguer
Rafael Belchior (PhD)
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019/11/14 Secure Storage with a Small, Verified TCB
(Thesis) Main arguer
Afonso Tinoco de Faria Cecílio dos Santos (Master)
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019/11/14 Applying Multi-Objective Test Selection for Continuous Integration at OutSystems
(Thesis) Main arguer
Daniel Duarte de Carvalho Brojo Correia (Master)
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019/11/13 A Product Family for Digital Humanities Repositories
(Thesis) Main arguer
Nuno Manuel Bagulho Gonçalves (Master)
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019/09/30 Improving Software Fault Prediction Using a Data-Driven Approach
(Thesis) Main arguer
André Sobral Gonçalves (Master)
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019/09/11 Extremely Imbalanced Smell-based Defect Prediction
(Thesis) Main arguer
Bruno Miguel Sotto-Mayor de Castro Machado (Master)
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019/05/16 Análise crítica da qualidade dos testes em projetos FLOSS
(Thesis) Main arguer
Djamila Marisa Pascoal Quipipa Caetano (Master)
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 Program Synthesis with Constraint Solving for the OutSystems Language
(Thesis) Main arguer
Rodrigo André Moreira Bernardo (Master)
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 Single-assignment Program Verification
(Thesis) Arguer
Cláudio Belo Lourenço (PhD)
Universidade do Minho, Portugal

Association member

Society Organization name Role
2017 - Current Formal Methods Europe (FME) Teaching Committee Member
2011 - Current Association for Computing Machinery Professional Member

Committee member

Activity description
Role
Institution / Organization
2019 - Current Conference program committee member - 3rd World Congress on Formal Methods (FM 2019), 2019
Member
2019 - Current Conference program committee member - Mathematics of Program Construction (MPC 2019), 2019
Member
2019 - Current Conference program committee member - International Conference on Knowledge Capture (K-CAP 2019), 2019
Member
2019 - Current Conference program committee member - Brazilian Symposium on Programming Languages (SBLP 2019), 2019
Member
2019 - Current Conference program committee member - Formal Methods Teaching Workshop and Tutorial (FMTea 2019), 2019
Member
2019 - Current Conference program committee member - 9th International Workshop on Open Community approaches to Education, Research and Technology (OpenCERT 2019), 2019
Member
2018 - Current Conference program committee member - Brazilian Symposium on Programming Languages (SBLP 2018), 2018
Member
2018 - Current Conference program committee member - The 31st International Florida Artificial Intelligence Research Society Conference (FLAIRS-31), 2018
Member
2017 - Current Conference program committee member - Brazilian Symposium on Programming Languages (SBLP 2017), 2017
Member
2017 - Current Conference program committee member - The 30th International Florida Artificial Intelligence Research Society Conference (FLAIRS-30), 2017
Member
2016 - Current Conference program committee member - The 29th International Florida Artificial Intelligence Research Society Conference (FLAIRS-29), 2016
Member
2016 - Current Conference program committee member - Brazilian Symposium on Programming Languages (SBLP 2016), 2016
Member
2015 - Current Conference program committee member - Brazilian Symposium on Programming Languages (SBLP 2015), 2015
Member
2014 - Current Conference program committee member - INForum, Simpósio de Informática, 2014
Member
2014 - Current Conference program committee member - Brazilian Symposium on Programming Languages (SBLP 2014), 2014
Member
2013 - Current Conference program committee member - 7th International Workshop on Foundations and Techniques for Open Source Software Certification (OpenCert2013), 2013
Member
2013 - Current Conference program committee member - Brazilian Symposium on Programming Languages (SBLP 2013), 2013
Member
2012 - Current Conference program committee member- Brazilian Symposium on Programming Languages (SBLP 2012), 2012
Member
2012 - Current Conference program committee member - 6th International Symposium on Theoretical Aspects of Software Engineering (TASE 2012), 2012
Member
2024 - 2024 Program Committee Member of 4th International Workshop on Artificial Intelligence in Software Testing (AIST)
2024 - 2024 Program Committee Member of International Conference on Formal Methods in Software Engineering (FormaliSE 2024)
2024 - 2024 Program Commitee Member of International Conference on Software Engineering(ICSE) Doctoral Symposium (DS)
2024 - 2024 Program Committee Member of the IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) Early Research Achievement (ERA) Track
2022 - 2024 Conference program committee member - 46th International Conference on Software Engineering (ICSE 2024), 2024
2023 - 2023 Program Committee Member of 3rd International Workshop on Artificial Intelligence in Software Testing (AIST)
2023 - 2023 Program Commitee Member of the IEEE/ACM International Conference on Automated Software Engineering (ASE 2023) NIER Track
2022 - 2023 Conference program committee member - Thirty-Seventh AAAI Conference on Artificial Intelligence (AAAI-23), 2023
2022 - 2022 Conference program committee member (Posters and Demos) - The Web Conference (TheWebConf 2022), 2022
2022 - 2022 Program Committee Member of 2nd International Workshop on Artificial Intelligence in Software Testing (AIST)
2021 - 2021 Program Committee Member of 1st International Workshop on Artificial Intelligence in Software Testing (AIST)

Conference scientific committee

Conference name Conference host
2022 - 2022 2nd International Workshop on Artificial Intelligence in Software Testing (AIST)
2021 - 2021 1st International Workshop on Artificial Intelligence in Software Testing (AIST)
2021 - 2021 The Eleventh International Conference on Knowledge Capture (K-CAP)
2019 - 2019 International Joint Conference on Artificial Intelligence (IJCAI 2019), 2019
2019 - 2019 3rd World Congress on Formal Methods (FM 2019), 2019
2019 - 2019 Mathematics of Program Construction (MPC 2019), 2019
2019 - 2019 International Conference on Knowledge Capture (K-CAP 2019), 2019
2019 - 2019 Brazilian Symposium on Programming Languages (SBLP 2019), 2019
2019 - 2019 Formal Methods Teaching Workshop and Tutorial (FMTea 2019), 2019
2019 - 2019 9th International Workshop Open Community approaches to Education, Research and Technology (OpenCERT 2019), 2019
2018 - 2018 Brazilian Symposium on Programming Languages (SBLP 2018), 2018
2018 - 2018 The 31st International Florida Artificial Intelligence Research Society Conference (FLAIRS-31), 2018
2017 - 2017 Ninth International Conference on Knowledge Capture (K-CAP 2017), 2017
2017 - 2017 ACM Technical Symposium on Computing Science Education (SIGCSE 2017), 2017
2017 - 2017 Brazilian Symposium on Programming Languages (SBLP 2017), 2017
2017 - 2017 The 30th International Florida Artificial Intelligence Research Society Conference (FLAIRS-30), 2017
2016 - 2016 ACM Interactive Surfaces and Spaces (ISS 2016), 2016
2016 - 2016 10th International Symposium on Theoretical Aspects of Software Engineering (TASE 2016), 2016
2016 - 2016 T29th International Florida Artificial Intelligence Research Society Conference (FLAIRS-29), 2016
2016 - 2016 Brazilian Symposium on Programming Languages (SBLP 2016), 2016
2015 - 2015 17th International Conference on Formal Engineering Methods (ICFEM 2015), 2015
2015 - 2015 Brazilian Symposium on Programming Languages (SBLP 2015), 2015
2014 - 2014 INForum, Simpósio de Informática, 2014
2014 - 2014 Brazilian Symposium on Programming Languages (SBLP 2014), 2014
2013 - 2013 7th International Workshop on Foundations and Techniques for Open Source Software Certification (OpenCert2013), 2013
2013 - 2013 Brazilian Symposium on Programming Languages (SBLP 2013), 2013
2012 - 2012 14th International Conference on Formal Engineering Methods (ICFEM 2012), 2012
2012 - 2012 Mathematics of Program Construction (MPC 2012), 2012
2012 - 2012 Brazilian Symposium on Programming Languages (SBLP 2012), 2012
2012 - 2012 6th International Symposium on Theoretical Aspects of Software Engineering (TASE 2012), 2012
2011 - 2011 Conference on Intelligent Computer Mathematics (CICM 2011), 2011
2011 - 2011 13th International Conference on Formal Engineering Methods (ICFEM 2011), 2011
2011 - 2011 5th IEEE International Symposium on Theoretical Aspects of Software Engineering (TASE 2011), 2011
2011 - 2011 5th International Workshop on Harnessing Theories for Tool Support in Software (TTSS 2011), 2011
2010 - 2010 ACM SIGPLAN 6th Workshop on Generic Programming (WGP 2010), 2010

Evaluation committee

Activity description
Role
Institution / Organization Funding entity
2022 - 2023 Evaluator/Reviewer for international R&D projects/grants: Natural Sciences and Engineering Research Council of Canada (NSERC)
Evaluator
2022 - 2022 Evaluator/Reviewer for international R&D projects/grants: The Czech Science Foundation (GACR)
2022 - 2022 Evaluator/Reviewer for international R&D projects/grants: Hungarian National Research, Development and Innovation Office (NKFIH)

Journal scientific committee

Journal title (ISSN) Publisher
2022 - 2022 Journal of Systems and Software (0164-1212) Elsevier
2022 - 2022 IEEE Transactions on Software Engineering (0098-5589) IEEE Computer Society
2020 - 2022 Empirical Software Engineering (1382-3256) Springer Publishing
2021 - 2021 IEEE Transactions on Computers (0018-9340 ) IEEE Computer Society
2016 - 2016 Journal of Logical and Algebraic Methods in Programming, Elsevier
2013 - 2013 International Journal on Software Tools for Technology Transfer, Springer
2012 - 2012 Formal Aspects of Computing, Springer
2010 - 2010 Journal of Functional Programming, Cambridge University Press

Other jury / evaluation

Activity description Institution / Organization
2019/07/25 - Current Examiner of 1st year PhD examination (João Reis) Universidade da Beira Interior, Portugal
2018 - Current Arguente de projecto de dissertação (mestrado) Universidade de Lisboa Instituto Superior Técnico, Portugal
2015 - Current Supervised Work Experience: Industrial Placements at Accenture UK Teesside University, United Kingdom
2011 - 2016 Final Year Project Supervision Teesside University, United Kingdom
Distinctions

Title

2013 Fellow of the Higher Education Academy, United Kingdom (Recognition reference: PR059403)
Higher Education Academy, United Kingdom

Other distinction

2022 Excellency in Teaching (Docente Excelente) 2021/2022, Instituto Superior Técnico
Universidade de Lisboa Instituto Superior Técnico, Portugal
2021 Excellency in Teaching (Docente Excelente) 2020/2021, Instituto Superior Técnico
Universidade de Lisboa Instituto Superior Técnico, Portugal
2020 Excellency in Teaching (Docente Excelente) 2019/2020, Instituto Superior Técnico
Universidade de Lisboa Instituto Superior Técnico, Portugal
2019 Excellency in Teaching (Docente Excelente) 2018/2019, Instituto Superior Técnico
Universidade de Lisboa Instituto Superior Técnico, Portugal
2017 Finalist in "The Star Awards 2017" in the category "Innovation and Enterprise", due to "work towards research results that are shared with real-world companies, thus having impact''
Teesside University, United Kingdom
2011 6-year postdoctoral grant from FCT (I declined this opportunity to take the position at Teesside University)
Fundação para a Ciência e a Tecnologia, Portugal
2006 4-year PhD grant from FCT
Fundação para a Ciência e a Tecnologia, Portugal