DEV Community

San Kang
San Kang

Posted on

[Adult Learning Log] Data Structures & Algorithms – Week 1 Review

○ New Things I Learned

  • Learned why data structures and algorithms are crucial in computer science.

  • Understood the notations O, Ω, and Θ used for representing the order (number of operations required to solve a problem), and why Big-O notation is especially important.

  • Gained a clearer understanding of pseudo-code (or Pseudo-Code), and why logarithmic complexity such as log₂(n) is often used.

○ Why Are Data Structures and Algorithms Important?

  • Data structures and algorithms are essential in designing any software or program.

  • Data Structure: What structure should be used to store and manage the data? / Algorithm: How can we solve the problem efficiently?

  • Structuring data enables computers to apply algorithms efficiently. These structures are reusable across various programs (generality), and users can use them without knowing the internal implementation (abstraction).

  • A strong foundation in computer science (i.e., algorithmic thinking) is a must for becoming a competent developer in any field. It is especially important in hiring for entry-level positions, internships, and jobs at large or global companies that often include algorithm tests.


○ Algorithm Complexity Analysis

  • To write efficient algorithms, we must be able to analyze their complexity.

  • Although measuring execution time is intuitive, it’s not always practical. Instead, we use a concept called "order" that approximates the number of operations.

  • Big-O (O): Upper bound (worst-case performance) / Big-Omega (Ω): Lower bound (best-case performance) / Big-Theta (Θ): Tight bound (average-case performance)

  • In practice, Big-O is most commonly used because systems must be designed with the worst-case scenario in mind. Designing based on the best case is unrealistic.

○ What is Pseudo-Code?

  • Pseudo-code is a commonly used way to describe algorithms — it presents the core logic in a way that’s easy for humans to understand.

  • Although it can't be executed directly, it helps visualize the steps of an algorithm clearly. Once understood, it can easily be implemented in any programming language.

  • Since it is not bound to any specific syntax, there is no strict grammar. However, there are conventional styles that make it readable — you can think of it as the "body language" of the computer science world.

Top comments (0)