Week 60: CST370 -  Design and Analysis of Algorithms

Week Reflection

This week's module introduced important foundations in algorithms and data structures. I learned what an algorithm is, how algorithms solve problems step by step, and how pseudocode can be used to plan a solution before writing actual code. The videos on Euclid's algorithm for GCD calculation helped me understand how a simple repeated process can solve a mathematical problem efficiently.

One thing that went well this week was learning how to break problems into smaller steps. The pseudocode examples made it easier to think logically about a problem without worrying too much about programming syntax. I also learned about important problem types such as sorting, searching, graph problems, and the Traveling Salesperson Problem. These topics showed me that many computer science problems can be grouped into common categories.

The data structures materials were also useful, especially the introduction to graphs and trees. I learned that graphs can represent relationships between objects, and that they can be weighted or unweighted depending on the problem. Trees also seem important because they organize information in a structured way.

The most challenging part this week was understanding algorithm analysis. Thinking about efficiency and comparing algorithms is different from just writing code that works. However, I can see why it matters because some solutions may be correct but too slow for large inputs.

Overall, this week helped me build a stronger foundation in algorithms. My main takeaway is that good problem solving requires clear steps, organized thinking, and attention to efficiency. Next week, I want to keep practicing pseudocode and algorithm analysis so I can become more confident with these concepts.

Comments

Popular posts from this blog

Week 20: CST 363 - Introduction to Database Systems

Week 11: CST 338 - Software Design

Week 17: CST 363 - Introduction to Database Systems