Abstract : Software development for scientists and engineers

Category : Recommended   Active   

Homepage : http://software-carpentry.org/

Software Carpentry is an intensive introduction to basic software development practices for scientists and engineers.  This course features a solid introduction to the Python language starting from basics and extending to advanced applications such as databases, GUIs, and web programming.  It also touches on useful topics related to software development such as version control, testing, automated builds, and the Unix shell. 

All of the material is open source: it may be used freely by anyone for educational or commercial purposes.  This material was given as a course in July 2009 at the University of Toronto and the University of Alberta.  Recent news can be found in the blog.


  1. Introduction
  2. Python Basics
  3. Python Strings, Lists, and Files
  4. Python Functions and Modules
  5. Debugging
  6. Version Control
  7. Python Sets and Dictionaries
  8. Image Processing
  9. Basic Unix Shell
  10. More Unix Shell
  11. Automated Builds
  12. Computational Complexity
  13. Python Basic Object-Oriented Programming
  14. Python Advanced Object-Oriented Programming
  15. Quality Assurance
  16. Unit Testing
  17. Databases
  18. Regular Expressions
  19. Binary Data
  20. XML
  21. GUI Programming
  22. Web Client Programming
  23. How Web Servers Work
  24. Web Application Programming
  25. Empirical Software Engineering
  26. Software Development Lifecycles
  27. Summary
  28. License
  29. Glossary
  30. Acknowledgments
  31. Bibliography

    7           6