I just finished that course this semester, and I totally agree. Really, I think that's what most of my upper-level undergrad CS classes have been -- taking something which is a huge, magical black box and pulling it apart to the point where I can (and do) build one myself.