This is definitely one of the better computing course subjects. It was taught really well my semester and the content definitely changes the way you look at programming (kinda like declarative programmming did). I honestly think this should be taken right after Foundations of Computing.
Look forward to it!