In 1959, Dutch pioneer of computer science Edsger Dijkstra published an algorithm that now routes e-mail and gives directions to drivers in GPS-equipped cars. Many beginning students of computer science study his beautiful algorithm.
Every Step Takes Us Closer
When we take to the highway in a car
or send encouraging words through the Internet,
when UPS carries a package far,
there is a choice wherever roads or wires have met.
Our map is points and lines, junctions and roads,
a start, an end, and places to visit in between.
Until we express our methods in codes,
we have but forks beyond which nothing can be seen.
Each piece of our puzzle is a segment.
We must calculate distances to where they meet.
Every piece of measured road can cement
a link in a network that we will all complete.
Computers can add, copy, or compare.
They hold instructions and data in memory.
Programs, like human lives, have junctions where
paths divide and which branch we choose makes our story.
Point and node and vertex label the same.
Edge or arc, either word can name a connection.
At each node remember from where we came.
Sites we visited make a valued collection.
From home to home no distance is reckoned.
Other distances appear impossibly great.
From first stop at home go to the second.
Each step we add to our path is direct and straight.
Our paths will cross and some places we\’ll see twice.
Distances that once looked big shrink when we return.
Finding just the one way does not suffice,
a bonus and a surprise in how much we learn.
Legs of our journey combine and connect.
Organize data, then test and set in order.
See a plan at the end when we reflect.
Every step and turn in the maze moved us closer