Title: Software Abstractions, Revised Edition