SICP is okay for that but if you really want to discourage operational reasoning you should check out courses based on Haskell or ML. I hear the course Bob Harper co-designed is doing really well at CMU.
Our CS department did use SICP for many years, including when I was a student. Unfortunately they just dumped it, I don't know why. The fact they dumped it makes life even more difficult for me with this...