Skip to content
Repo for DE School material
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Collaborative software development in Python

Dark Energy school: session on Software Engineering

Course preparation

  1. Install Python version 3.5 or newer. Install the dependencies for this course using pip install -r requirements.txt. Run python to verify your installation.
  2. Install an editor, such as Atom or VS Code
  3. Ensure you can execute commands on the terminal / shell. E.g., commands such as python, git, and pytest should run.
  4. Read How To Write Good Scientific Software.



End with 15 mins. Q&A, if time allows.



  • Discuss best practices for design & collaborative coding.
  • How do you best organize a remote collaboration? Meetings, PRs, sprints, chat?
  • Discuss classes vs functions; when is OOP needed in practice? Keep it simple—the truth about clever code. Premature optimization.
  • How to package your code (vs just keeping it in a notebook)

Students will be able to do the following:


  1. Make and navigate branches on Git
  2. Make a git commit to a project
  3. Submit your change as a pull request on GitHub
  4. Review someone else's pull request

Modular APIs, testing

  1. Write a function in Python
  2. Write a docstring for that function
  3. Write a test for that function + corner cases
  4. Execute those tests locally
  5. Have Travis-CI run these tests online
  6. Develop your own Python package, installed using pip install -e ..

Reading from last year

Pre-lesson readings & post-lesson resources:


You can’t perform that action at this time.