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.
Python would be great for introducing data structures and algorithms for sure, but there isn't much room to expand or advance the lesson like there would be with Java and C++.
ReplyDelete