The Beauty and Joy of Computing (CS Principles), Part 2 - Berkeley
edX