April 18
Discuss final project - please start working on this soon-ish. I will be assigning less weekly
homework to give you time to work on it.
I have decided that I would like to finish the term with two topics:
(1) Work through the ideas behind the "shortest" graph algorithms that I have already mentioned last week: Dijkstra, Floyd, A*, Prim, Kruskal. (Doing one of those much more thoroughly is your final project.)
(2) Introduce you to a new topic : SQL (Structured Query Language) databases. These are used extensively to organize large collections of data, and are one of the mainstays of internet tech.
Questions about where we're going?
Then today and Thursday we'll take up each of these in turn.
Please read about them either in our textbook, on wikipedia, or by googling.
I will be asking you to do these by hand on small examples for homework.
I've chosen these because :
- they are fairly simple to describe and implement,
- they are well known,
- they solve similar problems,
- but use different ideas to get there.
Dijkstra : shortest distance from a start vertex to all others by growing a tree which adds closest vertex to start
Floyd : shortest distance from each vertex to all others recursively
A* : similar to Dijkstra but uses a best-guess vertex to update, not the closest.
Prim : minimum spanning tree by growing it from an arbitrary start
Kruskal : minimum spanning tree by connecting smaller distinct trees
test