You are here

Software Engineering for Research Students: How to organize and document your research software project


During COVID-19, Research Commons' services continue.

SFU graduate students are encouraged to book consultations with the Research Commons staff and partners. Consultations are available by phone, via email, or through online video-conference.

Not finding what you're looking for? Please get in touch with us at so we can discuss your research support needs. 


In this hands-on workshop, we will restructure and document an existing Python software project and its code to make it more readable, easier to share with others and easier to hand-off to the next researcher. We will cover how to: comment and document your code, organize your project, add logging, add configuration files and add verification and testing mechanisms. The sample project, both before and after, and all examples will be available for download before and after the class.


  1. A computer with a text editor and Python 3.6+
  2. Basic Python programming experience. This is not an introduction to Python programming. We will be reorganizing an existing Python project with a focus on documenting and reorganizing the code not writing much new code.
  3. We may use the matplotlib Python library for visualization, class interest and time permitting -- and only as a basic visualization tool, i.e. this is not a matplotlib tutorial.


  1. PyCharm text editor – I will be using PyCharm but you are welcome to use a different editor.
  2. Microsoft Excel – we will be reading a data file using Excel – a text editor will work as well.


Note: This workshop is organized and facilitated by SciProg. SciProg—short for Scientific Programming Study Group—is dedicated to building a community of SFU researchers who perform computational data analysis as part of their academic work. SciProg promotes skill sharing and collaboration by (1) organizing 60 to 90-minute interactive workshops covering a wide range of software tools, (2) providing Q&A sessions for peer-to-peer assistance and collaboration, and (3) bringing researchers together at social events like Hacky Hours.


Register for upcoming workshops

No upcoming instances of this workshop found.