Teaching B4J to High School students


Active Member
Licensed User
This year in the second semester in my school, used the teaching material published in the following Post https://www.b4x.com/android/forum/threads/teaching-material-for-middle-and-high-schools.127575/ in order to teach programming with the language B4J. Below I present my conclusions and observations on language teaching, student response, observed problems and thoughts and advice on this teaching.

This year has generally been a difficult year in my country. Due to increased cases of covid, schools were often closed and teaching continued with remote tools (Webex). In total, about 4 months of live teaching and another four months of distance learning were carried out. The construction of this material was completed around April 2021 when I had about 2 months of live teaching to use it.

My audience consists of 5 classes of about 25 students each about 15 years old. Of the 125 students only 10 had a previous experience with programming languages mainly due to their involvement with robotics applications (Arduino, Lego etc). The other students had a relatively small experience only in Logo and Scratch from past school years. Finally note that the computer science course in 1st grade of High Schools is mandatory for all students and includes subject teaching html, css, app Inventor and some theoretical objects of computer science.

The courses were held in two computer labs with relatively good equipment (i3 and i5) with SSD disks and 8GB Ram and 21” monitors without any problems or sticking to compilation. Each computer used by two students where the pairs consisted of one student with larger and one with less or no computer experience. The language was not installed but the copy solution as described here was selected https://www.b4x.com/android/forum/threads/b4a-b4j-no-installation-deployment.123203/'

Teaching method, hours per week.
Each class had a two-hour-a-week course so the total hours held was about 16.
From the beginning I decided to leave a large percentage of freedom to students in order to explore the environment of the application and become familiar with the various menus. Also, due to limited time I did not teach all the subject matter but decided to confine myself to what I can without pushing the students considering that it is better to understand than to cover all subjects.

The modules
1. The B4X language, The meaning of the problem / 1 hour

The first two modules were taught together. At this stage just mentioned what is programming language, what serves, what is B4J and presented some applications from ready made examples (which you can find in my github ).

2. My first Program / 1 Hours
The first program was not only familiar with the environment but also the ability to change something in the code and see the result. The default program of the B4J was used.

In particular, it was explained:
  1. How to create a new program with B4XPages
  2. How to run the program and where to see the results
  3. Finally, they were asked to change the button message from β€œHello World” to something of their choice.
This is where the first interest was expressed by the students, who seemed eager to show more messages with new button or even create applications. More generally there was no problem with understanding the subject but on the contrary all the teams worked and showed increased interest.

3. Designer / 2 Hours
At this point the first change was made in relation to the educational material. The concept of variable was not mentioned at all, but I went to the designer and the buttons, labels, textboxes were presented in order to design their own application.
Many groups went further and dealt with colors, frames and images by asking or discovering related tools by themselves. It was very interesting how easy was for them to discover more views and put them in the designer. Funny or beautiful screens came from this 2 hours and each team demonstrate their work to others at the end of the 2 hours.

4. From Designer to Code, Variables / 4 hours
The first difficulties for some students began in this course. In particular, the variables was a bit difficult for several of the students, and I had to insist. The students in the course activated the functions they designed in the designer in the previous course and then created their first executable application. The program accepted two numbers, and depending on the button they would press, one of the additions, subtraction, multiplication, and division operations was performed.

6. Conditional Statement / 4 hours
Command β€œif” was easy enough. Most students had worked on β€œscratch” corresponding commands and easily understood the use.
The checks carried out concerned the data received from a student score screen that they had designed and decided whether the total Average of the grades was good or bad and finally displayed the relevant message on the screen on a label.

7. Subroutines / 4 hours
An explanation of their use was made and programs and subprograms were created using the turtle or using B4XPages. At this point students worked alone doing the examples of teaching materials. Therefore I keep it simple and only simple subroutines used without returning values.

Teaching programming with B4J for me was a pleasant experience. Applications created were interesting for the students and especially they enjoyed a lot. Interest was high and many students chose to stay on break time in order to complete a task. Students downloaded the language to their home computer and were also involved in improving the code they wrote in the workshop. Many students asked to learn how to make games. This is a nice possibility and I believe maybe it will be helpful more teaching materials about simple games creation.

The acceptance rate of the language was high. About 100 students said they liked the subject even though they had no previous experience and would like the course to continue the following year at school.

The time available to us was short and it is proposed to increase teaching hours mainly in variables and subprograms.

I believe that IT teachers worth daring to use the language and that it will give new impetus to your course and more possibilities of exploration in the field of programming.

Some thoughts about the future are the use of B4A in teaching practice; students are very attached to their mobile device and would like more to create apps or games for their mobile phone; maybe some modules could be taught in B4A.