TEACHING PROGRAMMING PARADIGMS USING JAVASCRIPT: FOR THE NEW KIDS ON THE BLOCK
Faculty of Science, University of Split (CROATIA)
About this paper:
Conference name: 16th annual International Conference of Education, Research and Innovation
Dates: 13-15 November, 2023
Location: Seville, Spain
Abstract:
The continuous development of programming languages, driven by industry needs and trends, is pushing the way we teach programming to its limits. The number of programming languages and their variations is growing rapidly, while the programming workforce, or the problem-solving workforce, to put it in a contemporary context, is lagging. The need to concentrate our teaching efforts on concepts related to programming paradigms is of utmost importance.
The proliferation of low-code and no-code tools, along with the emergence of text-to-code generators, endangers the motivation to learn programming due to its perceived difficulty. This does not mean that we should avoid using modern tools, but rather that we need to change our approach to teaching programming for the new generation. These "new kids on the block" are children of Generation Z, yet our teaching practices often still rely on approaches suited to Generation X or even Baby Boomers. New learners have limited time to spare and expect exceptional results quickly and with minimal effort. Simultaneously, the core of programming teaching has not changed significantly. While we are introducing programming and problem-solving to elementary school children and even toddlers, we still face a shortage of proficient programmers. This raises the question: are we doing something wrong, or have we forgotten what we should be teaching?
The problem of introductory programming is twofold: students must learn a new artificial language, and they must learn how to solve problems using this less expressive language compared to their natural one. We grapple with the challenge of teaching introductory programming in various ways, such as using visual programming languages, gamifying the learning process, and introducing textual programming languages according to the students' development phase. However, the real issue arises when we realize that, in the third or fourth programming course, we are still dealing with the same challenges: variables and their types, a variety of loops, functions, etc. At this point, we can only conclude that our efforts are mostly spent on teaching programming language syntax, rather than focusing on deeper conceptual understanding. Students may learn the definitions of concepts, but they often lack a profound understanding of why a concept has been introduced and how it is supported.
Teaching programming paradigms is crucial for grasping the underlying concepts of programming, promoting flexibility, developing problem-solving skills, and understanding real-world applications. In this paper, we present the findings of using JavaScript, a multi-paradigm language, to teach programming paradigms. We implement some concepts that are not natively supported by the language itself. By exploring concepts beyond the limitations of JavaScript syntax, students develop a mindset of flexibility and adaptability. They learn that there are multiple ways to approach a problem and that different paradigms can be combined to create effective programming solutionsKeywords:
Programming paradigms, JavaScript, teaching programming.