Should an English learners' error should be corrected as soon as it is made in order to prevent bad habits? or will it have an impact on the pupils
motivation?
What's the best ways to correct language errors?
I think instantaneous correction can be very helpful with spoken English. It can interrupt the flow of speech but it can avoid something becoming a habit.
Student: Yesterday, I eat
Teacher (interrupting): Not I eat. I ate. Try again.
Student: yesterday, I, um, I ate
Teacher: Again please
Student: Yesterday, I ate some fruit.
Teacher: Good. Again.
Student: yesterday, I ate some fruit.
Teacher: Excellent. Carry on.
There are arguments for and against. There are certainly many students who are going to be intimidated by this method, and will end up not being game to speak at all. Accepting some errors in such a student's speech will give them the confidence that they can communicate - hence they will be more likely to speak, and they will learn.
I would respond badly to the method outlined above if it was a communication class. It would be different if the student was simply being asked to give a grammatical sentence with the word 'yesterday' in it.
The best thing is to know how your individual students respond to different techniques.