Teaching

I have experience in teaching at all Higher Education levels and in a variety of modules on software engineering, algorithms, introductory programming, programming languages, and mathematics.

For more details, see below.

PhD Students

  • Álvaro Silva, started 2024 (CMU Portugal Affiliated Ph.D. Program – with Ruben Martins, CMU)
  • Alexandre Abreu, started 2023
  • Nuno Saavedra, started 2023 (co-supervised with João Ferreira, IST)
  • Carolina Carreira, started 2023 (CMU Portugal Program – co-supervised with João Ferreira, IST and Nicolas Christin, CMU)
  • Saul Johnson, finished in 2024 (co-supervised with João Ferreira, IST and Julien Cordry, Teesside University)
  • Jamie Matthews, finished in 2020 (co-supervised with Julie Porteous, Teesside University and Fred Charles, Teesside University)

Courses

I currently teach in the Master in Informatics and Computing Engineering and in the BSc in Informatics and Computing Engineering.

University of Porto

  • (Shared Module Leadership) Programming Fundamentals (Python), BSc (Fall 2024)
  • (Shared Module Leadership) Formal Methods for Critical Systems (Dafny), MSc (Spring 2024, 2023)
  • Programming (C++), BSc (Spring 2024, 2023)
  • Functional and Logic Programming (Haskell, Prolog), BSc (Fall 2023, 2022)
  • Theory of Computation, BSc (Spring 2022)

University of Beira Interior

  • (Module Leader) Programming, BSc (Fall 2021, 20201)
  • (Module Leader) Computational Logic BSc (Spring 2021, Fall 2020)
  • Computational Logic, BSc (Fall 2019)
  • (Module Leader) Programming Paradigms, MSc (Spring 2020)
  • (Module Leader) Programming I, BSc (Spring 2020, 2019)
  • Language Processing, BSc (Fall 2019)
  • Distributed Systems, BSc (Spring 2019)

Teesside University

  • (Module Leader) Introduction to Mathematics, BSc (Spring 2018, 2017, 2016, 2015)
  • Network Scripting, BSc (Fall 2017, 2016, 2015)
  • Java Programming 2, BSc, (Spring 2018, 2017, 2016)
  • Java Programming 1, BSc, (Fall 2017, 2016, 2015)
  • Cloud and Web Services, BSc (Fall 2015)
  • Masters Project, MSc, Spring 2017 (Supervison of 2 students)
  • Final Year Project, BSc, Spring 2017 (Supervison of 5 students’ projects)
  • Final Year Project, BSc, Spring 2016 (Supervison of 10 students’ projects)

York St John University

  • (Module Leader) Software Engineering, BSc (Fall 2014)
  • (Module Leader) Mathematics for Computer Science, BSc (Fall 2014, 2013)
  • (Module Leader) Introduction to Programming I, BSc (Fall 2014, 2013)
  • (Module Leader) Introduction to Programming II, BSc (Spring 2014)

The University of Nottingham

  • Algorithmic Problem Solving, BSc (Fall 2009, 2008, 2007, 2006)
  • Mathematics for Computer Scientists, BSc (Fall 2009, 2008, 2007, 2006)

  1. Taught in the BSc in Computer Science Engineering, BSc in Physics and Applications, and BSc in Mathematics and Applications. ↩︎