zaterdag 15 december 2012

Coursera course 'Algorithms Design and Analysis II'


Two weeks ago I decided to follow Stanfords online course ‘Algorithms Design and Analysis II’ https://www.coursera.org/course/algo2

An intensive course during six weeks in the field of mathematical computer science.

It is about fundamental principles of advanced algorithm design: greedy algorithms and applications; dynamic programming and applications; NP-completeness and what it means for the algorithm designer; the design and analysis of heuristics; and more.

A few pretty good reasons to do this course are
1) it is mind-sharpening exercise when you wrestle with this matter. Sometimes it is really puzzling,
2) it contains basic knowledge for people who are working in the field of data science and
3) its one nice to see and learn about some remarkable points in the history of computer science.
There is however also a reason not to follow this course... time. Personnaly I thought that it would take me two evenings a week. I experienced it took a few bits more this week...

But, I finished the first set of assignments:About ordering tasks in a time schedule, and about “Prim’s Minimum Spanning Tree (MST)” algorithm, a way to find cheapest paths in a graph where each point is touched once. Prim’s algorithm is an up-beat towards a more distributed algorithm, Kruskal’s algorithm. MST’s are used in planning and for clustering data.

The “hurray-getting-a-good-score –feeling” on the assignments gave me a huge motivation to start with the second weeks lectures.

The MST problem was re-visited in context of another beautiful algorithm: Kruskal’s algorithm. The beauty of this algorithm comes together with the application of a special data structure called ‘union-find’. I agree with one of the professors first remarks: The combination of both, the algorithm with the data structure indeed forms a mark on the wall of historical elements that a computer scientists should know.

Huffman’s algorithm was also treated. This algorithm is commonly used for compression purposes such as for example in MP3 music. I needed to read some more background on the web in order to solve the assignment problems.

The assignment problems took me way too much time. In total almost two days including a fair amount of attempts after midnight... Yesterday evening I decided to to stop working on these problems. Although I very much like to do these things, in general the activities take me too much time. Other obliquities, daily work and an active participation in my own family life withhold me from having so much focus on the puzzles.
 
I decided to continue following the course, but only in watching the lectures and learn the historically marked, important to know algorithms. For sure, I know that puzzling with them is the only way to get a masters’ degree, though there is also such a thing as priority.

 

Geen opmerkingen:

Een reactie posten