In my opinion punishment should not happen between human beings. Since I was a child I have always believed that a correct parent has other means to educate, such as reward, which is a much more valid reason for behaving in an ethical manner. All that a parent should transmit is ethics, and knowledge of the laws that regulate society and one's personal being, made up of ambitions, desires and responsabilities. Punishment is bad, it causes a chain reaction of negative attitudes and dangerous situations. A child, even if dependent in some ways, is a human being, on whom too ofter the parent incorrectly exercises a tyrannical and disrespectful manner. Children are intelligent, ethical beings who recognize that they have been disrespected, even if they have no strength to do anything other than forgive. This is an all too common situation.
Children are able to see when they have made a mistake and to feel others's emotions; a parent's only job is to give them the tools to analyze, understand and act for the positive outcome without imposing the conception of what is more wrong or more correct. Children are capable of discerning, they just need to be supported. In this way a parent contributes to the strength of character of the child, who as an adult will not have to trust blindly anyone, but will be able to evaluate situations and manage the responsibilities of his own actions.
The only punishment is that of violation of natural laws, which concern karmic issues and the consequences of one's actions. But this is a different topic.