Added a reference to cs50.net for Introduction to programming, and MIT 6.006 OpenCourseware 

CS50.net offers a great introduction to programming, a course taught by David J. Malan at Harvard University, presenting a modern approach towards learning to program. The MIT 6.006 is considered as one of the best courses for an introduction to algorithms and data structures.