Posts

Showing posts from January, 2025

CST 370 Week 3

Image
  WELCOME TO WEEK 3 Learning Journal - CST 370  This week, we learned a lot. We started with Brute-Force String Matching , an algorithm that aligns the pattern against the first characters of the text and begins to match pairs of characters from left to right. It continues this process until there is either a match or, in the worst case, the pattern is not found in the text at all. The best case occurs when the first characters in the text immediately match the pattern. Next, we learned about Exhaustive Search and its application to three important problems. Exhaustive Search is simply a brute-force approach to combinatorial problems such as permutations, combinations, and subsets of a given set. The first problem we covered was the Traveling Salesman Problem , which involves finding the shortest path through a set of cities (visiting each city exactly once) and returning to the starting city. It is also described as the problem of finding the shortest Hamiltonian cycle. The...

CST 370 Week 2

Image
  WELCOME TO WEEK 2 Learning Journal - CST 370  This week, I learned about the Analysis of Algorithms . First, we reviewed the topic of time efficiency notations , focusing on three key types: Big O Notation , Big-Theta Notation , and Big-Omega Notation . Big O Notation represents the upper bound, meaning it describes all functions with the same or lower order of growth as f(n). Big-Theta Notation represents the exact bound, meaning it includes all functions with the same order of growth as f(n). Big-Omega Notation represents the lower bound, meaning it captures all functions with the same or higher order of growth as f(n).      We also revisited the orders of growth , which, to be honest, I had forgotten about. Luckily, we reviewed them this week to help us better analyze algorithms and identify their time complexity or order of growth. The eight most common categories we covered were: 1, log n, n, n log n, n², n³, 2ⁿ, and n!. To figure out the order of gro...

CST 370 Week 1

Image
  WELCOME TO WEEK 1 Learning Journal - CST 370  Oh, we’re back! A year into the program and a year left to go. I’m very excited for the coming year and all the classes left to take. The class I’m starting with this year is CST 370 - Design and Analysis of Algorithms . So far this week, we’ve reviewed and learned material like data structures. We got an introduction to algorithms and why they’re important. We covered Euclid’s algorithm for finding the greatest common divisor (GCD) of two numbers. Then, we talked about important problem types that drive algorithms, such as sorting, searching, and string processing. These problem types define what must be accomplished by an algorithm. To further explore algorithms, we reviewed some familiar data structures like linked lists (both singly and doubly linked), stacks , queues , and graphs . This week, we focused a lot on graphs and trees , which will be very important throughout the course. We started with the basics of graphs, in...