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.