SMS dit: Advanced calculus: a differential forms approach