Short Description

How to exploit practices from collaborative software development techniques in data scientific workflows. Appropriate use of abstraction and classes, the software life cycle, unit testing / continuous integration, and packaging for use by others.

Learning Outcomes

By the end of the course, students are expected to be able to:

  1. Package code for use by others, including the specification of dependencies/requirements.
  2. Use distributed version control and issue tracking to manage multi-person projects.
  3. Specify, implment, and use a data abstraction in Python; write a comprehensive test suite for a data abstraction in Python.
  4. Implement and call S3 methods in R; specify an object’s class in R
  5. Handle exceptional cases in a function or method with exceptions or assert statements
  6. Interpret software licenses and select software licenses that best suit the needs of software that they create.

Reference Material

  • TBD

Instructor (2016-2017)

Note: information on this page is preliminary and subject to change.