Over the years I lectured 23 different courses, 12 BSc, 8 MSc and 3 PhD courses.
Served on a total of 114 course editions (between 1992 and 2023), of which I coordinated 87 course editions.
Bachelor Courses
- Programming Fundamentals (1st year, LEFT Técnico Lisboa) [ Lecture Notes and Supporting Code]
- Introductory Programming (1st year, LEI FCT NOVA, course co-creator)
- Introduction to Computers and Programming (1st year, all FCT NOVA Engineering Programs)
- Data Structures and Algorithms (2th year, LEI FCT NOVA)
- Algorithms and Data Structures I (2nd year, LEI FCT NOVA)
- Theory of Computation (2nd year, LEI FCT NOVA, course creator)
- Programming I (1st year, LEI FCT NOVA)
- Programming Languages (2nd year, LEI FCT NOVA)
- Compilation Techniques (5th year, LEI elective FCT NOVA)
- Formal Languages and Automata (4th year, LEI FCT NOVA)
- Compilers (4th year, LEI FCT NOVA)
- Programming Languages II (4th year, LEI FCT NOVA)
Master Courses
- Interpretation and Compilation of Languages (4th year, MEI FCT NOVA, course creator)
- Foundations of Component Technology (Pre-Bologna MEI FCT NOVA, course creator)
- Software Construction and Verification (4th year, MEI FCT NOVA, course creator)
- Verification Logics ( 4th year, MEI FCT NOVA)
- Advanced Topics in Programming Languages (Pre-Bologna MEI FCT NOVA)
- Software Security (MSc elective, MEI elective FCT NOVA, course creator)
- Languages and Models for Concurrency and Security (Pre-Bologna MEI FCT NOVA, course creator)
- Data-Centric Web App Construction (MBA elective NOVA SBE, course creator)
- Programming Languages (MSc elective, MEIC Técnico Lisboa)
PhD Courses
- Scientific and Technical Communication (PhD INF FCT NOVA)
- Foundations of Programming Languages (PhD INF FCT NOVA)
- Advanced Topics in Software Systems (PhD INF FCT NOVA)