“Why is this course pushing functional programming?” - educating well-rounded web developers with functional JavaScript

Abstract

Imperative, object-oriented, and multi-paradigm programming languages are dominant in higher education. However, the use of functional languages is emerging. In parallel, features supporting functional paradigm (FP) have been added to languages traditionally categorized to other paradigms. Students benefit from fluency with several paradigms. In the studied primary Web Development course, JavaScript was used to familiarize students with selected features of the FP. The grading of the FP exercises was automatic. The automatic graders guaranteed the uniformity of feedback, treating each student’s submissions equally. Exercise graders accepted multiple submissions, and their feedback suggested code improvements to students. After each of the ten exercise modules, students (N=257) estimated the topic difficulty and gave feedback. The post-module questionnaires emphasized FP topics in particular. The results show that students are aware of programming paradigms, but more support should be offered when learning new ones, for instance, having more concrete instructions and hands-on videos. The need for more instructions was apparent as, after the course’s FP introduction, some students were still easily confused about such abstract FP concepts as ‘functions as first-class citizens’. However, exercise results showed that students learned to use the taught FP features. They found them difficult, but for example, the JavaScript concurrency model was found to be more difficult.acceptedVersionPeer reviewe

    Similar works