About

A small part of the Algot interface

What is Algot?

Algot is a visual, live and graph-based programming language that relies on programming by demonstration. Its purpose is to provide an intuitive programming experience for both beginners and experts. It has been in development since 2019 as a part of Sverrir Thorgeirsson’s PhD studies in Professor Zhendong Su’s group at ETH Zürich.

Algot was originally designed as a demonstration system that could be used to assess competencies with algorithms and data structures [1, 2]. It has evolved into a more versatile tool over time. In a 2022 bachelor’s thesis, Theo Weidmann introduced a new version of Algot that combines a novel input-query-action paradigm with programming by demonstration [3]. Other students have also made contributions to Algot, for example by implementing a debugger, transpiler, and a package manager.

Compared to block-based programming languages, where users add and rearrange code blocks to define program logic, Algot does not require programmers to understand or manipulate code in a structural way. Programs are built by choosing predefined or user-defined queries and functions and applying them onto various types of graphs, including trees, matrices, linked lists, and individual nodes. When doing so, the users specify concrete values that may change as the program is defined. By making it easier to conceptualize and interact with the program state, our intention is that users can focus more on problem-solving and less on code syntax.

Effectiveness

Four controlled, experimental studies on Algot in secondary and tertiary education indicate that the language is effective within the domains that were tested: (i) improving the programming performance and lowering the cognitive load of undergraduate students [4, 7], (ii) helping 14-17 year old students learn recursion [5], a computer science concept usually reserved for older students, and (iii) helping tertiary-level students with their program comprehension [6]. Our studies have compared Algot against the block-based programming language Scratch and the textual language Python.

This complementary cumulative distribution chart shows (a part of the) results of one of our studies on undergraduate students [4]. We conducted a within-subjects experiment where participants solved simple programming tasks in Algot and Python. The chart indicates that when programming in Algot, participants were able to solve more exercises successfully than when programming in Python. Furthermore, students experienced significantly less cognitive load when programming in Algot than Python according to the instruments we used: a validated survey and physiological measurements (skin conductance and eye measurements).

The bar chart shows the results of our study on 14-17 year old participants [5]. Students in the experimental group (blue) solved programming tasks in Algot while students in the control group (orange) solved the same tasks in Scratch. Afterwards, we administered an 8-point post-test measuring understanding of recursion. The experimental group performed significantly better than the control group.

Additional studies on Algot and Algot extensions have been conducted [8] or are underway. Contributions from other researchers are welcome.

Contributions

Students at ETH have contributed to Algot with the following semester and thesis projects under the supervision of Sverrir Thorgeirsson and Professor Zhendong Su:

  1. (2024) Gasser, Andrin. Creating a Visual Boolean Query System. Bachelor’s thesis.
  2. (2024) Salem, Ali. Supporting Abstraction in Algot via Algebraic Data Types. Bachelor’s thesis.
  3. (2024) Hugo, Philippe. Refining Sharing and Collaborative Aspects in Algot via its Library Manager. Bachelor’s thesis.
  4. (2023) Shamanna, Ishaan. Adaptation of Algot to an Introductory Online Programming Course. Master’s thesis.
  5. (2023) Lais, Lennart. Exploring Algot’s Potential in Teaching Recursion in Secondary Education: A Comparative Study. Bachelor’s thesis.
  6. (2023) Graf, Oliver. Toward Robust Debugging in Algot. Bachelor’s thesis.
  7. (2023) Wright, Oliver. Implementing a Foreign Function Interface and Transpiler for Algot. Bachelor’s thesis.
  8. (2022) Weidmann, Theo. Bridging the Syntax-Semantics Gap of Programming. Bachelor’s thesis.
  9. (2022) Tarasov, Roman. Algot Library Manager. Semester project.
  10. (2022) Nezamabadi, Daniel. Program Synthesis in the Visual Programming Environment Algot. Bachelor’s thesis.

If you are interested in writing a thesis on Algot or would like to make it the topic of your semester project, you can contact Sverrir at sverrir.thorgeirsson@inf.ethz.ch. Questions on Algot can be directed to Sverrir and/or Theo Weidmann at tweidmann@student.ethz.ch.

Bibliography

  1. Thorgeirsson, S., & Su, Z. (2021, October). Algot: An Educational Programming Language with Human-Intuitive Visual Syntax. In 2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 1-5). https://doi.org/10.1109/VL/HCC51201.2021.9576166
  2. Thorgeirsson, S., Sinha, T., Friedrich, F., & Su, Z. (2022). Does deliberately failing improve learning in introductory computer science? In I. Hilliger, P. J. Muñoz-Merino, T. De Laet, A. Ortega-Arranz, & T. Farrell (Eds.), Educating for a New Future: Making Sense of Technology-Enhanced Learning Adoption (Lecture Notes in Computer Science, Vol. 13450). Springer, Cham. https://doi.org/10.1007/978-3-031-16290-9_57
  3. Weidmann, T. B., Thorgeirsson, S., & Su, Z. (2022, November). Bridging the Syntax-Semantics Gap of Programming. In Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!) (pp. 80-94). https://doi.org/10.1145/3563835.3567668
  4. Thorgeirsson, S., Weidmann, T., Weidmann, K.-H., & Su, Z. (2024, March). Comparing Cognitive Load Among Undergraduate Students Programming in Python and the Visual Language Algot. In Proceedings of the 55th ACM Technical Symposium on Computer Science Education (SIGCSE 2024). https://dl.acm.org/doi/abs/10.1145/3626252.3630808
  5. Thorgeirsson, S., Lais, L., Weidmann, T., & Su, Z. (2024, March). Recursion in Secondary Computer Science Education: A Comparative Study of Visual Programming Approaches. In Proceedings of the 55th ACM Technical Symposium on Computer Science Education (SIGCSE 2024). https://doi.org/10.1145/3626252.3630916
  6. Graf, O., Thorgeirsson, S., Su, Z. (2024, July). Assessing Live Programming for Program Comprehension. In Proceedings of the 2024 Conference on Innovation and Technology in Computer Science Education (ITiCSE 2024). Link to preprint: https://algot.org/programcomprehension.pdf
  7. Thorgeirsson S., Zhang C., Weidmann, T., Weidmann, K.-H., & Su, Z. (2024, August). An Electroencephalography Study on Cognitive Load in Visual and Textual Programming. In Proceedings of the 2024 ACM Conference on International Computing Education Research (ICER ’24). https://doi.org/10.1145/3632620.3671124
  8. Barth, M. G., Thorgeirsson, S., & Su, Z. (2025, November). A Direct Manipulation Programming Environment for Teaching Introductory and Advanced Software Testing. In Proceedings of the 2025 ACM Koli Calling International Conference on Computing Education Research (Koli Calling ’25). Forthcoming.