I highly recommend the book Concepts, Techniques, and Models of Computer Programming (http://www.amazon.com/Concepts-Techniques-Models-Computer-Programming/dp/0262220695) which is the closest I’ve seen to distilling programming to its essence. It’s language agnostic in the sense that you start with a small “kernel language” and build it up incorporating different concepts as needed.
I highly recommend the book Concepts, Techniques, and Models of Computer Programming (http://www.amazon.com/Concepts-Techniques-Models-Computer-Programming/dp/0262220695) which is the closest I’ve seen to distilling programming to its essence. It’s language agnostic in the sense that you start with a small “kernel language” and build it up incorporating different concepts as needed.
The book’s author is running a MOOC on EdX https://www.edx.org/course/louvainx/louvainx-louv1-01x-paradigms-computer-1203