Tag Archives: Dijkstra’s Algorithm

Topic 3 – Introduction to Data Structures and Algorithms

Why do I need to learn algorithms and data structures?

Your software must solve real-world problems.

Knowing a  programming language does help you to write software but it does not help you to reuse the existing solutions to save your time and effort when creating a software system.

Many real world problems were already solved and the solutions were documented as data structures and algorithms.

You need to learn them so that you will not reinvent the wheel and can apply them to solve your specific problems to reduce your time and effort or optimize your solutions.

What can I do after finishing learning algorithms and data structures?

You will be able to write a program to tell a computer
- to store and search for something efficiently,
- to sort something for you,
- to encrypt or decrypt sensitive information for you.

Given some programs, you will be able to tell which one will run faster when looking at their source code.

Given a problem, you will be able to choose appropriate data structures for representing concepts in a computer.

That sounds useful! How can I learn algorithms and data structures?

Please read this Jay Wengrow (2017). A Common-Sense Guide to Data Structures and Algorithms. Pragmatic Bookshelf first.

After that please read this Richard J. Trudeau (1994). Introduction to Graph Theory book to learn about graph theory.
After that please read this Thomas H. Cormen et al. (2009). Introduction to Algorithms. The MIT Press book to learn in depth about algorithms and data structures.
After finishing the book please click Topic 4 - Object-Oriented Programming to continue.