Honors-type students sometimes have a hard time getting started. If you give them only a few hints and let them program freely, they think long and hard. They seem to be afraid of making mistakes.
On the other hand, the mischievous type of student quickly hears the explanation of the hints and proceeds with the programming. Since they do not listen to the explanation of the hints, they make a mistake at first, but they do not care that they made a mistake and immediately start programming again.
As a teacher, I would like them to listen more carefully, but in fact, the naughty type of student repeats trial and error, making mistakes and correcting them to get the correct answer. They often fail to arrive at the correct answer, but they also find the right answer on their own.
If you watch TV programs that introduce innovative companies, you will find that no company succeeds immediately after its establishment and continues to be successful; most companies succeed through repeated challenges and failures. Companies that do not take on challenges out of fear of failure will find it difficult to continue to prosper with the times.
I believe that the learners also need to be aware of the need for trial and error, learning by thinking for themselves and repeating failures, rather than waiting for the teacher’s instructions and explanations.
When they are naughty students, they do not listen to the teacher very much, and in the beginning of learning programming, they often doubt whether they really understand the program, or they modify the program so much that it does not work anymore. However, we have encountered several occasions where, at a certain point in time, they suddenly develop an understanding of programming and begin to create amazing programs.
In addition, we have been told since childhood that we must not make mistakes, but our attitude toward mistakes and errors is changing. Instead of striving to reduce human error, the thinking is that humans are fallible and that what cannot be allowed to go wrong should be carried out by computers. For example, Toyota Motor Corporation is working to automate all processes of in-vehicle system development, including model creation, model verification, C language generation from models (block diagrams), code verification, etc. The purpose of automation is to reduce man-hours and human error.
Of course, for students who are afraid of mistakes and errors, I tell them that mistakes and errors are bound to happen in programming, and it is okay to make mistakes. Many honor student-type students have an honest personality, so after a while they start programming freely.