Monday, 12 November 2012

Coursera - Learn To Program : The Fundamentals by Paul Gries and Jennifer Campbell

After taking the CS101: Building a Search Engine course in Udacity I grew a special fondness for Pythonscripting. It seemed much easier and less complicated than the other two languages I had learnt - Java and C, but as I didn't have any formal education I decided to take up Learn To Program : The Fundamentals class by Paul Gries and Jennifer Campbell.

The course was spread across 7 weeks with lecture videos, weekly quizzes, biweekly assignments and a final exam. To get a certificate one needs to clear the coursework with a minimum of 70%. This, I felt was much easier than the other courses as the final exam was of only 25% and the quiz questions didn't change much so by the 3rd try, one generally knew all the correct answers or atleast enough to get a 70% in that.

The course material was very well organised and the in-video quizzes was very effective in clearing the concepts as we learnt them. They also came with an explanation at the end of three tries so as to help those who couldn't figure it out. The topics covered in the lectures were - 
  • Week 1 - Installing Python IDLE, mathametical expressions, variables, syntactic and semantic errors.
  • Week 2 - Data types, function design recipe ( a very helpful method to code faster and better ) and docstrings
  • Week 3 - Import, namespaces and conditional statements
  • Week 4 - For Loops and String Manipulation
  • Week 5 - While loops, Lists and Mutability
  • Week 6 - File handling ( could have expanded more on this )
  • Week 7 - Tuples and Dictionaries


The function design recipe was a new and unique concept which I learnt in this course. Once you decide the parameters of this recipe, it becomes very clear what is required of the specific function -  the data type to be returned, the example tests and what the function should do. I would recommend this method to be learnt by even advanced Python users as this recipe makes a coder's life much easier.

The use of Python visualizer was another effect which cleared my concepts of the call stack and how the return values affected the called functions.

The only drawback I felt was the level of questions in quizzes and the final exam ( The assignments were really cool). They should have been made harder so as to atleast challenge the students. The output based questions were as good as null and void, as most of the students plugged the code into their IDLE and blindly copied the answer without even contemplating why it should be so. Most of my friends finished the final exam in 30 mins (rather than the stipulated 3 hrs given) by solving questions in this manner.

If you ask me which course to take first - Udacity's CS101 or Learn To Program Fundamentals, I would have to tell you to view the lecture content of the Learn To Program Fundamentals before CS101 as it is  a much more hands on approach and gives a very good and brief intro every single data structure which can be used in Python.

5 comments:

  1. This is definitely the very best course for a beginner, although is meant to be a 2-part course don't forget that! and see you in crafting quality code , great blog btw :)

    ReplyDelete
    Replies
    1. Thanks !! See you in part 2 :)

      Delete
    2. you bet buddy! 2 days for our grades , good luck! :)

      Delete
    3. I agree. This is a very well designed course for the beginner programmer, or even a programmer who is new to python. I am impressed with Paul and Jen's approach, diving right into functions and teaching good documentation habits (docstrings and comments) right from the start. Looking forward to the second part.

      Delete
    4. I too am a big fan of the documentation methods that they taught, seems to make the problem lucid and easy to approach. :)

      Delete