About Me

I received my PhD in computer science from the  Open Universiteit Nederland, under the supervision of prof. dr. Johan Jeuring. Before my PhD research, I worked as a digital signal processing and software engineer at Ericsson and ASTRON (Netherlands Foundation for Research in Astronomy). I studied computer science at the Open Universiteit Nederland, and did my master thesis project at Utrecht University.

After my finishing my PhD I joined QuviQ, a research company specialised in property-based software testing. I joined Chalmers in 2014 and have been working as a teacher and researcher in the Computer Science and Engineering department. I am a member of the Computing Science division and Functional Programming unit.

Contact Details

Dr. Ir. Alex Gerdes
Rännvägen 6, rum EDIT 6114
412 58 Göteborg, Sweden

+46 31 772 61 54
alexg@chalmers.se

Research

Functional Programming in Education

Since the start of my PhD studies I have worked on the Ideas project (Intelligent Domain-specific Exercise Assistants), which aims at developing tools for incrementally solving exercises. Our research focus is on strategies for exercises, which guide the reasoning in a particular domain. We have developed a strategy language with which we can express a procedure for solving a particular kind of exercise. Such a strategy is interpreted as a context free grammar. The strategy language is not only used for exercises in many domains, such as linear algebra and propositional logic, but also programming. The framework software is written in Haskell and can be found on Hackage. I work together with Bastiaan Heeren and Johan Jeuring on this framework.

Using the Ideas framework we have built a learning environment for the functional programming language Haskell. Using the tutor, named Ask-Elle, students can develop functional programs incrementally. The tutor is able to generate immediate semantically rich feedback and can supply the students with hints on different levels. Advanced techniques from computer science, taken from fields such as term rewriting, strategies, parsers, lambda-calculus, and generic programming are used to provide feedback at each intermediate step from the start towards the solution of an exercise. In Ask-Elle it is relatively easy for a teacher to add or adapt programming exercises. A detailed description of this framework is given in my PhD thesis.

Property-based testing

To verify a software implementation is extremely important. With property-based we can test software in a (semi) formal way. We can specify the properties our software should have, and validate these with random input, which is shrunk to the smallest counterexample in case of a violation. One of the most popular implementations of property-based testing is QuickCheck, which has been implemented in many programming languages, most notably in Haskell and Erlang.

My research has concentrated on many aspects and applications testing, amongst others: continuous integration for Erlang QuickCheck, validating AUTOSAR basic software implementations, linking unit tests to properties, extracting good examples from a QuickCheck property. I collaborate with John Hughes, Thomas Arts, Ulf Norell, and Hans Svensson

.

Activities

Program Committee member of the Trends in Functional Programming in Education workshop (TFPIE 2019).

Program Committee member of the Trends in Functional Programming in Education workshop (TFPIE 2021).

Program Committee member of the Trends in Functional Programming in Education workshop (TFPIE 2022, replaced John Hughes).

PhD thesis

Ask-Elle: a Haskell Tutor

Promotor: prof. dr. Johan T. Jeuring Heerlen, 2012

The PhD thesis focussed on the development of a learning environment for the functional programming language Haskell. Using the tutor, named Ask-Elle, students can develop functional programs incrementally. The tutor is able to generate immediate semantically rich feedback and can supply the students with hints on different levels. In Ask-Elle it is relatively easy for a teacher to add or adapt programming exercises.

  • Printed by Gildeprint drukkerijen BV, Enschede
  • Cover by Peter Gerdes
  • ISBN 978-94-6108-371-5

Teaching

During the years, I have developed, coordinated and taught courses on bachelor and master level. The following courses are those I have taught as lecturer in the last few years, with links to each course's pages.

Introduction to Functional Programming - TDA555/DIT440 2020 - now

ata Structures - DIT961 2018 - now

Object-oriented Programming Project - TDA367/DIT212 2018 - 2020

Object-oriented Programming and Design - TDA552/TDA550 2016 - 2021

Compiler Construction - TDA283/DIT300 2016 - 2017

Object-oriented Programming - TDA540 2015 - 2017

Functional Programming and Formal languages - Open Universiteit NL 2009


Supervision

BSc thesis projects

Stepwise: an interactive calculus learning tool 5 students, Chalmers, 2024

Javista: automated assessment of imperative programming exercises 6 students, Chalmers, 2017

A mobile application to track your carbon footprint on the environment 4 students, Chalmers, 2015

Sketchagram: an application to communicate via a wearable device 6 students, Chalmers, 2015

A mobile app for effective debt distribution 6 students, Chalmers, 2015

MSc thesis projects

Fault localization for a functional programming tutor Ferran Toda, Chalmers, supervisor, 2024

Improving Recognition of Student Programs in Ask-Elle Matilda Blomqvist, Chalmers, supervisor, 2023

Complementing the Digital Programming Tutor Ask-Elle with Program Synthesis Gustav Engsmyre och Karl Wikström, Chalmers, supervisor, 2021

Contract inferencing for functional programs Jurriën Stutterheim, Utrecht University, co-supervisor, 2012

IDEAS: Improving the functional programming domain Peter van de Werken, Utrecht University, co-supervisor, 2010

Publications

2018

Alex Gerdes, John Hughes, Nicholas Smallbone, Stefan Hanenberg, Sebastian Ivarsson, and Meng Wang. Understanding formal specifications through good examples. In Proceedings of the 17th ACM SIGPLAN International Workshop on Erlang, Erlang 2018, pages 13--24, 2018. [ bib ]

Maximilian Algehed, Sólrún Halla Einarsdottir, Patrik Jansson, and Alex Gerdes. Type safe interpreters for free. In To appear in Proceeding of: Trends in Functional Programming, 2018. [ bib ]

2016

Alex Gerdes, Bastiaan Heeren, Johan Jeuring, and L. Thomas Binsbergen. Ask-elle: an adaptable programming tutor for haskell giving automated feedback. International Journal of Artificial Intelligence in Education, pages 1--36, 2016. [ bib ]

2015

Thomas Arts, Kirill Bogdanov, Alex Gerdes, and Johh Hughes. Graphical editing support for QuickCheck models. In To appear in Proceeding of: Testing Academic and Industrial Conference -- Practice and Research Techniques, 2015. [ bib ]

Ulf Norell and Alex Gerdes. Attribute Grammars in Erlang. In Proceedings of the 14th ACM SIGPLAN Workshop on Erlang, Erlang 2015, pages 1--12. ACM, 2015. [ bib ]

Alex Gerdes, John Hughes, Nick Smallbone, and Meng Wang. Linking Unit Tests and Properties. In Proceedings of the 14th ACM SIGPLAN Workshop on Erlang, Erlang 2015, pages 19--26. ACM, 2015. [ bib ]

2014

Graham Hutton. Phd abstracts. Journal of Functional Programming, 24((the abstract of my PhD thesis is included)):474--522, 2014. [ bib ]

Johan Jeuring, Thomas van Binsbergen, Alex Gerdes, and Bastiaan Heeren. Model solutions and properties for diagnosing student programs in ask-elle. In Computer Science Education Research Conference (CSERC), 2014. [ bib ]

Martin Skoglund, Hans Svensson, Henrik Eriksson, Thomas Arts, Rolf Johansson, and Alex Gerdes. Checking verification compliance of technical safety requirements on the autosar platform using annotated semi-formal executable models. In Andrea Bondavalli, Andrea Ceccarelli, and Frank Ortmeier, editors, Computer Safety, Reliability, and Security, volume 8696 of Lecture Notes in Computer Science, pages 19--26. Springer International Publishing, 2014. [ bib ]

2013

Thomas Arts, Alex Gerdes, and Magnus Kronqvist. Requirements on automatically generated random test cases. In M. Paprzycki M. Ganzha, L. Maciaszek, editor, Proceedings of the 2013 Federated Conference on Computer Science and Information Systems, pages pages 1335--1342. IEEE, 2013. [ bib ]

Rolf Johansson, Hans Eriksson, Hans Svensson, Kenneth Östberg, Thomas Arts, Alex Gerdes, and Martin Skoglund. Don't Judge Software by Its (Code) Coverage. In Matthieu Roy, editor, SAFECOMP 2013 - Workshop CARS (2nd Workshop on Critical Automotive applications : Robustness & Safety) of the 32nd International Conference on Computer Safety, Reliability and Security, Toulouse, France, 2013. [ bib ]

2012

Alex Gerdes, Johan Jeuring, and Bastiaan Heeren. An Interactive Functional Programming Tutor. In In Proceedings of ITiCSE 2012: 17th ACM Annual Conference on Innovation and Technology in Computer Science Education, 2012. [ bib ]

Alex Gerdes. AskElle: a Haskell tutor. PhD thesis, Open Universiteit Nederland, 2012. [ bib ]

Alex Gerdes, Johan Jeuring, and Bastiaan Heeren. Teachers and students in charge --- using annotated model solutions in a functional programming tutor. In Proceedings of EC-TEL 2012: European Conference on Technology Enhanced Learning, Saarbrücken, 2012. [ bib ]

Johan Jeuring, Alex Gerdes, and Bastiaan Heeren. Ask-elle: A haskell tutor -- demonstration. In Proceedings EC-TEL 2012: the 7th European Conference on Technology Enhanced Learning. Springer, 2012. [ bib ]

2011

Johan Jeuring, Alex Gerdes, and Bastiaan Heeren. A Programming Tutor for Haskell. In In Proceedings of CEFP 2011: Central European School on Functional Programming, 2011. [ bib ]

2010

Alex Gerdes, Johan Jeuring, and Bastiaan Heeren. Using Strategies for Assessment of Programming Exercises. In Proceedings of the 41st ACM technical symposium on Computer Science Education, pages 441--445, 2010. [ bib ]

Bastiaan Heeren, Johan Jeuring, and Alex Gerdes. Specifying Rewrite Strategies for Interactive Exercises. Mathematics in Computer Science, 2010. [ bib ]

Alex Gerdes, Bastiaan Heeren, and Johan Jeuring. Properties of Exercise Strategies. In In Proceedings International Workshop on Strategies in Rewriting, Proving, and Programming, 2010. [ bib ]

2009

Alex Gerdes, Bastiaan Heeren, and Johan Jeuring. Constructing Strategies for Programming. In José Cordeiro, Boris Shishkov, Alexander Verbraeck, and Markus Helfert, editors, Proceedings of the First International Conference on Computer Supported Education, pages 65--72. INSTICC Press, March 2009. [ bib ]

2008

Alexey Rodriguez Yakushev, Johan Jeuring, Patrik Jansson, Alex Gerdes, Oleg Kiselyov, and Bruno C. d. S. Oliviera. Comparing Libraries for Generic Programming in Haskell. In Proceedings of the ACM SIGPLAN Haskell Symposium, 2008. [ bib | .pdf ]

Bastiaan Heeren, Johan Jeuring, Arthur van Leeuwen, and Alex Gerdes. Specifying Strategies for Exercises. In Serge Autexier, John Campbell, Julio Rubio, Volker Sorge, Masakazu Suzuki, and Freek Wiedijk, editors, AISC/Calculemus/MKM 2008, LNAI 5144, pages 430 -- 445. Springer-Verlag, 2008. [ bib ]

Alex Gerdes, Bastiaan Heeren, Johan Jeuring, and Sylvia Stuurman. Feedback Services for Exercise Assistants. In Dan Remenyi, editor, The Proceedings of the 7th European Conference on e-Learning, pages 402--410. Academic Publishing Limited, 2008. [ bib | .pdf ]

2007

Alex Gerdes. Comparing Generic Programming Libraries. Master's thesis, Open Universiteit Nederland, 2007. [ bib ]