I have a dog and we live in a place where there are lots of children. Most of these children will go to the gate of people who have dogs and start throwing stones at the gate just to hear the dog bark. Most times, I'll open the gate to send them away and my dog usually sees them.
One day, as we were walking home (without a leash on him), he saw one of those children that used to throw stones at our gates. Immediately he pursued the child and knocked him down. I called him back and told him to go home and apologized to the boy.
He did the same thing another day and has almost done it for 4 of those children now. Now when we go out, I have to put him on a leash.
Although this has reduced the rate at which our gates get stoned, I am afraid he might injure one of those children when I let him go out alone.
How can I stop this behavior or make him forget what those children have done?