<p>If you want to self-study:</p>
<p>Some course materials of interest:</p>
<p><a href=“CS10 Home Page”>http://www-inst.eecs.berkeley.edu/~cs10/archives.html</a> (overview for raw beginners to CS and non-CS majors)
<a href=“CS61A Home Page”>http://www-inst.eecs.berkeley.edu/~cs61a/archives.html</a>
<a href=“http://cs.brown.edu/courses/csci0170/”>http://cs.brown.edu/courses/csci0170/</a>
<a href=“Structure and Interpretation of Computer Programs | Electrical Engineering and Computer Science | MIT OpenCourseWare”>http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/</a></p>
<p>Some books of interest:</p>
<p><a href=“http://composingprograms.com/”>http://composingprograms.com/</a>
<a href=“http://mitpress.mit.edu/sicp/”>http://mitpress.mit.edu/sicp/</a></p>