Posts

Showing posts from January, 2026

cst370 Week 3

 This week we continued with brute force techniques including an example involving string matching. This was a helpful illustration of how brute force algorithms work in practice and also showed that the worst case scenario for an algorithm is not always as obvious as it may initially seem. Lectures then covered several classic example problems like the traveling salesman problem, knapsack problem, and assignment problem which demonstrated how different types of problems often require different algorithmic approaches. We also went into more depth on the graph traversal techniques depth first Search (DFS) and breadth first search (BFS). While these concepts were a review for me, the information was valuable because it introduced new perspectives on analyzing their time efficiency. Later in the lectures we covered the divide and conquer algorithms and the master theorem, including on how to identify the time complexity of recursive problems using this method.  The week’s homewo...

cst370 week2

     This week we focused on understanding different ways to analyze algorithm efficiency using Big O, Big Theta, and Big Omega notation. We discussed how each notation is used to describe algorithm behavior. Specifically how and when Big Theta is the most appropriate choice when compared to Big O. This helped understand why we might provide a tight bound versus an upper bound when analyzing an algorithm.      Later we took a look at recursive algorithm analysis, including using backward substitution to determine time complexity for recursive algorithms. We also learned about the brute force technique and how it solves problems by exhaustively checking all possible solutions.      I enjoyed the homework for this week, as it gave me a great opportunity to reevaluate my approach and helped me to practice writing more efficient solutions rather than settling for the first one that worked.

cst370 Week 1

     This week much of what we went over is review, but good review none the less. Lectures included discussing what an algorithm is, how to write pseudocode, identifying graphs and different graph types, and algorithm analysis such as complexity and comparing the efficiency of different approaches.      Revisiting these ideas was a great refresher for the importance of using algorithms to your advantage. Alongside the lectures were fun word problems that encouraged us to think through solutions and view them through an algorithmic lens. These problems made the material more engaging and highlighted how algorithms can be used to solve complex problems efficiently in real world scenarios.