sunnuntai 30. lokakuuta 2022

My first look into analytical algorithm design

 In the past few weeks, I have made myself familiar with a book called “The Algorithm Design Manual”, by Steven Skiena. As the title suggests, the book mainly focuses on algorithms. In the first chapters, the focus is on analysing and proving algorithms which in this case are mainly mathematical.

The first chapter of the book focuses on explaining the reader how to properly analyse algorithms. Of course, the reader is first introduced to the concept of algorithms and how they function. Next the reader is explained how an algorithm can go wrong. This is done by first introducing a problem, then telling the reader different possible solutions, all of which end up not really solving the problem. I found this method of teaching to be effective because instead of straight up getting the right answer to do things properly, I also learned why certain things don’t work.

Afterwards the book moves on to explaining the reader how to prove that your algorithm is working.  However, it can be rather challenging to prove that an algorithm works as designed which is why it might be easier to prove that an algorithm does not work. If you have any experience on upper secondary level mathematics, this method of proving something might already be somewhat familiar.           

The first chapter focused on how to define a problem and briefly explained how to solve it. The second chapter, on the other hand, focuses more on the analytical and mathematical side of algorithms solving and proving. In this chapter the reader is met with a bunch of mathematical functions that may or may not prove themselves useful on the long run. For me this chapter was definitely the more challenging read. I was a bit taken back by the amount of math I had to read through in this chapter, but I can also see the benefit of knowing these things in computer science.

I had very few expectations when starting to read this book. I chose it because it seemed like a good overall book to help me create better-functioning algorithms in the future. Though the first chapters have been more on the analytical side, which has admittedly felt a bit draining. But I believe that with further reading the book could prove itself to be interesting and instructive. I think this book could be an excellent thing to read if you want to learn the more analytical side of computer science.

2 kommenttia:

  1. I hope your algorithm designing will be enchaned by this book.

    VastaaPoista
  2. I bet reading the book will only have positive effects with your studies. Good post!

    VastaaPoista

The Trade Fair

 Last Thursday my team and I presented our project during a trade fair in Tellus in Oulu University. The trade fair was a pleasant experienc...