The functional programming is a side effect of the desire to teach computer science in a low-friction way. It's nice to not have to also teach Java along with your CS concepts.
I know that when I teach myself anything it's best to focus on one new concept at a time. Scheme's light weight allows all but the CS concepts to fall away from the new coder's consideration.
The functional programming is a side effect of the desire to teach computer science in a low-friction way.
And why not code in a low-friction way even when not being taught? I wasn't intending to defend FP, but I think it's silly to think of assignment as a fundamental part of CS or the art of coding. It's just one tool.