If you pay attention to the last few paragraphs in Dijkstra's "On the cruelty of really teaching computer science" he outlines an introductory programming course which starts with training the students in the algebraic manipulation of formulas. I think functional programming can really help you with this, and I haven't tried the logic paradigm yet so I can't tell if it's any better.
It can also help students focus on correctness, and since some of them have probably tried some imperative language already, starting over with a functional language will level the whole class.
If you pay attention to the last few paragraphs in Dijkstra's "On the cruelty of really teaching computer science" he outlines an introductory programming course which starts with training the students in the algebraic manipulation of formulas. I think functional programming can really help you with this, and I haven't tried the logic paradigm yet so I can't tell if it's any better. It can also help students focus on correctness, and since some of them have probably tried some imperative language already, starting over with a functional language will level the whole class.