Introduction to Computer Science and Programming in Python
Built for students with little or no programming background, this MIT course from Ana Bell, Eric Grimson, and John Guttag uses Python 3.5 to teach how computation helps solve problems. Lecture videos, lecture slides with code, in-class questions with video solutions, and a run of programming assignments walk through variables, functions, recursion, structured data, and algorithmic complexity. The course sits under MIT's Electrical Engineering and Computer Science department and is the standard entry point before its sequel, 6.0002. Readings and instructor insights from the teaching team round out the self-study path, and every lecture from 1 through 9 has matching worked video solutions. By the end you can write and reason about small Python programs that accomplish real, useful tasks.