Completely ruined by the final assignment.
This could have been a good course. While the lectures are presented at a whirlwind pace of cramming at least a full semester's worth of material into 4 weeks, and not at all for the feint of heart or those without a good solid background already in C and systems -- they are still really strong lectures. Fosdick's rapid-fire rat-a-tat lecturing style is mind bending to be sure, but the material is presented intelligently and articulately. The lectures slides are well-done and are provided for download (unfortunately in mixed formats: sometimes PowerPoint, sometimes pdf). And while the pace would be completely off-putting in a one-shot classroom environment, it is perhaps fitting for a video format where one can pause and rewind. Captions are a must, but unfortunately not all the videos have the right captions associated with them.
While the lectures are generally solid, and the material presented is practical and challenging, the course suffers from a problem that seems to plague the discipline of electrical engineering almost universally. This problem is the fundamental lack in the instructor's ability to bridge the gap between theory based lectures and pragmatic application of this information.
To be clear, there is a LOT of practical information supplied in the lectures. One only needs to be diligent and to view, review, and review again given the lecture style. However, there are numerous gaps between the information presented and the knowledge required to complete the assignments.
This, as I've stated, is a general plague on the house of EE. I have seen this problem in nearly every EE course I have ever taken. By comparison, the same problem is largely conspicuously absent from the teaching culture of the field of CS (I have done a considerable amount of work in both fields). Even in areas where the two disciplines overlap, the pedagogical culture of computer science almost always trumps that of electrical engineering in the singular aim to TEACH.
That all said, one who has a decent background in C programming and a decent systems-level understanding could quite successfully stumble through this material (with the caveat of planning to spend many more hours than the estimated commitment -- I spend 10+ hours per week on this course and have a considerable background in both systems and software). That is ... until the final assignment where it all falls apart. This assignment is, quite simply put, just plain lazy teaching. The assignment itself is a gross regurgitation of requirements that do little to support the ostensibly stated goals of the assignment itself. It is full of holes and ambiguities and contradictions. It would appear to be the case that the true intent of this assignment must be to weed out those who don't have the willingness to make a gargantuan commitment toward sorting out all the guesswork of what the professor REALLY wants. More likely, it's just a lazy effort, and reflects poorly on CU Boulder, Coursera, and the entirety of engineering education.
Could have easily been a 5-star course with a decent focus on clarity and quality and emphasis on teaching rather than lazily falling into the mode of letting the students with the most dedication just figure it out for themselves. Just such a waste of what appears to be solid potential on Fosdick's part