Hostname: page-component-59f8fd8595-tmn4r Total loading time: 0 Render date: 2023-03-23T01:26:52.883Z Has data issue: true Feature Flags: { "useRatesEcommerce": false } hasContentIssue true

The Soccer-Fun project

Published online by Cambridge University Press:  19 March 2010

Model Based System Development, Radboud University Nijmegen, The Netherlands (e-mail:
Rights & Permissions[Opens in a new window]


HTML view is not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

In the Soccer-Fun, students program the brains of football players in a functional language. Soccer-Fun has been developed for an introductory course in functional programming at the Radboud University Nijmegen, The Netherlands. We have used Soccer-Fun in teaching during the past four years. We have also experience in using Soccer-Fun for pupils in secondary education. Soccer-Fun is stimulating because it is about a well-known problem domain. It engages students to problem solving with functional programming because it allows them to compete at several disciplines: the best performing football team becomes the champion of a tournament; the best written code is awarded with a prize; students are judged on the algorithms used. This enables every student to participate and perform at her favorite skill. Soccer-Fun is implemented in Clean and uses its GUI toolkit Object I/O for rendering. It can be implemented in any functional programming language that supports some kind of windowing toolkit.

Copyright © Cambridge University Press 2010


Achten, P. (2007) Clean for Haskell98 programmers – A quick reference guide. Available at: Scholar
Achten, P. (2008) Teaching functional programming with Soccer-Fun. In Proceedings of the 1st Workshop on Functional and Declarative Programming in Education, FDPE'08. Huch, F. & Parkin, A. (eds). Victoria, BC, Canada: ACM Press, pp. 6172.CrossRefGoogle Scholar
Achten, P. & Plasmeijer, R. (1998) Interactive functional objects in Clean. Selected papers of the 9th International Symposium on the Implementation of Functional Languages, IFL'97. Clack, C., Hammond, K. & Davie, T. (eds), LNCS, vol. 1467. Springer, pp. 304321.CrossRefGoogle Scholar
Achten, P. & Wierich, M. (2000) A Tutorial to the Clean Object I/O Library (version 1.2). Technical report CSI-R0003. Nijmegen, The Netherlands: Institute for Computing and Information Sciences, Radboud University, p. 294.Google Scholar
Bird, R. & Wadler, P. (1988) Introduction to Functional Programming. Prentice Hall.Google Scholar
Brus, T., van Eekelen, M., van Leer, M. & Plasmeijer, R. (1987) Clean: A language for functional graph rewriting. In Proceedings of the 3rd International Conference on Functional Programming Languages and Computer Architecture, FPCA'87. Springer, pp. 364384.CrossRefGoogle Scholar
Conway, M. et al. (2000) Alice: Lessons learned from building a 3D system for novices. In CHI'00: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. Turner, T. & Szwillus, G. (eds), New York, NY: ACM, pp. 486493.CrossRefGoogle Scholar
Felleisen, M., Findler, R. B., Flatt, M. & Krishnamurthi, S. (2009) A Functional I/O system or, Fun for freshman kids. In Proceedings of the 2009 International Conference on Functional Programming, ICFP'09. Edinburgh, Scotland: ACM, pp. 4758.Google Scholar
Findler, R. B., Clements, J., Flanagan, C., Flatt, M., Krishnamurthi, S.Steckler, P. & Felleisen, M. (2002) DrScheme: A programming environment for Scheme, J. funct. program., 12 (2): 159182. doi:10.1017/S0956796801004208.CrossRefGoogle Scholar
Huang, L. & Hudak, P. (2003) Dance: A Declarative Language for the Control of Humanoid Robots. Tech. rept. YALEU/DCS/RR-1253. Yale University.Google Scholar
Hudak, P., Courtney, A., Nilsson, H. & Peterson, J. (2003) Arrows, robots, and functional reactive programming. Proceedings of the 4th International Summer School on Advanced Functional Programming, AFP'03. Jeuring, J. & Peyton Jones, S. (eds), LNCS, vol. 2638. Oxford, UK: Springer-Verlag, pp. 159187.CrossRefGoogle Scholar
Hudak, P. et al. (1992) Report on the programming language Haskell, a non-strict, purely functional language, Sigplan Notices, 27 (5): 1164.Google Scholar
Plasmeijer, R. & van Eekelen, M. (2001) Concurrent Clean Language Report (version 2.0). Available at: Scholar
Ullman, J. (1998) Elements of ML Programming (ML97 edition). Prentice Hall Inc.Google Scholar
Wilensky, U. (1999) Netlogo. Evanston, IL: Center for Connected Learning and Computer-Based Modeling, Northwestern University. Available at: Scholar
Submit a response


No Discussions have been published for this article.