The first week of a new class is always exciting (and can be a bit nerve-racking). There's the excitement of starting the journey of learning something new, coming to terms with what the coursework is going to be like, and generally just getting settled. I enjoyed the Puzzles and hope they continue.
This week, we got an introduction into the general idea of what an algorithm is. We looked at some known example algorithms like Euclid’s Algorithm for the greatest common denominator. We looked at how a problem can have multiple algorithms that solve it, each with different advantages or disadvantages.
We started looking at how algorithms are used in computer science, for things like sorting, searching, string processing, graph problems, and more.
Speaking of graphs, we delivered deeper into looking at graphs, graph representations, paths, and how they represent data. Akin to graphs, we looked at trees.
And finally, we talked about how to measure an algorithm. Analyzing an algorithm's efficiency, which could be both or either time complexity or space complexity.
This weeks homework was coming up with an algorithm that would detect whether a string is a palindrome or not. There's lots of different approaches one can take to solve the problem, and some are programming languages specific. So it was fun to take some time to thing what might be the most efficient way to determine this.
0 comments:
Post a Comment