Alex Gerdes

ORCID: 0000-0002-7445-211X
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Intelligent Tutoring Systems and Adaptive Learning
  • Software Testing and Debugging Techniques
  • Teaching and Learning Programming
  • Logic, programming, and type systems
  • Software Engineering Research
  • Software Reliability and Analysis Research
  • Formal Methods in Verification
  • Model-Driven Software Engineering Techniques
  • Educational Games and Gamification
  • Online Learning and Analytics
  • Natural Language Processing Techniques
  • Parallel Computing and Optimization Techniques
  • Safety Systems Engineering in Autonomy
  • Semantic Web and Ontologies
  • Open Education and E-Learning
  • Visual and Cognitive Learning Processes
  • Network Packet Processing and Optimization

Chalmers University of Technology
2015-2019

University of Gothenburg
2018-2019

Quviq (Sweden)
2013-2015

Open University of the Netherlands
2008-2012

The Open University
2008-2009

10.1007/s40593-015-0080-x article EN International Journal of Artificial Intelligence in Education 2016-02-05

Datatype-generic programming is defining functions that depend on the structure, or "shape", of datatypes. It has been around for more than 10 years, and a lot progress made, in particular lazy functional language Haskell. There are morethan proposals generic libraries orlanguage extensions To compare characterise many atyped language, we introduce set criteria develop benchmark: characteristic examples testing various facets datatype-generic programming. We have implemented benchmark nine...

10.1145/1411286.1411301 article EN 2008-09-25

We introduce an interactive tutor that supports the stepwise development of simple functional programs. Using this tutor, students receive feedback about whether or not they are on right track, can ask for a hint when stuck, and get suggestions how to refactor their program. Our generates semantically rich from model solutions, using advanced concepts software technology. show teacher add exercise fine-tune feedback. report experiment in which we used our tutor.

10.1145/2325296.2325356 article EN 2012-07-03

Strategies specify how a wide range of exercises can be solved incrementally, such as bringing logic proposition to disjunctive normal form, reducing matrix, or calculating with fractions. In this paper we introduce language for specifying strategies solving exercises. This makes it easier automatically calculate feedback, example when user an erroneous step in calculation. We generate worked-out examples, track the progress student by inspecting submitted intermediate answers, and report...

10.1007/s11786-010-0027-4 article EN cc-by-nc Mathematics in Computer Science 2010-03-09

Programming exercise assessment tools alleviate the task of teachers, and increase consistency markings. Many programming are based on testing. A test-based tool for exercises cannot ensure that a solution is correct. Moreover, it difficult to test if student has used good practices. This unfortunate, because teachers want students adopt techniques. We propose use strategies, in combination with program transformations, as foundation functional assessment. Expert knowledge, form model...

10.1145/1734263.1734412 article EN 2010-03-10

Ask-Elle is an interactive tutor that supports the stepwise development of simple functional programs. Using students receive feedback about whether or not they are on right track, can ask for a hint when stuck, and get suggestions how to refactor their program. Our generates this from model solutions properties solution should satisfy. This paper studies feasibility using together with desired analyse work student. It describes experiment in which we almost 3500 log entries solve...

10.1145/2691352.2691355 article EN 2014-11-05

Learning to program is difficult. To support learning programming, many intelligent tutoring systems for programming have been developed. Research has shown that such tutors positive effects on learning. However, are not widely used. Building an tutor a language substantial amount of work, and utilising it in course often hard teacher. In this paper we illustrate how construct strategies solving exercises these can be used automatically students using incrementally develop program. Using...

10.5220/0001973500650072 article EN cc-by-nc-nd 2009-01-01

Mathematical learning environments give domain-specific and immediate feedback to students solving a mathematical exercise. Based on language for specifying strategies, we have developed framework that automatically calculates semantically rich feedback. We offer this functionality via set of web services. Feedback is only effective when it precise the point. The tests performed some confidence about correctness our To increase in services, explicitly specify properties services should...

10.4204/eptcs.44.2 article EN cc-by-nc-nd arXiv (Cornell University) 2010-12-24

QuickCheck allows us to verify software against particular properties. A property can be regarded as an abstraction over many unit tests. uses generated random input data test such If a counterexample is found, it becomes immediately clear what we have tested. This not the case when all tests pass, since do (and shall not) see actual cases. How sure about tested? has ability gather statistics cases, which insightful. But still does tell whether scenarios in mind are included. For this...

10.1145/2804295.2804298 article EN 2015-08-24

Datatype-generic programming is defining functions that depend on the structure, or "shape", of datatypes. It has been around for more than 10 years, and a lot progress made, in particular lazy functional language Haskell. There are morethan proposals generic libraries orlanguage extensions To compare characterise many atyped language, we introduce set criteria develop benchmark: characteristic examples testing various facets datatype-generic programming. We have implemented benchmark nine...

10.1145/1543134.1411301 article EN ACM SIGPLAN Notices 2008-09-25

Many functions take a value of particular (recursive) data structure as input and compute an output by traversing the collect, combine, or update values in that structure. Some examples are: collecting all hyperlink tags HTML tree, calculating depth binary adding prefix to every free variable name abstract syntax tree. When defining such we need write code takes care This is often repeated for operate on same structure, not essential operation want perform. type repetitive referred...

10.1145/2804295.2804296 article EN 2015-08-24

Formal specifications of software applications are hard to understand, even for domain experts. Because a formal specification is abstract, reading it does not immediately convey the expected behaviour software. Carefully chosen examples software's behaviour, on other hand, concrete and easy understand—but poorly-chosen more confusing than helpful. In order understand specifications, developers need good examples.

10.1145/3239332.3242763 article EN 2018-09-18

QuickCheck can test a system by specifying state machine for the API exported that system. This specification includes list of possible calls. Each call is accompanied precondition, postcondition, generator arguments, and description how changed. Based on this generates random sequence The preconditions ensure generated valid, postconditions check behaves as expected. Many systems require an initialisation before other calls, describing transition from uninitialized to initialised state....

10.1109/icstw.2015.7107473 article EN 2015-04-01
Coming Soon ...