Applying cooperative learning with role division to learn recursion
DOI:
https://doi.org/10.58459/icce.2023.4764Abstract
Nowadays, most programming languages support multiple programming paradigms, enabling the choices between them for different application scenarios and even using them together, for example, object-oriented programming for system modeling, event-driven programming for graphical user interface, and functional programming for wrapping actions. However, learning different programming paradigms is quite difficult, especially when they are given as a whole. Recursion is a typical example since it originated in functional programming but was also included in most structured programming languages. As Dijkstra pointed out, learners who are familiar with structured programming tend to think about the control flow of recursion and get confused by how the recursion can be implemented. To address this issue, we developed a methodology along with system software to help novices think of recursive solutions from the definition rather than the implementation.