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.
Dr. Ir. Alex Gerdes
Rännvägen 6, rum EDIT 6114
412 58 Göteborg, Sweden
+46 31 772 61 54
alexg@chalmers.se
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.
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
Program Committee member of the 21st International Symposium on Practical Aspects of Declarative Languages (PADL 2019).
Program Committee member of the Trends in Functional Programming in Education workshop (TFPIE 2019).
Program Committee member of the 22nd International Symposium on Practical Aspects of Declarative Languages (PADL 2020).
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).
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.
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/DIT441 • 2020 - now
Data Structures - DIT962 • 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
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
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
I participated in the European research project on using property-based testing for web services.
Property-based testing, web services, QuickCheckI participated in the Swedish research project on using property-based testing to test AUTOSAR basic software implementations for Volvo.
AUTOSAR, property-based testing, QuickCheckMatilda Blomqvist and Alex Gerdes. Using GHC-Core to normalise student programs. To appear in Proceedings of the 26th International Symposium on Trends in Functional Programming, 2025. [ bib ]
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 Proceeding of: Trends in Functional Programming, 2018. [ bib ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
Alex Gerdes. Comparing Generic Programming Libraries. Master's thesis, Open Universiteit Nederland, 2007. [ bib ]