Friday, February 28, 2025

Design & Analysis ofAlgorithms - Week 7/8

 This week was a great look back over the whole course.  As I began to study for the final this coming Saturday, you could see the knowledge build up over each week.  How lessons learned at the start of the course contribute and lay the foundation for topics and ideas at the end of the course.  Overall I really enjoyed this course, it was fun challenging my understanding of how to approach solving a problem, why solve a problem one way versus another (i.e. why use one algorithm vs another).  I feel like even if I don't routinely utilize the detailed algorithmic knowledge I've gained here, I'll use the techniques and information about how to assess a problem routinely.

Tuesday, February 18, 2025

Design & Analysis ofAlgorithms - Week 6

This week was even more trees! But we covered some trees that I hadn't worked with before, like the 2-3 tree, which I think became my new favorite tree of the moment. 

This week's homework was tough, but a lot of fun. It took a couple of more revisions than I thought to be able to correctly pass all the test cases, especially additional test cases other students created.  But it was a fun challenge to force you to think through and really analyze the max heap algorithm and hash table algorithms.  I think it really helped reinforce the learning.

One area I'm hoping we get to explore more is more direct practical application of some of these topics learned in the class thus far.  I know it's hard with time being so compact, but I think seeing more real world utilization of the algorithms, trees, techniques is always insightful and helps to cement the knowledge.

Wednesday, February 12, 2025

Design & Analysis ofAlgorithms - Week 5

 This week we dove head first into covering new algorithms.  It was quite interesting (and fun) to learn about how different algorithms approach and work towards solving their intended use cases.  What I mean by that, is each algorithm has cases it's typically designed to work well for and it's interesting to see those differences.  For example, the quick sort algorithm is geared toward working on lists/arrays efficiently iterating over partitions.  Where as binary search is about locating an element in a sorted list efficiently by halving the list repeatedly.  It's just similar techniques/approaches but applied towards different goals/outcomes.

Tuesday, February 4, 2025

Design & Analysis ofAlgorithms - Week 4

The big thing this week ...Midterm time already.  Week 4 was thankfully a bit lighter on course work, which allowed more time to review for the midterm.  I reviewed the tests we have previously taken, and also went through the processors videos one more time, spending some time working through topics to try and reenforce them.  This was especially true around Big O notation and recursive backward substitution.  I think in the end it all paid off though.

This past week also brought the introduction of merge sort, taking a divide and conquer technique to accomplish its algorithmic task, in this case sorting elements.  Basically by breaking down a larger set of elements into smaller and smaller chunks until you can compare two.  Then the process of merging them back to gather, in order, into a the larger set again, now in order.