The fad when I was taking CS 101 in 1985 was &quot;program verification&quot;, so the first thing they taught all the freshmen was &quot;programming calculus&quot; [1], to write code in a stripped down &quot;CF Pascal&quot; dialect, along with proofs of its correctness.<p>I suspect the real reason was to weed out as many people as possible from perusing a degree in CS, because at the time everybody was signing up for CS because they thought it was the ticket to make lots of money.<p>If you didn&#x27;t already have practical programming experience, you were fucked, because you had no frame of reference for what the proofs they wanted you to write were about.<p>If you already knew how to program, it was frustrating and useless, because you already had an intuitive understanding of the concepts they were trying to teach, but you&#x27;d never actually use those &quot;programming calculus&quot; proof techniques in real life -- the scope of the proofs was microscopically small, and couldn&#x27;t scale to real-world non-trivial problems.<p><a href="https:&#x2F;&#x2F;www.cs.umd.edu&#x2F;~basili&#x2F;publications&#x2F;proceedings&#x2F;P39.pdf" rel="nofollow">https:&#x2F;&#x2F;www.cs.umd.edu&#x2F;~basili&#x2F;publications&#x2F;proceedings&#x2F;P39....</a>