This looks like a great course and book: The Elements of Computing Systems.

The Elements of Computing Systems