Tuesday, 22 January 2013

edX - 6.00x Introduction to Computer Science and Programming

My first course with edX was always going to be special. Learning from the MIT Open Courseware from the beginning of my college life, I was delighted to know from a friend that MITx was going to be launched. This MITx soon flowered into edX, a joint collaboration with Harvard and other notable colleges. After the success of 6.002x which was taught by Anant Agrawal, they introduced another course - 6.00x which taught the basics of Computer Science through Python. Eager  to learn more of Python I joined this course with much enthusiasm.


The topics were segmented into 13 major parts and taught by the very famous Eric Grimson, John Guttag and Chris Terman.

The topics covered were -
1. Introduction, Simple Functions and Algorithms
2. Iteration and Simple Methods such as Newton Rhapson, Bisection etc.
3. Recursion and Divide and Conquer Algorithms
4. Debugging
5. Complexity and Memory Management
6. Classes
7. Object Oriented Programming
8. Plotting
9. Simulations, Sampling and Monte Carlo Methods
10. Randomness and Curve Fitting
11. Optimization
12. Graphs
13. Dynamic Programming

There was a lot of emphasis on each of these topics as the course spanned over 3.5 months. There were 2 mid term exams and one final exam which were scheduled after every 4 weeks. There was also a progress bar to show the progress one had made till then.

The greatest thing was that each and every assignment was very challenging and required you to think and apply all the concepts previously taught. One such assignment was the robot problem which was moulded and modified in every case to suit the needs of different topics. It is amazing how one concept can be improved and designed  with every new topic so as to add extra functionality to the model.

I have done many previous courses on Python, namely CS101 in Udacity, Learn To Program Fundamentals in Coursera but without any doubt this was the most wholesome course as it made you familiar with all the concepts and taught how the language can be tailored to suit your need.

Unfortunately this wholesomeness also is a bane for the courses as I felt that the course was endlessly going on for quite a long time ( we are generally more used to 6-10 weeks of course material ). After some time one often loses interest as using plotting and numpy libraries are not the major uses of Python. But just the fact that you have to cover and complete the final and mid semester exams to get a good grade and certificate keeps you going till the very last week.

My suggestion would be to break this awesome course into 2 parts with the first part teaching the important and meaningful data structures and algorithm part needed by every computer engineer and keep the plotting, simulations and probability lectures in the next so as to also entertain those who want to learn more.

Overall an excellent course with challenging assignments, good explanatory video lectures and a valuable course structure. A must take by all tech MOOC fans.

4 comments:

  1. Thanks for posting this insight into the course. I'm currently trying to collect information about how various MOOCs are assessed, and am interested in hearing more about this one. Were there weekly assignments as well as the exams? Were the assessments multiple choice questions or were there any peer-graded parts of the course? Thanks!

    http://moocmoocher.wordpress.com

    ReplyDelete
    Replies
    1. There were finger exercises which are in-video quizzes and also 10 problem sets spread over the 6 months. Not exactly weekly assignments but quite close to that.

      The finger exercises and problem sets were a combination of multiple choice questions and programming questions. There was no peer grading in the course.

      Delete
  2. Great, that's very helpful, thank-you!

    ReplyDelete
  3. Last month i joined Computer training NY and i don't know anything about the Computer and now in one month I can actually access the Computer. Thanks to them.

    ReplyDelete