I always like to consider first principles, so I wanted to address three issues:
- What A&DS will I teach, and why these?
- How will I convey the importance of the material? What is its relevance?
- What language will I use for teaching the course?
Address the third question, and something of the first two, I had an idea. You can script The GIMP to do just about anything, and it uses a scheme (and therefore lisp) variant as a scripting language. Brilliant. Not practical to teach, but wow, what a class that would be.
However, there's a simple problem; there is no scheme A&DS book in print. Nor a lisp book. In fact, if you want to teach A&DS, there are three language choices for books in print:
- C++
- Java, and more recently more Java, and yet more Java
- C++ and Java
- C#
- Python
("Algorithms and Data Structures in Books" from Amazon for a more complete list)
Oh, nominally there are pascal options, and MIT Press has published a pseudocode-based A&DS text. But the basic problem is that neither C nor lisp are options.
I will probably go with Java, although Python is tempting, tempting, tempting.
