The glossary for the Software Carpentry course now defines 341 terms. What may be more interesting (for those of you who have been following the course's development) is what I've taken out:
- Code coverage and execution profiling: they really should be in the course, but don't fit into any of the existing lectures.
- Date and time manipulation: it isn't part of software engineering per se, but like Unicode, floating-point roundoff, and a dozen other things, this is one of the subjects that everybody just ought to know about. Again, it doesn't fit neatly into any of the existing lectures.
- Cross-site scripting, and a few other security-related terms: the security lecture has been completely revamped. It's much less ambitious, but (I hope) more informative.
- Everything to do with UML: I've never used it outside of class, and have only ever worked with one person who did. I therefore feel like a bit of a fraud including it in a course on practical software development.
Things that I want to add (eventually):
- Building desktop GUIs: yes, people still do this, and it's a great way to introduce some more OO concepts. Now that there's a book on wxPython, maybe I'll finally do this.
- User interface design, because I agree with Catherine Letondal (who has provided some very useful feedback): you shouldn't show someone how to build a GUI unless you show them how to build a good one.
- Numerical programming, because I agree with Tom Fairgrieve: people ought to need a license in order to use floating-point numbers. I've actually written this one a couple of times, but (a) Python's Numeric module is still in flux, and (b) I don't want to dive into this unless I have something concrete to say about how you test floating-point code.
- Extended examples: I'd like to write at least three or four mini-projects, each taking about an hour to describe, because I believe there are things you can only learn from examples.
For now, though, I'm going to concentrate on getting this release out the door...