I'd highly recommend looking at the edX course "How to Code: Simple Data" and "How to Code: Complex Data" as an introduction to computer science. Those two classes were created around a solid pedagogy of how students learn to break real world problems down into code. Dr. Kiczales is incredibly good at taking everything step by step and making sure nothing gets left out or missed.