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)
Taught in the BSc in Computer Science Engineering, BSc in Physics and Applications, and BSc in Mathematics and Applications. ↩︎