> albeit perhaps lacking some of the formal methods and practices that other branches of engineering tend to have.
I'd like to point out that this depends heavily on your institution. My CS program had a class literally called "Formal methods", and every student was required to learn formal proofs before their first programming-heavy class (namely, "Data Structures I").