Well, in SENG, this is what I thought as the difference between practical and theoretical.
practical = data flow diagrams, use-cases, class diagrams, requirements engineering, ...
(not sure where rigorous proofing of software fits, i.e B method)
theoretical = operating systems...