The alternative is to place a field on Department to hold the information and add a rule to say if Child inserted in Parent.omChildren then count child where child.obParent = Parent
The cost of this is a number column plus the processing effort.
The cost of a calculated column is the calculation * number of records
The cost of an external view / stored procedure is the risk that you change an attribute name which then breaks your view / stored proc or you export the application to another database and you forget to move your view / sp.