Research interests
I am interested in functional programming languages, particularly Haskell and Agda. My research focuses in datatype-generic programming.
All my publications are also available in a single BibTeX file.
Jump to: refereed publications, reports, code, talks, events, program committee membership, teaching.
Refereed publications
2015
- Michael D. Adams, Andrew Farmer, and José Pedro Magalhães. Optimizing SYB Traversals Is Easy! In Science of Computer Programming, Volume 112, Part 2, Pages 170–193. Extended version of the PEPM'14 paper. [ sciencedirect.com ] [ pdf ]
- José Pedro Magalhães and Andres Löh. Hierarchy in Generic Programming Libraries. In Mathematics of Program Construction, Volume 9129 of the series Lecture Notes in Computer Science. [ springer.com ] [ pdf ]
2014
- José Pedro Magalhães and Hendrik Vincent Koops. Functional Generation of Harmony and Melody. Accepted for publication at the Second ACM SIGPLAN International Workshop on Functional Art, Music, Modelling and Design (FARM'14), 2014. [ bib ] [ colour pdf ] [ greyscale pdf ] [ samples ] [ code ]
- José Pedro Magalhães. Generic Programming with Multiple Parameters. In Proceedings of the Twelfth International Symposium on Functional and Logic Programming (FLOPS'14), 2014. [ springer.com ] [ bib ] [ colour pdf ] [ greyscale pdf ]
- Michael D. Adams, Andrew Farmer, and José Pedro Magalhães. Optimizing SYB Is Easy! In Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation (PEPM'14), 2014. Best paper award. [ acm.org ] [ bib ] [ pdf ]
- José Pedro Magalhães and Andres Löh. Generic Generic Programming. In Practical Aspects of Declarative Languages (PADL'14), 2014. [ springer.com ] [ bib ] [ colour pdf ] [ greyscale pdf ] [ code ]
2013
- W. Bas de Haas, José Pedro Magalhães, Frans Wiering, and Remco C. Veltkamp. HarmTrace: Automatic Functional Harmonic Analysis. In Computer Music Journal, Winter 2013, Vol. 37, No. 4, Pages 37-53. [ mitpressjournals.org ] [ bib ] [ pdf ]
- Ralf Hinze, José Pedro Magalhães, Nicolas Wu. A Duality of Sorts. In The Beauty of Functional Code: Essays Dedicated to Rinus Plasmeijer on the Occasion of His 61st Birthday, LNCS 8106, pp. 151–167, Springer, 2013. [ springer.com ] [ bib ] [ pdf ]
- Hendrik Vincent Koops, José Pedro Magalhães, and W. Bas de Haas. A Functional Approach To Automatic Melody Harmonisation. In 1st ACM SIGPLAN Workshop on Functional Art, Music, Modeling and Design (FARM'13), 2013. [ acm.org ] [ bib ] [ colour pdf ] [ greyscale pdf ] [ code ] [ MIDI samples ]
- Jeroen Bransen and José Pedro Magalhães. Generic Representations of Tree Transformations. In 9th ACM SIGPLAN Workshop on Generic Programming (WGP'13), 2013. [ acm.org ] [ bib ] [ colour pdf ] [ greyscale pdf ] [ code ]
- Nicolas Wu, José Pedro Magalhães, Jeroen Bransen, and Wouter Swierstra. Pure and Lazy Lambda Mining: An Experience Report. In 24th Symposium on Implementation and Application of Functional Languages (IFL'12), 2013. [ springer.com ] [ bib ] [ colour pdf ]
- José Pedro Magalhães. Optimisation of Generic Programs through Inlining. In 24th Symposium on Implementation and Application of Functional Languages (IFL'12), 2013. [ springer.com ] [ bib ] [ colour pdf ] [ greyscale pdf ]
2012
- José Pedro Magalhães. Less Is More: Generic Programming Theory and Practice. PhD thesis, Universiteit Utrecht, 2012. [ bib ] [ pdf ] [ summary ]
- Ralf Hinze, Daniel W.H. James, Thomas Harper, Nicolas Wu, and José Pedro Magalhães. Sorting with Bialgebras and Distributive Laws. In Proceedings of the 8th ACM SIGPLAN Workshop on Generic Programming (WGP'12), pp. 69–80, ACM, 2012. [ acm.org ] [ bib ] [ pdf ] [ code ]
- José Pedro Magalhães. The Right Kind of Generic Programming. In Proceedings of the 8th ACM SIGPLAN Workshop on Generic Programming (WGP'12), pp. 13–24, ACM, 2012. [ acm.org ] [ bib ] [ colour pdf ] [ greyscale pdf ]
- Dimitrios Vytiniotis, Simon Peyton Jones, and José Pedro Magalhães. Equality proofs and deferred type errors: a compiler pearl. In Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming (ICFP'12), pp. 341–352, ACM, 2012. [ acm.org ] [ bib ] [ pdf ]
- W. Bas de Haas, José Pedro Magalhães, and Frans Wiering. Improving Audio Chord Transcription by Exploiting Harmonic and Metric Knowledge. In Proceedings of the 13th International Society for Music Information Retrieval Conference (ISMIR'12), pp. 295–300, FEUP Edições, 2012. [ bib ] [ pdf ]
- José Pedro Magalhães and Andres Löh. A Formal Comparison of Approaches to Datatype-Generic Programming. In Proceedings Fourth Workshop on Mathematically Structured Functional Programming (MSFP '12), pp. 50–67, 2012. [ bib ] [ pdf ] [ Agda code ]
- Brent A. Yorgey, Stephanie Weirich, Julien Cretin, Simon Peyton Jones, Dimitrios Vytiniotis, and José Pedro Magalhães. Giving Haskell a Promotion. In Proceedings of the 8th ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI'12), pp. 53–66, ACM, 2012. [ bib ] [ pdf ]
2011
- W. Bas de Haas, José Pedro Magalhães, Remco C. Veltkamp, and Frans Wiering. HarmTrace: Improving Harmonic Similarity Estimation Using Functional Harmony Analysis. In Proceedings of the 12th International Society for Music Information Retrieval Conference (ISMIR'11), pp. 67–72, 2011. [ bib ] [ pdf ]
- Andres Löh and José Pedro Magalhães. Generic Programming with Indexed Functors. In Proceedings of the 7th ACM SIGPLAN Workshop on Generic Programming (WGP'11), pp. 1–12, ACM, 2011. [ acm.org ] [ bib ] [ colour pdf ] [ greyscale pdf ]
- José Pedro Magalhães and Johan Jeuring. Generic Programming for Indexed Datatypes. In Proceedings of the 7th ACM SIGPLAN Workshop on Generic Programming (WGP'11), pp. 37–46, ACM, 2011. [ acm.org ] [ bib ] [ colour pdf ] [ greyscale pdf ] [ mp4 ]
- José Pedro Magalhães and W. Bas de Haas. Functional Modelling of Musical Harmony: an Experience Report. In Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming (ICFP'11), pp. 156–162, ACM, 2011. [ hackage.haskell.org ] [ acm.org ] [ bib ] [ colour pdf ] [ greyscale pdf ] [ mp4 ]
2010
- Martijn van Steenbergen, José Pedro Magalhães, and Johan Jeuring. Generic selections of subexpressions. In Proceedings of the 6th ACM SIGPLAN workshop on Generic programming (WGP'2010), pp. 37–48, ACM, 2010. [ hackage.haskell.org ] [ acm.org ] [ bib ] [ colour pdf ] [ greyscale pdf ] [ mov ] [ vimeo.com ]
- José Pedro Magalhães, Atze Dijkstra, Johan Jeuring, and Andres Löh. A generic deriving mechanism for Haskell. In Proceedings of the 3rd ACM Haskell symposium on Haskell (Haskell'2010), pp. 37–48, ACM, 2010. [ hackage.haskell.org ] [ acm.org ] [ bib ] [ colour pdf ] [ greyscale pdf ] [ mov ] [ vimeo.com ]
- Thomas van Noort, Alexey Rodriguez Yakushev, Stefan Holdermans, Johan Jeuring, Bastiaan Heeren, and José Pedro Magalhães. A Lightweight Approach to Datatype-generic Rewriting. Journal of Functional Programming, 20: 375–413, Cambridge University Press, 2010. [ hackage.haskell.org ] [ journals.cambridge.org ] [ bib ] [ pdf ]
- José Pedro Magalhães, Stefan Holdermans, Johan Jeuring and Andres Löh. Optimizing Generics Is Easy! In Proceedings of the 2010 ACM SIGPLAN workshop on Partial Evaluation and Program Manipulation (PEPM'2010), pp. 33–42, ACM, 2010. [ bib ] [ colour pdf ] [ greyscale pdf ]
- Johan Jeuring, José Pedro Magalhães and Bastiaan Heeren. Generic Programming for Domain Reasoners. In Proceedings of the 10th Symposium on Trends in Functional Programming (TFP'2009), pp. 113–128, Intellect, 2010. [ bib ] [ pdf ]
2009
- Johan Jeuring, Sean Leather, José Pedro Magalhães, and Alexey Rodriguez Yakushev. Libraries for generic programming in Haskell. In Pieter Koopman, Rinus Plasmeijer, and Doaitse Swierstra, editors, Proceedings of the Sixth Advanced Functional Programming School, AFP'08, May 19-24 2008, Center Parcs "Het Heijderbos", The Netherlands, LNCS 5832, pages 165–229, 2009, Springer-Verlag. [ springerlink.com ] [ bib ] [ pdf ]
- Rene Klein Gunnewiek, Robert-Paul Berretty, Bart Barenbrug and José Pedro Magalhães. Coherent Spatial and Temporal Occlusion Generation. In Proceedings of the SPIE Volume 7237, Stereoscopic Displays and Applications XX, 2009. [ spiedl.aip.org ] [ bib ] [ pdf ]
2007
- José Pedro Correia, José Pedro Magalhães, and Jorge Sousa Pinto. Formally verifying imperative programs. In P. Henriques, V. Santos, and S. Sousa, editors, Proceedings of the Conference on Compilers, Related Technologies and Applications (CoRTA'2007), pages 74–85, 2007. [ bib ] [ pdf ]
Reports
2015
- Jeroen Bransen and José Pedro Magalhães. Generic Representations of Tree Transformations. Extended version of the WGP paper, 2015. [ pdf ]
2014
- José Pedro Magalhães. Models of Structure in Music (MoStMusic). Marie Sklodowska-Curie Individual Fellowship application, 2014. [ pdf ]
2013
- Andres Löh and José Pedro Magalhães. Everything you always wanted to know about Doaitse. Written for the retirement symposium of Doaitse Swierstra, 2013. [ pdf ]
2012
- W. Bas de Haas, José Pedro Magalhães, Dion ten Heggeler, Gijs Bekenkamp, and Tijmen Ruizendaal. Chordify: Chord transcription for the masses. Presented at the 13th International Conference on Music Information Retrieval (ISMIR), 2012. [ pdf ]
2011
- W. Bas de Haas, José Pedro Magalhães, Frans Wiering, and Remco C. Veltkamp. HarmTrace: Automatic Functional Harmonic Analysis. Technical Report UU-CS-2011-023, Department of Information and Computing Sciences, Universiteit Utrecht, 2011. [ cs.uu.nl ] [ bib ] [ pdf ]
- José Pedro Magalhães and Johan Jeuring. Generic Programming for Indexed Datatypes. Technical Report UU-CS-2011-021, Department of Information and Computing Sciences, Universiteit Utrecht, 2011. [ cs.uu.nl ] [ bib ] [ pdf ]
- José Pedro Magalhães and W. Bas de Haas. Experience Report: Functional Modelling of Musical Harmony. Technical Report UU-CS-2011-007, Department of Information and Computing Sciences, Universiteit Utrecht, 2011. [ cs.uu.nl ] [ bib ] [ pdf ]
2010
- Martijn van Steenbergen, José Pedro Magalhães, and Johan Jeuring. Generic selections of subexpressions. Technical Report UU-CS-2010-016, Department of Information and Computing Sciences, Universiteit Utrecht, 2010. [ cs.uu.nl ] [ bib ] [ pdf ]
- José Pedro Magalhães, Atze Dijkstra, Johan Jeuring, and Andres Löh. A generic deriving mechanism for Haskell. Technical Report UU-CS-2010-017, Department of Information and Computing Sciences, Universiteit Utrecht, 2010. [ cs.uu.nl ] [ bib ] [ pdf ]
- Thomas van Noort, Alexey Rodriguez Yakushev, Stefan Holdermans, Johan Jeuring, Bastiaan Heeren, and José Pedro Magalhães. A Lightweight Approach to Datatype-generic Rewriting. Technical Report UU-CS-2010-008, Department of Information and Computing Sciences, Universiteit Utrecht, 2010. [ cs.uu.nl ] [ bib ] [ pdf ]
2009
- José Pedro Magalhães, Stefan Holdermans, Johan Jeuring and Andres Löh. Optimizing Generics Is Easy! Technical Report UU-CS-2009-022, Department of Information and Computing Sciences, Universiteit Utrecht, 2009. [ cs.uu.nl ] [ bib ] [ pdf ]
- Johan Jeuring, José Pedro Magalhães and Bastiaan Heeren. Generic Programming for Domain Reasoners. Technical Report UU-CS-2009-016, Department of Information and Computing Sciences, Universiteit Utrecht, 2009. [ cs.uu.nl ] [ bib ] [ pdf ]
2008
- Johan Jeuring, Sean Leather, José Pedro Magalhães, and Alexey Rodriguez Yakushev. Libraries for generic programming in Haskell. Technical Report UU-CS-2008-025, Department of Information and Computing Sciences, Universiteit Utrecht, 2008. [ cs.uu.nl ] [ bib ] [ pdf ]
2007
- José Pedro Magalhães. Occluded video retrieval—using temporal information for automatic generation of an occlusion layer from 2D content for 3D rendering, 2007. Final internship report, Minho University (confidential until 2012). [ bib ]
Code
I have been the maintainer (possibly with other people) of the following projects:- HarmTrace: Harmony Analysis and Retrieval of Music with Type-level Representations of Abstract Chords Entities. [ homepage ] [ package ]
- Scrap Your Boilerplate (SYB): a popular generic programming library in Haskell. [ homepage ] [ package ] [ git ] [ bug tracker ]
- Instant generics: a generic programming library with a sum of products view in Haskell. [ homepage ] [ package ] [ git ]
- gdiff-ig: Generic diff for the instant-generics library. [ package ] [ svn ]
- Generic Deriving: generic programming library for generalized deriving. [ homepage ] [ package ] [ git ]
- Guarded rewriting: a generic rewriting library supporting preconditions. [ homepage ] [ package ] [ svn ]
- Regular: a generic programming library for regular datatypes in Haskell. [ homepage ] [ package ] [ git ]
- Regular-extras: additional functions for Regular. [ homepage ] [ package ] [ git ]
- Rewriting: a generic rewriting library for regular datatypes. [ homepage ] [ package ] [ svn ]
- Multirec: a generic programming library for families of recursive datatypes in Haskell. [ homepage ] [ package ] [ git ]
Talks
2021
- ICFP Social Events — Ask Me Anything on Academic Move. ICFP 2021 Social Events, Online, 24/09/2021. [ youtube ]
2018
- A Generic Deriving Mechanism for Haskell. Haskell Singapore Meetup, Singapore, 07/06/2018. [ pdf ]
2016
- A Generic Deriving Mechanism for Haskell. International Summer School on Metaprogramming, Cambridge, United Kingdom, 08/08/2016. [ pdf ]
- A Formal Comparison of Approaches to Datatype-Generic Programming. International Summer School on Metaprogramming, Cambridge, United Kingdom, 08/08/2016. [ pdf ]
2015
- Functional Modelling of Musical Harmony. Software Engineering course on Functional Poogramming, Oxford, United Kingdom, 04/02/2015. [ pdf ]
- Advanced Functional Programming in Industry. BOB 2015, Berlin, Germany, 23/01/2015. [ pdf ]
2014
- Functional Modelling of Musical Harmony And Its Applications. 72nd IFIP 2.1 Working Group meeting, Vermont, United States, 21/11/2014. [ pdf ]
- Advanced Functional Programming in Industry. FP Days 2014, London, United Kingdom, 21/11/2014. [ pdf ]
- #5462: Deriving clause for arbitrary classes. HacBerlin 2014, Berlin, Germany, 28/09/2014. [ pdf ]
- Chordify: Advanced Functional Programming for Fun and Profit. HacBerlin 2014, Berlin, Germany, 27/09/2014. [ pdf ]
- Functional Modelling of Musical Harmony. Software Engineering course on Functional Poogramming, Oxford, United Kingdom, 17/09/2014. [ pdf ]
- Functional Generation of Harmony and Melody. Workshop on Functional Art, Music, Modeling and Design, Gothenburg, Sweden, 06/09/2014. [ pdf ] [ youtube ]
- Generic Generation of Constrained Random Data. 71st IFIP 2.1 Working Group meeting, Zeegse, the Netherlands, 25/03/2014. [ pdf ]
- Chordify: Advanced Functional Programming for Fun and Profit. Fun in the Afternoon 2014, Facebook, London, 12/03/2014. [ pdf ]
- Generic Generic Programming. Practical Aspects of Declarative Languages, San Diego, 21/01/2014. [ pdf ]
- Advanced Functional Programming for Fun and Profit. Dutch Functional Programming Day 2014, University of Amsterdam, 10/01/2014. [ pdf ]
2013
- Chordify. Demo at the Workshop on Functional Art, Music, Modeling and Design, 28/09/2013. [ pdf ] [ youtube ]
- Generic Representations of Tree Transformations. Workshop on Generic Programming, 28/09/2013. [ pdf ]
- Advanced Functional Programming for Fun and Profit. Utrecht Applied Functional Programming Summer School, 30/08/2013. [ pdf ]
- Generic Generic Programming. 70th IFIP 2.1 Working Group meeting, Ulm, 01/07/2013. [ pdf ]
2012
- Functional Modelling of Musical Harmony and its Applications. Invited talk at ICT.OPEN 2012, 22/10/2012. [ pdf ]
- Optimisation of Generic Programs through Inlining. Lightning talk at the 2012 Haskell Implementors Workshop, 14/09/2012. [ pdf ] [ youtube ]
- Equality Proofs and Deferred Type Errors. International Conference on Functional Programming, 11/09/2012. [ pdf ] [ youtube ]
- Sorting with Bialgebras and Distributive Laws. Workshop on Generic Programming, 09/09/2012. [ pdf ] [ youtube ]
- The Right Kind of Generic Programming. Workshop on Generic Programming, 09/09/2012. [ pdf ] [ youtube ]
- Optimisation of Generic Programs through Inlining. 24th Symposium on Implementation and Application of Functional Languages, 31/08/2012. [ pdf ] [ youtube ]
- GHC 7.6, More Well-Typed Than Ever. Dutch Haskell Users' Group Day, 20/04/2012. [ pdf ]
- A Formal Comparison of Approaches to Datatype-Generic Programming. Mathematically Structured Functional Programming 2012, 25/03/2012. [ pdf ]
- Functional Modelling of Musical Harmony. Symposium on Harmony and Variation in Music Information Retrieval, 29/02/2012. [ pdf ]
- Giving Haskell a Promotion. Dutch FP Day 2012, 06/01/2012. [ pdf ]
2011
- Functional Modelling of Musical Harmony. International Conference on Functional Programming 2011, 20/09/2011. [ pdf ]
- Generic Programming for Indexed Datatypes. Workshop on Generic Programming 2011, 18/09/2011. [ pdf ]
- Formally comparing approaches to datatype-generic programming, using Agda. 2011 Dependently Typed Programming Workshop, 27/08/2011. [ pdf ]
- Functional Modelling of Musical Harmony. Utrecht Summer School in Applied Functional Programming, 26/08/2011. [ pdf ]
- Functional Modeling of Musical Harmony. Dutch FP Day 2011, 07/01/2011. [ pdf ]
2010
- A Generic Deriving Mechanism for Haskell. Haskell Symposium 2010, 30/09/2010. [ pdf ] [ mov ] [ vimeo.com ]
- A Generic Deriving Mechanism for Haskell. Computing Science Colloquium, Universiteit Utrecht, 16/09/2010. [ pdf ]
- Optimizing Generics Is Easy! Partial Evaluation and Program Manipulation (PEPM) 2010, 18/01/2010. [ pdf ]
- Optimizing Generics Is Easy! Dutch Functional Programming day 2010, 08/01/2010. [ pdf ]
2009
- Generic Programming: what, why and how. 5th Dutch Haskell Users' Group meeting, 11/09/2009. [ pdf ] [ m4v ] [ vimeo.com ]
- Generic Programming: what, why and how. Utrecht Summer School in Applied Functional Programming 2009, 28/08/2009. [ pdf ]
- Generic Programming for Domain Reasoners. Trends in Functional Programming (TFP) 2009, 03/06/2009. [ pdf ]
2008
- Why Generic Programming Matters. Presented at IPA Fall Days 2008. [ pdf ]
Events
2013
- Radio interview for Fila 3 (in Portuguese); Available online, courtesy of Antena 3.
- Radio interview for José Candeias (in Portuguese); Available online, courtesy of Antena 1.
- Participant at the IT as a Utility Network workshop on Adoption of ICT to improve security and trust in the UK food chain, September 2–3, Antrim, Northern Ireland.
2012
- Local organiser and participant at the 24th Symposium on Implementation and Application of Functional Languages, IFL'2012, August 30–1 September, Oxford, United Kingdom.
- Participant at the IPA Spring Days on Model-Driven Software Engineering, April 16–20, Garderen, the Netherlands.
- Participant at the Dutch FP day 2012, FP-dag'2012, January 6, Universiteit Utrecht, Utrecht, the Netherlands.
2011
- Participant at the IPA Spring Days on Bioinformatics, April 11–15, Vlijmen, the Netherlands.
- Participant at the Dutch FP day 2011, FP-dag'2011, January 7, University of Twente, Enschede, the Netherlands.
2010
- Participant at SIREN//NL and IPA Fall Days, November 1–3, Veldhoven, the Netherlands.
- Local organiser of the 22nd Symposium on Implementation and Application of Functional Languages, IFL'2010, September 1–3, Alphen aan den Rijn, the Netherlands.
- Participant at the Oregon Programming Languages Summer School: Logic, Languages, Compilation, and Verification, June 15–25, University of Oregon, Eugene, Oregon, United States of America.
- Participant at the IPA Spring Days on Multi-Core Computing, April 21–23, Oisterwijk, the Netherlands.
- Participant at the Spring School on Generic and Indexed Programming, March 22–26, University of Oxford, Oxford, United Kingdom.
- Participant at the Dutch Functional Programming day 2010, FP-dag'2010, January 8, Radboud Universiteit Nijmegen, the Netherlands.
2009
- Participant at the IPA Fall Days on Quantitative Methods for Embedded Systems, November 23–27, Noordwijk aan Zee, the Netherlands.
- Local organiser of the 5th Haskell Hackathon, Hac5, April 17–19, Universiteit Utrecht, the Netherlands.
2008
- Participant at the IPA Fall Days on Software Analysis, November 24–28, Nunspeet, the Netherlands.
- Participant at the IPA Course on Formal Methods, June 23–27, Technische Universiteit Eindhoven, the Netherlands.
- Participant at the Sixth International Summer School on Advanced Functional Programming, May 19–24, Center Parcs "Het Heijderbos", the Netherlands.
Program committee membership
- Steering committee member of the Workshop on Generic Programming 2015.
- Program co-chair of the Workshop on Generic Programming 2014.
- Program committee member of the Haskell Symposium in 2014 and 2020.
- Program committee member of the Workshop on Functional Art, Music, Modeling and Design in 2013, 2016, and 2017.
- Program committee member of the International Conference on Functional Programming 2023.
Teaching
2015
- Master course Functional Programming (assistant and assessor), University of Oxford, 2–6 February.
2014
- Master course Functional Programming (assistant and assessor), University of Oxford, 15–19 September.
- Master course Functional Programming (assistant and assessor), University of Oxford, 17–21 February.
- Master course Object Orientation (assessor), University of Oxford.
2013
- Master course Functional Programming (assistant), University of Oxford, 13–17 May.
- Bachelor course Advanced Data Structures and Algorithms (assistant), University of Oxford, Hillary Term.
2012
- CEA HPC Computer Science Summer School on Functional Programming for Parallel and Concurrent Applications (assistant), Cadarache, 11–22 June.
2011
- Utrecht Summer School in Computer Science: Applied Functional Programming (assistant), Utrecht University, 15–26 August.
2010
- Master course Generic Programming (assistant), Utrecht University.
2009
- Master course Generic Programming (assistant), Utrecht University.
2008
- Master course Generic Programming (assistant), Utrecht University.