Next Lecture?

Posted

The Software Carpentry course currently contains the following lectures:

  1. Introduction
  2. The Unix Shell (2 lectures)
  3. Version Control
  4. Automated Builds
  5. Basic Scripting (bool/int/float, for/while/if)
  6. Strings, Lists, and Files
  7. Functions and Libraries
  8. Programming Style
  9. Quality Assurance (basic testing)
  10. Sets, Dictionaries, and Complexity
  11. Debugging
  12. Object-Oriented Programming (2 lectures)
  13. Unit Testing (unittest—should switch this to nose)
  14. Regular Expressions
  15. Binary Data
  16. XML
  17. Relational Databases
  18. Spreadsheets
  19. Numerical Programming (the basics of NumPy)
  20. Integration (subprocess+pipes and wrapping C functions)
  21. Web Client Programming (HTTP request/response, URL encoding)
  22. Web Server Programming (basic CGI processing)
  23. Security (the weakest lecture of the bunch)
  24. The Development Process (a mish-mash of sturdy and agile)
  25. Teamware (introduces portals like DrProject)
  26. Conclusion (various "where to look next" suggestions)

Between now and Christmas, I want to tidy them up, duplicate the examples in MATLAB, and add some of the content I wrote for “CSC301: Introduction to Software Engineering”. Since I won’t have time to do everything, I’d like your help prioritizing. Which of the following topics do you think is most important to add? And what have I forgotten entirely?