1 Introduction

Abbreviations: AVR: Alf and Vegard's RISC (Reduced Instruction Set Computer); GUI: Graphical User Interface; PLC: Programmable Logic Controller; ISCED: International Standard Classification of Education.

Microcontroller programming courses generally deal with basic programming concepts, including algorithm, error types, and debugging. Microcontroller programming is neither an easy subject to teach nor to learn (Dillon, 2009; Hawi, 2010; Qian & Lehman, 2017). Many years of study and practice are required to become an expert (Ericsson, 2006; Winslow, 1996). As students acquire programming skills, they should become planners and creators of technology, not just simple users (The Royal Society., 2012).

To teach programming at an applicable level, educators need to implement an appropriate programming environment to develop students' practical skills. Microcontroller programming environments can generally be divided into two types: i) graphical (i.e. iconic or diagrammatic or block based) and ii) textual programming environments. For encryption, graphical programming environments use graphical symbols, while textual programming environments are based on textual symbols. In addition, there are graphical environments that can translate graphical structure into textual encoding (such as Arduino-Scratch) and so-called graphical user interfaces (GUIs) that are text-based but have much iconic support.

Programming classes should not only focus on the development of software applications but should develop a holistic approach in students for understanding problems and providing practical knowledge for finding optimal solutions. Educators can imply the advantage of theoretical and practical knowledge that students have acquired since they have already learned the natural (communication) language and apply the concepts in programming language classes (Vygotsky, 1978). Students should be part of the comprehensive approach to acquiring theoretical and practical knowledge by breaking down a complex problem into a series of smaller, manageable problems, looking for similarities between and within problems, focusing on what is important and ignoring irrelevant details, and designing a step-by-step solution to the problem(s). If this concept is accepted, ‘non-programming’ problems like planning an itinerary, solving a math problem, creating a web page, or even preparing a meal can be solved efficiently (Grover & Pea, 2013; Kafai & Burke, 2013; Rinard, 2008).

This study focused on programming skills in mechatronics education programmes. Mechatronics emerged a few decades ago in response to the rapid development of engineering disciplines and growing technological complexity. The programmes were introduced as a novel concept of designing, manufacturing, and maintaining technical equipment and systems, emphasising the multidisciplinary approach of mechanical and electrical engineering, computer science, and information technology as opposed to the specific solutions of each of the traditional engineering disciplines. Slovenia introduced the mechatronics programme into secondary vocational education in 2006 (Slovenian Institute for Vocational Education and Training, 2015).

Mechatronics graduates are expected to use a combination of mechanical, electrical, computer, and software skills to install, test, and manage systems and technologies, such as robots, computer-controlled systems, and integrated manufacturing equipment (Bishop, 2006). According to the International Standard Classification of Education (ISCED), the vocational programme in mechatronics is part of ISCED 3: Upper Secondary Education (ISCED, 2011).

One of the key components of the mentioned education programme includes theoretical and practical knowledge of computer programming. In a general context, computer programs (applications) process input data and generate the required output data. In mechatronics, the computer is also a tool for developing programs for programmable electronic devices, such as microcontroller-based programmable controllers, also known as programmable logic controllers (PLCs). By combining adequate sensors with programmable controllers as a source of input information as well as devices activated by the controller (also called ‘actuators’), we obtain a basic mechatronic system. The program, which is usually developed on a computer, is uploaded to the programmable controller.

In the industry, very different programming environments are used on the computer side and controllers on the mechatronic device side. In addition, the environments and controllers are frequently updated or even interchanged. Students who complete higher as well as secondary vocational training in mechatronics are expected to be flexible and able to quickly adopt the (also upcoming) programming environments that are used in certain companies. Due to the modernisation of the production process, new programming environments are frequently introduced, and employees are expected to start using them quickly (Kunčič et al., 2004).

The time available in the curriculum usually does not allow extensive practice with different types of programming environment. The challenge for educators is to decide what kind of environment to introduce into the curriculum to be efficient – textual or graphical? In our case, the field of work for mechatronics graduates of our vocational training programme curriculum is broad. It does not only cover mechatronics systems but can also include the design of interactive websites. Moreover, employers will most likely expect our graduates to move from one programming environment to another. Consequently, it is essential to develop students' algorithmic thinking by implementing such programming environments that allow for an optimal transfer of knowledge and skills to other environments.

1.1 Research questions

To optimise the learning process of the mechatronics course, we have derived the following research questions.

  • Q1: What expectations do potential employers have regarding theoretical knowledge and practical skills related to programming?

  • Q2: What kind of environments are better suited as an introduction to programming, textual or graphical?

  • Q3: Which sequence of teaching programming delivers a better result in terms of knowledge transfer, starting with textual and continuing with graphical or vice versa?

  • Q4: Does student satisfaction depend on whether students switch from a textual to a graphical programming environment or vice versa?

2 Related work

Computer programming is essential in various fields. However, we can distinguish between general and specific skills of computer programmers. In this paper, we first present related work on learning general computer programming and programming programmable devices.

In the studies on general programming, graphical programming environments are often considered more appropriate for teaching programming skills compared to text-based environments. Çoban et al. (2020) reported that prospective teachers' attitudes toward block-based programming (i.e., graphical programming environments) and their perceptions of self-efficacy are significant and interrelated. In addition, prospective teachers claim that learning about robots contributes to problem-solving and programming skills. Erol and Çırak (2021) study showed that game development using the Scratch block-based programming environment improved middle school students' problem-solving skills compared to face-to-face instruction. They also found that the amount of time students spend with a programming environment can influence their problem-solving skills. Students should spend sufficient time with a graphical environment to develop their problem-solving skills. Topalli and Cagiltay (2018) concluded that Scratch (block-based) combined with game development is significantly better for introductory programming than the text-based C programming language. Those who took the Scratch introductory programming course performed significantly better on game development projects. The result of the study by Weintrop and Wilensky (2017) showed that students who used a block-based environment made significantly greater learning gains compared to their text-based peers after 5 weeks of instruction. However, students in both conditions significantly improved their scores between pre- and post-tests. No difference was found between students in the two conditions in terms of self-confidence and satisfaction. The conclusions of all the above studies were confirmed by authors Hu et al. (2021). This meta-analysis found that block-based programming can lead to an improvement in students' academic achievement compared to text-based programming. However, the effect of block-based programming on academic achievement was significantly influenced by school location, educational level, and the type of programming environment used. In particular, the difference between the efficiency of text-based and graphical programming environments was more significant for elementary and middle school than for university programmes.

Melia et al. (2015) measured and compared the effectiveness and satisfaction of young software developers working with text-based and graphical programming environments. Although students preferred the graphical environment, they were significantly more effective when using the textual environment.

Schultz (2011) found that students were equally receptive to a graphical (Alice) and textual (Java) environment. Students in both groups were satisfied with the usefulness and applicability of the concepts learned in the logic and programming course, regardless of the environment implemented for the course. Louca and Zacharia (2008) compared Microworlds Logo (textual) with Stagecast Creator (graphical) in the context of developing models of natural phenomena. The results showed no significant difference between the two compared environments. Each programming environment had some features that were productive and helpful for students in specific work contexts. Armoni et al. (2015) studied the transition from introductory programming with the block-based Scratch environment in elementary school to studying programming with a textual programming language (C# or Java) in secondary school. They found that the programming knowledge and experience of students who had learned Scratch significantly facilitated the learning of textual programming.

Programming instruction in programmable electronics is specific in some ways because it necessarily involves learning sets based on a selected microcontroller board. The concept of incorporating programmable devices is also referred to as "physical computing" Several studies show positive effects on motivation to learn programming when such learning sets are used. The results of the study by Tupac-Yupanqui et al. (2022) showed a significant positive impact on the development of programming skills by using traditional text-based programming languages and learning kits based on Arduino boards. Scott et al. (2015) confirmed the findings that the use of a learning kit (in this case, a programmable robot) in an introductory programming course for first-year students had a significant impact on students' engagement in programming activities. They spent more time programming and improved the quality of their code. Vrbančič and Kocijančič (2013) reported similar results to Scott et al. (2015). By using the learning kit, students acquired introductory programming skills more quickly. They were able to see the effect of the code—e.g., on the output side, the movement of the motor shaft and the resulting effect on the movement of the vehicle, on the input side, the effect of using sensors, etc., which increased their motivation to complete the work efficiently. Rihtaršič et al. (2016) investigated whether experiential learning of electronics content is effective in the context of open learning of robotics in middle school, and implementation of electronics components was the activity most valued by students. Rihtaršič and Kocijancic (2012) confirmed the effectiveness of the robotics learning kit for early robotics instruction (ages 12–16). Students aged 12 to 18 who participated in summer camps demonstrated their ability to develop, investigate, program, and evaluate various ideas while constructing their projects in a text-based environment. Numerous studies clearly show that the introduction to programming is always associated with problem-solving instruction once the learning package is used (Erol & Çırak, 2021; Scott et al., 2015; Vrbančič & Kocijančič, 2013). Moreover, a balance between theoretical and practical programming skills needs to be found (Jakoš & Verber, 2016; Rihtaršič et al., 2016; Rihtaršič & Kocijancic, 2012).

Some authors emphasize the importance of using programming environments that are applicable and expected to be used later professionally. Tiernan (2010) found that students' experiences designing and developing programs in the LabVIEW environment with associated hardware significantly increased their interest and enthusiasm for the field of industrial automation. Students acquired knowledge through direct experience, investigated phenomena, visualized expected results, and experimented with possible solutions. It is emphasized that experimentation and practical training should be the most important activities in engineering education.

Pratomo and Perdana (2017) quantitatively presented Arduviz block-based programming environment for Arduino learning kits, which can convert blocks into textual C +  + code in real time. The effectiveness of the Arduviz by teaching programming has not been researched. Supposedly programming an arduino kit with this tool would be easier.

3 Material and method

In the following section, we describe our research design, which consists of research strategy, research questions, data collection design, and data analysis approach.

3.1 Research strategy

An important goal of the educational process at the various levels is to prepare students for lifelong learning, which must also meet the expectations of potential employers. In developing the formal curriculum, the important expectations of employers are also identified and incorporated into the formal curriculum. Schools are required to follow the formal curriculum, but have autonomy in their choice of learning tools, including their choice of programming environment. Their goal is to provide graduates with general knowledge relevant to lifelong learning, in addition to basic skills important for effective integration into the labour market.

To answer the research questions, we included the following participants:

  • 104 craftsmen and businesspeople from Slovenia as potential employers (Q1) and

  • 114 students of the vocational training programme in mechatronics, aged 15 and 16 years (Q2, Q3, and Q4).

The first part of the study included a questionnaire about the expectations of potential employers for the graduates of the secondary vocational programme in mechatronics. This feedback provided us with information about the optimal laboratory and programming environments for the introductory programming course (Slovenian Institute for Vocational Education and Training, 2015).

In the second part of the study, the 114 students first did a selection test, based on which we divided them into equivalent Groups A and B regarding their initial knowledge (see Fig. 1).

Fig. 1
figure 1

Block diagram of research design

For both groups, we introduced programming in accordance with the official curriculum (Slovenian Institute for Vocational Education and Training, 2015), consisting of 66 school periods (each period was 45 min long), of which 2 were dedicated to dividing students into groups A and B and 4 were dedicated to theoretical and practical tests. In the remaining 60 h, we divided the learning process into two phases. In the first learning phase, which consisted of 36 school hours, group A used a textual environment called Bascom for Alf and Vegard's reduced instruction set (AVR) microcontroller (Vrbančič & Kocijančič, 2013). In group B, we started with LabView as a typical graphical programming environment. Both programming environments are widely used and tangible in industry, financially affordable for schools, and useful not only in programmable electronics. Both groups used the same lab equipment and supplies and had the same teacher implementing the same instructional context—to reduce teacher influence on the instructional process. The initial learning process was evaluated with theoretical and practical knowledge in Test 1. The test result was decisive in assessing which type of environment (textual or graphical) was more suitable for the programming course to start with. In the second learning phase, which lasted 24 periods, groups A and B exchanged programming environments to transfer the knowledge acquired in the first phase by solving similar problems but with the different type of programming environment. Specifically, Group A changed from the textual to the graphical programming environment and Group B did the opposite. After the second phase we again tested the students’ theoretical and practical knowledge with Test 2.

Finally, since any dissatisfaction could have a negative impact on students' motivation and thus on the results obtained, students were asked about their satisfaction. The data collected was used to determine and evaluate the satisfaction of both groups and its possible influence on the outcomes. Over the years, the survey was designed and validated by teachers at the school where the survey was conducted.

In both learning phases, we used a combination of frontal teaching and problem solving. The theory of programming was taught frontally, while in the practical part, students implemented two previously selected programming environments to solve a given programmable electronics problem on their own.

3.2 Data collection design

The questionnaire handed out to potential employers contained six statements. Three statements concerned the employers' expectations of the employees' knowledge in connection with the implementation of microcontrollers. The other three statements concerned employers' expectations of employees' programming skills. In the questionnaire, we used a five-point Likert scale: strongly agree, agree, undecided, disagree, and strongly disagree. The questionnaire used a five-point Likert scale: strongly agree, agree, undecided, disagree, and strongly disagree. The questionnaire was created and validated during the development of the formal curriculum (Slovenian Institute for Vocational Education and Training, 2015). The survey was conducted with the support of the Slovenian Chamber of Crafts and Small Businesses and the Slovenian Chamber of Industry and Commerce.

The selection test was done by 114 students (from the same school—four groups) in the second year of the vocational secondary school programme of Mechatronics (mostly aged 16) to divide them into two groups of equal size, with 57 students in each group. The test contained questions and problems from the school subjects of Mathematics, Mechatronics, and Computer Science, which were equally represented. In the selection test, the students were able to score a maximum of 36 points.

The theoretical and practical knowledge Tests 1 and 2 were designed according to the learning objectives stated in the curriculum of the programming course for the second year of Mechatronics Programme (Slovenian Institute for Vocational Education and Training, 2015). The theoretical test consisted of a series of questions designed to measure theoretical knowledge, and the practical test consisted of a series of exercises designed to measure practical knowledge and skills (Appendix 2). The questions for the test were randomly selected from a larger, pre-prepared set of questions. The tests followed the revised Bloom knowledge taxonomy (Krathwohl, 2002), which included 50% points for basic knowledge (remembering, understanding), 25% for upgraded knowledge (applying, analysing), and 25% for advanced knowledge (evaluating, creating). The theoretical part of the two tests had 48 points, while the practical test had 40 points. The same proportion is used in the Slovenian final national assessment for the secondary vocational education programmes. The names of the students were coded. The tests were assessed by two assessors. If there was a difference of more than one point, the third assessor intervened. Because programming skills are assessed in a national exam at the end of high school, the research exam questions and tasks were similar to the national exam questions. After each national exam, the questions are validated at the national level. Practical knowledge tests of programming skills included an AVR microcontroller-based development board called eProDas-Rob1, which was developed for educational purposes in the European ComLab-2 project (Rihtaršič & Kocijancic, 2012; Rihtaršič et al., 2016; Appendix 1). The board can be programmed with different programming environments and by connecting different sensors and actuators, as described by Vrbančič and Kocijančič (2013). As graphical programming environment, we used LabView, while Bascom for AVR microcontrollers was used as text-based programming environment. Both programming environments are currently used in the industry for the development of programmable devices.

The students' satisfaction with the course was evaluated with a six-question survey where a five-point Likert scale was used. We evaluated student satisfaction based on i) the acquired knowledge, ii) the implemented teaching approach, and iii) the grading methods.

3.3 Data analysis approach

All collected data were analysed with SPSS statistics software (version 27).

The data collected from potential employers were analysed by calculating the mean values and standard deviations.

The rest of the statistical analyses were based on a comparison of the knowledge achievements of the students in Groups A and B. Regardless of the phase in which we compared their knowledge and skills, we first checked whether the data distribution was close enough to the normal distribution (or Gaussian). For checking the distribution, we implemented the Shapiro–Wilk test, which calculates W and requires the significance (risk) value p1, respecting the criterion p1 > 0.05 to confirm normal distribution.

If the Shapiro–Wilk test confirmed the normal distribution (p1 > 0.05), we performed the Levene's test of Equality of Variance by calculating F and the significance (risk) value p2. If the criterion for the risk level p2 > 0.05 confirmed the equality of the variances, we analysed the data about the knowledge of the two groups using the parametric independent t-test for the equality of the means. Otherwise (p2 <  = 0.05), an alternative statistic called the Welch t-test was implied. In both cases, the calculation yielded statistical values for t and significance p3. The calculated significance p3 > 0.05 was chosen as the risk level to confirm that the students' results were statistically significantly different between the two groups (Kentstate, 2020).

When the normal distribution criterion of p1 was not met (i.e. non-normal data distribution, p1 <  = 0.05), we used the nonparametric Mann–Whitney U test to calculate the parameter U and significance p4. The criterion for p4 as a risk level was the same as for the t-test (p4 > 0.05) to confirm a statistically significant difference between the two groups.

4 Results

4.1 Survey on employers' expectations

We received 104 validly completed questionnaires from invited potential employers. The outcomes are summarised in Table 1.

Table 1 What knowledge do employers expect from employees in terms of hardware and software?

The analysis of the survey gave us the answer to our research question Q1: What expectations do potential employers have of theoretical knowledge and practical skills related to programming?

Finding 1: More than 84% of employers agreed or strongly agreed that their employees should know how to analyse and compile product requirements, acquire missing knowledge independently in case of a lack of certain skills, and apply this knowledge to the development of a new product. In the area of software, employers expect the employee to be able to analyse the requirements, find the software solution, acquire the missing knowledge independently in case of lack of knowledge, and transfer it to new applications.

4.2 Testing the knowledge of students

The aim of this part of the study was to answer research questions Q2 and Q3. It consisted of three phases: selection test, first learning phase test, and second learning phase test.

4.2.1 Selection test for Groups A and B

According to the results of the selection test, 114 students were divided into groups A and B, with 57 students in each group. The significance of possible differences in the initial knowledge of the two groups was checked by a t-test with independent examples. The results showed that there was no significant difference in initial knowledge between Groups A and B (Table 2: t = -0.041, p3 = 0.967).

Table 2 Analysis of the results of the selection test for Groups A and B

4.2.2 The first learning phase

Students in Groups A and B were divided into four subgroups according to the Slovenian rules on norms and standards for the implementation of educational programs and a school programme at secondary education (Ministry of Education, Science and Sport, 2010), so that each subgroup had 10 to 18 students. The subgroups were equivalent by previous knowledge, which was determined by a selection test.

The theoretical and practical knowledge acquired after the first learning phase was compared between Groups A and B to find the answer to our research question Q2.

The significance of the differences in acquired theoretical and practical knowledge between Groups A and B was verified by a t-test for independent examples. The test results are shown in Table 3 for theoretical knowledge and in Table 4 for practical knowledge.

Table 3 Analysis of the results of the theoretical test after the first phase for Groups A and B
Table 4 Analysis of the results of the practical test after the first phase for Groups A and B

The analysis shows the difference in theoretical knowledge achieved (33.84 vs. 29.51) and the results of the t-test (t=3.446, p3=0.001). The derived conclusion is that there is a significant difference in the theoretical knowledge in favour of Group A.

The analysis shows the difference in practical knowledge achieved (28.96 vs. 26.37) and the results of the t-test (t=2.327, p3=0.022). The derived conclusion is that there is a significant difference in practical knowledge in favour of Group A.

The analysis of the theoretical and practical test after the first learning phase gave us the answer to research question Q2: What kind of environments are better suited to an introduction to programming (textual or graphical)?

Finding 2: After the first learning phase, Group A had a significantly higher level of acquired theoretical and practical knowledge than Group B. Reminder: Group A used the textual programming environment during the first learning phase, while Group B used the graphical environment. Therefore, the textual programming environment seems to be more suitable for the introductory programming course in the secondary vocational education in mechatronics.

4.2.3 The second learning phase

After the first learning phase in which the groups exchanged programming environments, the teaching time was reduced from 36 to 24 periods. After this second phase, we tested the students' theoretical and practical knowledge with Test 2, which was similar to Test 1.

The analysis of the results of the theoretical and practical knowledge of Groups A and B after the second learning phase was checked by a non-parametric Mann–Whitney U test for independence examples, as some of data in the second learning phase were non-normally distributed (see Table 5).

Table 5 Analysis of the test results for theoretical and practical knowledge after the second learning phase

The analysis shows a significant difference in theoretical knowledge attained (mean result 40.26 vs. 34.68). The conclusion is that there is significant difference in attained theoretical knowledge in favour of Group A (U = 889, p4 < 0.001).

The analysis also shows the difference in practical knowledge gained (34.98 vs. 30.07). The conclusion is that there is significant difference in favour of Group A, also in the practical knowledge gained (U = 802.5, p4 < 0.001).

Finding 3.1: After the second learning phase, Group A achieved a significantly higher level of theoretical and practical knowledge than Group B.

4.3 Progress from the first to the second learning phase

The transfer of knowledge from the first to the second phase can be measured by the ‘normalised profit’ g, which is defined and calculated as shown in Eq. 1 below.

$$g=\left({T}_{2}-{T}_{1}\right)/\left({T}_{2max}-{T}_{1}\right)$$
(1)

Legend:

T1:

- first course test score.

T2:

—second course test score.

T2max:

—maximum possible test score.

The measure could be described as ‘the amount that students have learned divided by the amount they could have learned’. The measure could be described as "the amount students learned divided by the amount they could have learned." It is a quantitative criterion for the level of student progress within the course compared to what students already know. (Hake, 1998; McKagan et al., 2016). In the case of our research, it is used as a quantifiable measure to compare the effectiveness of knowledge transfer from the textual to the programming environment and vice versa.

The analysis of knowledge transfer for both the theoretical and practical tests, represented by the average normalised gain, is shown in Table 6. The analysis of the results of the theoretical knowledge transfer of Groups A and B was checked with the t-test for independence examples and the analysis of the results of the practical knowledge transfer with the non-parametric Mann–Whitney U test.

Table 6 Analysis of knowledge transfer from the first to the second learning phase

The analysis shows a significant difference in knowledge transfer g in theory from the first learning phase to the second (g 0.49 vs 0.33). The conclusion is that there is significant difference in knowledge transfer in theoretical knowledge in favour of student Group A (t = 3.425, p3 = 0.001).

However, for the practical knowledge, the analysis shows that some of data (W = 0.647, p1 < 0.001) are non-normally distributed. For a further conclusion, we performed the non-parametric Mann–Whitney U test (Table 7).

Table 7 Further analysis of the praxis knowledge transfer

The nonparametric Mann–Whitney U test analysis shows a significant difference in knowledge transfer g from the first to the second learning phase (U = 770.5, p4 < 001). The conclusion is that there is also a significant difference in practical knowledge transfer in favour of Group A.

Finding 3.2: Considering that both groups had practically equal initial knowledge before the study, Group A transferred significantly more theoretical and practical knowledge from the first learning phase to the second than Group B.

We can derive the answer to our research question Q3: Which sequence of teaching programming gives a better result in terms of knowledge transfer, starting with textual and continuing with graphical or vice versa? From Findings 3.1 and 3.2 we can conclude: The analysis of students' test after the second sequence showed that the knowledge transfer is more efficient if students start with textual programming and continue with the graphical one compared to the students starting with the graphical environment and continuing to the textual one.

4.4 Student satisfaction survey

At the end of the second learning phase, students completed the questionnaire on satisfaction with the theoretical and practical part of the course. We asked the students about their level of satisfaction with the course: (i) the knowledge achieved, (ii) the teaching approach and methods, and (iii) the method of grading their knowledge. We assumed that the comparison of the satisfaction level might reveal doubts that the students had about unfair grading, overuse, or some other kind of dissatisfaction. Any kind of dissatisfaction could show a strong influence on the acquisition of theoretical and/or practical knowledge, i.e. also on the results of the theoretical and practical knowledge tests.

The analysis was performed with the nonparametric Mann–Whitney U Test (since acquired data were non-normally distributed). Test results are shown in the Figs. 2, 3 and 4.

Fig. 2
figure 2

Distribution chart of satisfaction with the theoretical (left) and practical (right) knowledge achieved

Fig. 3
figure 3

Distribution chart of satisfaction with the teaching approach – theory (left) and practice (right)

Fig. 4
figure 4

Distribution chart of satisfaction with the method of grading theory (left) and practice (right)

If we summarise the above results, we can derive an answer to research question Q4: Does satisfaction depend on whether students switch from textual to graphical programming or vice versa?

Finding 4: There were no significant differences in satisfaction with the knowledge achieved, the grading methods, and the teaching approach between Groups A and B.

5 Discussion and conclusions

Computer programming requires the highest cognitive levels of knowledge. The problem must be evaluated, analysed, and translated into an equivalent solution of program coding. In mechatronics the challenge is even more difficult – the computer program is only one issue in the function of programmable electromechanical mechanisms.

Vocational schools have to respect both the framework of the formal curriculum and the expectations of potential employers. Furthermore, schools must not neglect the required competencies of graduates who are continuing their schooling in higher education.

Our study confirmed that the expectations of potential employers are consistent with the key learning objectives of the formal national curriculum. Moreover, employers tend to emphasise the importance of practical skills for graduates entering the labour market and, on the other hand, are aware of the importance of competencies for lifelong learning. (Finding 1). Employers who responded to our questionnaire expressed the expectation that upper secondary vocational school graduates should be able to solve identified problems autonomously in any given programming environment, and they require graduates to be able to use various (also forthcoming) programming environments.

Our study focused on upper-secondary level students of the 4-year mechatronics programme in terms of what type of microcontroller programming environment is required to best develop the students' programming skills and knowledge. We have no doubts about the coherence of our finding that the mechatronics programme for the reported upper secondary vocational education (15–19 years) should preferably start with a textual programming environment (Finding 2), followed by a graphical (iconic, in our case LabView) type of environment (Finding 3 supported by learning kit and problem-solving lessons..

The "textual programming environment first" (Finding 2) of this study is generally at odds with some published work (Çoban et al., 2020; Erol & Çırak, 2021; Topalli & Cagiltay, 2018; Weintrop & Wilensky, 2017; Hu et al., 2021). For example, Hu et al. (2021) highlight in their meta-analysis that block-based programming can lead to improvement in students' academic achievement compared to text-based programming. More specifically, the effect of such use was more pronounced in elementary and middle schools than in colleges or universities. However, this contradiction is only apparent because programs with graphical environments have been used in different learning contexts, with different learning durations, in different educational environments, etc. The studies by Erol and Çırak (2021) and Topalli and Cagiltay (2018) were conducted in the context of game design activities. However, programming a computer game is fundamentally different from programming programmable devices. To what extent are initial computer game programming skills applicable to initial learning of smart device programming, including the Internet of Things? If so, to what extent? In contrast, students in Melia et al.'s (2015) study preferred a graphical programming environment but were significantly more efficient and effective at executing the textual programming environment. Comparing the above results of the cited studies with our study, we conclude that the effectiveness of the initial programming environment also depends on the learning context, which needs further investigation.

In our study, the transfer of knowledge from a text environment to a graphical environment was significantly more successful than vice versa (Finding 3). This finding cannot be compared with other studies, as we did not find any.

Any dissatisfaction could have a negative impact on student motivation and thus on the results obtained, which was not the case in our study (Finding 4), as the analysis of the survey among students about their attitudes towards the course did not reveal any significant differences between the two groups.

The learning kit we used to support instruction in programmable electronics also had an impact on our findings. Several other studies also report significant positive effects on introduction to programming when it is used (Sari et al., 2022; Scott et al., 2015; Tupac-Yupanqui et al., 2022; Vrbančič & Kocijančič, 2013). This suggests that a learning package can have an impact on the effectiveness of programming introductions. We did not specifically measure this type of impact.

A potential limitation of the current study is that we cannot always generalise our findings to other introductory programming courses because the students may be of different ages and the courses may require different knowledge and skills. In addition, the results may be partially dependent on the number of periods in the course. Therefore, future studies should investigate the research issues related to other types of programming courses with students of different ages.

The choice of learning kit could be another potential limitation in terms of generalizability of the results, as the results could depend on the choice of textual programming environment (in our case Bascom for AVR microcontrollers) and graphical environment (in our case LabView) used in our study. In fact, shortly after we started our study, new challenges emerged regarding the choice between graphical and textual programming environments in education. For instance, the most recent breakthrough has been open-source environments, which provide various open-source software environments supporting the programming of microcontrollers. One of the most ubiquitous and widespread is, for example, the Arduino platform, which is based on the integrated development environment which is text-based. The widespread use of the Arduino platform has also led to the creation of graphical software environments such as Ardublock, Ardublockly, and Visuino. Even National Instruments has adapted the graphical LabView environment to support Arduino controllers. The questions of which learning kit would be more adequate for a specific learning context should be studied in further research.

However, our study confirmed that the transfer of knowledge and skills between the two main types of programming (graphical and textual programming environments) should be studied in detail, taking into account issues such as the target competencies of students, their age, the use of learning kits, the expectations of potential employers, and the concept of lifelong learning.