-
Notifications
You must be signed in to change notification settings - Fork 1
Description
I am wondering if the the basic definition of an algorithm given in the README is the best for the current context, that of data structures and algorithms. Why? Well for me there is a disconnect. In this context, I would probably give an introduction along the following (summarised): Algorithms are what allow us to do things to data structures; if data structures are pieces of information and how that information is organized, then algorithms are what allow us to do things to organization of information.
Mosly what I am thinking of is keeping the tight bond between algorithms and data structures. So if we are going to keep the example of making a sandwhich, then for me there would have to be a parallel to the concept of a data structure. In the example, the bread, butter, jam, knife, etc would be data structures, with corresponding primitive operations being, spread butter on bread using knife, etc, and then the algorithm would be combining the primitive operations using control structures; e.g. until a suitable a suitable amount of butter has been spread on the bread, spread butter on bread.
In summary, I think the basic concepts flow well in the following sequence:
- primitive data structures
- compound data structures
- primitive operations on data structures
- compound operations on data structures, i.e algorithms, combining primitive operations with control flow (sequencing, repetition, recursion, function composition, etc, etc)
But of course, YMMV.