It is a misconception that incoming MIT freshmen know programming. Some of them might (and a few of them will be world class programmers), but these classes are designed for people who don't know programming, at all and believe it or not great majority will be people who never coded anything. I TA'ed SICP in both MIT and Berkeley (they have a pretty similar class derived from original SICP book, some parts of it is in Python, some in Scheme, some in SQL) and most students believe these classes are for geniuses or for people who already know programming. Wrong, the whole point of SICP is to teach it, and once students try hard they see for themselves that they can learn programming.