16 lectures are now in place (more or less), which means I have 8 more to do. The syllabus shows what I've covered already; my current plans include:
  • unit testing
  • XML
  • SQL
  • more SQL
  • small-team development process
What do you think the other three should cover (keeping in mind that this is supposed to be a course on basic software engineering, rather than scientific programming)? Options include:
  1. Basic web programming, with much-revised versions of:
  2. Integration, including:
    • wrapping C code so that it can be called from Python
    • using popen() and its ilk to run external programs
    • (probably) something on refactoring to make code more testable (as per Feathers' excellent Working Effectively with Legacy Code
  3. Three lecture-length examples, building very simple versions of core tools that haven't been covered elsewhere:
    • data lineage
    • continuous integration
    • data consistency checking
  4. Give in, and do the scientific programming stuff anyway:
    • floating-point arithmetic
    • Python's Numeric package
    • data visualization
  5. Scrap the single lecture on development process, and put in four full lectures on the subject
    • XP
    • UML-based processes (probably ICONIX)
    • something else (not entirely sure what)
  6. Something else entirely --- suggestions would be very welcome.
Please let me know what you think.