Posts

Showing posts from July, 2025

CST 370 - Week 5

 Hey everyone! This week, I explored several important algorithm design techniques and deepened my understanding of how they are applied in solving complex problems efficiently. One of the key highlights was learning about Quick Sort , a widely used sorting algorithm that relies on the Divide-and-Conquer strategy. I now understand how Quick Sort works by dividing the array into smaller parts around a pivot, sorting those parts recursively, and then combining the results. I also learned about its efficiency and how its performance depends on the choice of the pivot. I also studied Binary Tree traversal methods, such as inorder, preorder, and postorder, and how each serves a specific purpose when working with hierarchical data. Alongside traversal, I learned how to calculate the height of a binary tree , which is a foundational concept for evaluating the balance and efficiency of tree-based data structures. I even added my insights on the class Discord group, explaining an easy calc...

CST 370 - Week 4

 Hey everyone! This week in class, I focused on two main things: learning about Merge Sort and reviewing for the upcoming midterm . We covered Merge Sort in detail, and it really helped me understand how divide-and-conquer algorithms work. I learned that Merge Sort breaks down an array into smaller parts, sorts each part, and then merges them back together in a sorted order. What stood out to me is how efficient it is, especially for large datasets, with a time complexity of O(n log n) . I found the recursive nature of the algorithm interesting, and practicing it helped me see how smaller problems can be solved independently and then combined to solve the larger problem. Aside from learning new material, a big part of this week was focused on reviewing for the midterm . I went over topics from previous weeks like brute-force algorithms, string matching, and graph traversal methods (DFS and BFS). I also spent time practicing problems and using flashcards to reinforce key concepts....

CST 370 - Week 3

 Hey everyone! This week was packed with foundational concepts in computer science and algorithm design. From string matching to exhaustive search strategies and graph traversal techniques, I gained a clearer understanding of how various algorithms work under the hood and how they can be applied to solve complex problems. Here's a breakdown of what I learned: I started the week exploring Brute Force String Matching , one of the simplest ways to find a pattern within a larger text. The method checks for a match by comparing the pattern to every possible position in the text. While it's not the most efficient, it’s a great way to understand the basics of string comparison and sets the stage for more advanced algorithms. The video walkthrough helped solidify how this method operates step-by-step. I then moved on to Exhaustive Search strategies, which involve exploring all possible solutions to find the best one. Three classic problems were covered: TSP (Travelling Salesman Prob...

CST 370 - Week 2

 Hey everyone, This week in class was a mix of challenges, "aha" moments, and some solid progress in understanding how algorithms really tick under the hood. We dove deeper into asymptotic notations like Big-O, Big-Theta, and Big-Omega—which, to be honest, felt a little abstract at first. But once I started thinking of them as tools to describe how fast an algorithm grows, it started to click. Theta notation stood out to me the most because it gives the full picture—kind of like saying, "Hey, this is how your algorithm behaves on average , not just in the worst case." We also covered recursive vs. non-recursive algorithms , and I practiced breaking down recurrence relations using backward substitution . There’s something strangely satisfying about peeling back the recursion layer by layer until you hit the base case and suddenly realize, “Oh! This runs in linear time!” On the more interactive side, I shared a few tips in our class Discord group , which was pretty r...