*** DO NOT TAKE THIS COURSE IF YOU ARE A COMPLETE BEGINNER TO PROGRAMMING ***
*** IF YOU WANT A DEEPER UNDERSTANDING OF PROGRAMMING, TAKE THE FIRST TWO U-MICHIGAN COURSERA COURSES ("PYTHON FOR EVERYBODY" SERIES).
THE GOOD: this course gives a *very* concise overview of the basics of Python: conditionals, loops, lists, dictionaries, files. As such, it is an ideal course for an experienced programmer who is new to Python, but not to programming or computer science. Or, as a review/refresher for those who previously took a Python course and looking to strengthen what they've already been taught.
I took this having already taken Python courses elsewhere (namely, the "Python For Everybody" courses offered on Coursera here through U-Michigan). It goes through the same material, but in a more substantive way.
THE BAD: While the instructor was clear, it merely goes through the syntax of Python - basically how it works. It doesn't go into WHY or the underlying framework for computer programming (that transcends Python). As such, if you are new to computer programming, you'll be even more lost. But if you've got some programming background, this may be for you.
THE BAD #2: The course is structured and paced very poorly. Each "week", you watch a ton of 30 sec - 2 min videos, where the instructor *blazes* through a ton of material. The weekly quizzes are typical of Coursera (multiple choice, mostly recall, not challenging). And then just *one* monster assignment to end the week.
The problem with this approach is they throw you a bunch of new concepts (in tiny 1 min videos), and then expect you to put it all together in one monster assignment. It's like explaining to someone very quickly all the components of a car, and then expecting you to fix it all in one go. Or showing someone a list of vocabulary for a foreign language, then some rules of grammar, and then BOOM - expecting to write an essay in one go.
The more effective way of learning is cumulative - building one idea on top of the other. That deepens understanding.
This course instead feels more like a Python cram course for those who already know it and need a refresher.
THE BAD#3: The validation checks for the weekly assignments are done poorly. It seems configured in a way where there is just *one* way to reach the result, and you need to do it that *one* way. This is actually bad practice because in the real world, there are often multiple ways to code something to get the same result, each with their benefits and tradeoffs. Learning that there are often multiple ways to get the same result is essential, which this grading system does not account for.
SUGGESTIONS FOR IMPROVEMENT:
1. Smaller, more frequent, mini-assignments that focus on a subset of the ideas being taught, rather than one monster assignment each week. This will also encourage more people to continue and learn, while being more effective in allowing students to accumulate concepts.
2. If the lectures are as they are (Penn isn't re-recording these again), then have Coursera re-label this as "Mixed" or "Intermediate". This is an intro to Python, but it's not a "beginner" course.