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...