eOS: The Exercise Operating System

Authors Rui Mendes , José João Almeida

Thumbnail PDF


  • Filesize: 489 kB
  • 13 pages

Document Identifiers

Author Details

Rui Mendes
  • Centro Algoritmi / Departamento de Informática, Universidade do Minho, Campus de Gualtar, Braga, Portugal
José João Almeida
  • Centro Algoritmi / Departamento de Informática, Universidade do Minho, Campus de Gualtar, Braga, Portugal

Cite AsGet BibTex

Rui Mendes and José João Almeida. eOS: The Exercise Operating System. In 7th Symposium on Languages, Applications and Technologies (SLATE 2018). Open Access Series in Informatics (OASIcs), Volume 62, pp. 5:1-5:13, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2018)


We present an architecture for a system for creating, adapting and evaluating programming exercises for students. The system is capable of generating exercise skeletons, automatically creating inputs and outputs, provide a way of creating a large number of exercises programmatically and allowing students to solve them while giving them feedback. Furthermore, it allows the creation of special comparators that can check whether the output of a given submission is equivalent to the expected one or simply check whether the above mentioned output corresponds to a correct solution.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Domain specific languages
  • domain specific language
  • code generation
  • automatic evaluation
  • testing


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Charu C. Aggarwal and Jiawei Han. Frequent pattern mining. Springer, 2014. Google Scholar
  2. Guido van Rossum David Goodger. PEP 257 - Docstring conventions. Documentation, Python Software Foundation, 2001. URL: https://www.python.org/dev/peps/pep-0257/.
  3. Edsger W. Dijkstra. A note on two problems in connexion with graphs. Numerische mathematik, 1(1):269-271, 1959. Google Scholar
  4. Christian Estler and Martin Nordio. Codeboard: A web-based ide to teach programming in the classroom, 2018. URL: https://codeboard.io/.
  5. Robert W. Floyd. Algorithm 97: shortest path. Communications of the ACM, 5(6):345, 1962. Google Scholar
  6. Michal Forišek. On the suitability of programming tasks for automated evaluation. Informatics in education, 5(1):63-76, 2006. Google Scholar
  7. Michal Forišek. Security of programming contest systems. Information Technologies at School, pages 553-563, 2006. Google Scholar
  8. Karam Gouda, Mosab Hassaan, and Mohammed J Zaki. Prism: An effective approach for frequent sequence mining via prime-block encoding. Journal of Computer and System Sciences, 76(1):88-102, 2010. Google Scholar
  9. Peter E. Hart, Nils J. Nilsson, and Bertram Raphael. A formal basis for the heuristic determination of minimum cost paths. IEEE transactions on Systems Science and Cybernetics, 4(2):100-107, 1968. Google Scholar
  10. Dorota Huizinga and Adam Kolawa. Automated defect prevention: best practices in software management. John Wiley &Sons, 2007. Google Scholar
  11. Tomaž Kosar, Sudev Bohra, and Marjan Mernik. Domain-specific languages: a systematic mapping study. Information and Software Technology, 71:77-91, 2016. Google Scholar
  12. José Paulo Leal and Fernando Silva. Mooshak: A web-based multi-site programming contest system. Software: Practice and Experience, 33(6):567-581, 2003. Google Scholar
  13. Mathew Penrose. Random geometric graphs, volume 5. Oxford university press, 2003. Google Scholar
  14. Saul Schleimer, Daniel S. Wilkerson, and Alex Aiken. Winnowing: local algorithms for document fingerprinting. In ACM SIGMOD international conference on Management of data, pages 76-85, 2003. Google Scholar
  15. Stepic team. Stepic.org: Cloud-based digital learning environment for computer science. , https://blog.stepik.org/. URL: https://stepik.org/.
  16. Mohammed J. Zaki. Spade: An efficient algorithm for mining frequent sequences. Machine learning, 42(1-2):31-60, 2001. Google Scholar
Questions / Remarks / Feedback

Feedback for Dagstuhl Publishing

Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail