We all know that algorithms are everywhere. I studied algorithms and data structures in the university, but I don't know them good enough. So I decided to enroll into Data Structures and Algorithms, University of California, San Diego & Higher School of Economics on Coursera. I hope it will be a good experience and lots of fun. I already know half of the material and used some of the advanced algorithms and data structures during my study in university, but I still have lots of gaps.
What's has been covered
Authors of the course claim that students are going to solve about 100 algorithmic problems during the course, that's something I would like to do. I won't post problems and solutions here as it is not very ethical, I will probably put some short descriptions of algorithms for my own reference as well as major key-points that I would like to have somewhere to review afterwards.
During the first week authors guide students through all steps required to solve the problem and submit the solution. They start with two simple problems and show how to approach them. They show how to generate test data for the problem by yourself and stress-test the solution. Authors emphasize on key points in solving algorithmic problems, such as:
- Program has to work correctly on all available inputs
- Testing is a very important part of solving any problem
- Start with small test-cases, then test corner cases, then try how it works with big input
- Implement test generator and use it for generating data for stress-testing
- Try to find the smallest test-case on which the program fails
In this post I described the first week of "Data Structures and Algorithms" on Coursers. There were no challenging tasks during this week, I hope next week will be more challenging.