This one day course builds fundamental software development practices for data science. Participants learn core techniques for testing software, programming defensively, debugging codes, managing code bases with version control systems and designing maintainable codes. The course mixes presentation with hands on exploration in roughly equal parts.

What You’ll Learn

  • How to use automated testing frameworks
  • How to use debugging tools to trace program execution
  • How to refactor code
  • How to package code for distribution

Topics Covered

  • Review of Python idioms, conventions, modules and packages
  • Debugging software
  • Testing software
  • Packaging software
  • Continuous integration

Who Should Attend

Scientists, analysts and other practitioners with little or no formal training in software engineering who need to manage rapidly growing code-bases.

This course has a limit of 20 participants.


Participants should be comfortable with Python programming (e.g., writing and executing scripts that rely on core structures for control flow, core data structures and make use of imported modules). Experience using command-line user interfaces (e.g., a bash shell, a Windows PowerShell, a DOS shell, etc.) is helpful but not mandatory.