What's the best way to teach computer science to beginners?

@article{Guzdial2015WhatsTB,
  title={What's the best way to teach computer science to beginners?},
  author={Mark Guzdial},
  journal={Commun. ACM},
  year={2015},
  volume={58},
  pages={12-13}
}
The <i>Communications</i> Web site, http://cacm.acm.org, features more than a dozen bloggers in the BLOG@CACM community. In each issue of <i>Communications</i>, we'll publish selected posts or excerpts.<br /><br /><b>twitter</b><br /><b>Follow us on Twitter at http://twitter.com/blogCACM</b><br /><br />http://cacm.acm.org/blogs/blog-cacm<br /><br />Mark Guzdial questions the practice of teaching programming to new CS students by having them practice programming largely on their own.