Learn to Program: The Fundamentals  by Jennifer Campbell, Paul Gries - Coursera