Coursera - Learn To Program : Crafting Quality Code by Paul Gries and Jennifer Campbell

Posted on the 24 April 2013 by Bytesandbanter @bytesandbanter
This course is a continuation to the previous Coursera course Learn to Program : The Fundamentals by Paul Gries and Jennifer Campbell . While this course will be much easier if you have taken the previous course, it is not mandatory according to me. If one has some basic knowledge about Data Types, Loops and Function Design Recipe, he/she can tackle this course without much difficulty.
The course spans 5 weeks with lecture videos, weekly quizzes and bi-weekly assignments. I was pretty disappointed as there was no final exam. A final exam tests the application of the course-wide knowledge gained and how they can be put to use together in one big project. It is essentially is the crux of any course. Each quiz was worth 15% and to get the total 15%, one had to score more than 80% in that particular quiz. There were also assignments as mentioned which were worth 20%. To exploit both computer grading and peer assessment, 1 was computer graded while the other was peer graded. To get a certificate one needed to get 70% in the course assessments.
I felt the course material was a bit haphazard. Every week's material focused on different topics which didn't have much relation with each other. While the first week dealt with handling and manipulation of strings with the example of palindromes, the second week went into how doctests and testing of the code can be done efficiently. The third week included lectures on the sorting and searching algorithms. The fourth week was about Object Oriented Programming (OOP) concepts in Python. In week 5, the content was so small that it didn't even make a 15 minute lecture. It included concepts of passing functions, default values as parameters and error handling. Overall, the entire course felt like a lot of important concepts stuffed together to help code complexity and time optimization.

However, the assignments and quizzes were quite challenging. I especially liked the Rat and Maze assignment which was designed on OOP concepts. It included the development of a game where 2 rats were stuck in a maze and would eat Brussels sprouts to win the race.
Though the course was not bad and the TAs and professors were helpful as usual, my only qualm remains that it could have been structured better to provide students a streamlined approach so that they at least master one before learning the other concepts.