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