Hacker News new | ask | show | jobs
by sgeisenh 1097 days ago
"Principles of Imperative Programming" is a misnomer.

The course is really about developing techniques for reasoning about low-level software. You build up abstractions in C by leveraging contracts and writing proofs of correctness based on those contracts.

Explore the "Learning Objectives" section to read about what the course really entails: https://www.cs.cmu.edu/~15122/about.shtml#LO

This was the first computer science course that I took at CMU and it was absolutely mind blowing for me. I had previously taken AP CS and had played around with making games in flash and writing little programs for my graphing calculator. But this course taught me how to reason about my programs (and why that might be valuable, to begin with).

2 comments

> You build up abstractions in C by leveraging contracts and writing proofs of correctness based on those contracts. […] this course taught me how to reason about my programs

That seems like an essential part of what programming should be about? And imperative programming has it’s own considerations on how to go about it. I don’t see how it is a misnomer.

How is it a misnomer?