77

I'm writing a scientific article and a dissertation in biology, for which I used Python for simulations. Some people in our department, especially the "non-computer-people", don't know what Python is, so I want to reference something helpful. Open-Source scientific tools such as CellProfiler usually tell you how to reference them, but Python doesn't.

How is the Python language properly referenced? Are there any articles in journals available I could link to?

  • 1
    I understand your consternation. Thank you for moving this. FWIW - r has a package to generate citations for each package e.g. citation("rmetadata"). The same format could be used for Python packages. Van Rossum, G. (2007). Python programming language. In USENIX Annual Technical Conference. As per the APA - "Do not cite standard office software (e.g. Word, Excel) or programming languages. Provide references only for specialized software. Ludwig, T. (2002). PsychInquiry [computer software]. New York: Worth." owl.english.purdue.edu/owl/resource/560/10 – Donnied Feb 16 '14 at 20:22
63

In order to cite a programming language, a possible way is to cite the reference manual, including the version of the language you use (your approach might no longer work with the version of Python available in 20 years ...).

For instance, you can have a citation like:

Python Software Foundation. Python Language Reference, version 2.7. Available at http://www.python.org

According to this thread, you can also cite the original CWI TR:

"G. van Rossum, Python tutorial, Technical Report CS-R9526, Centrum voor Wiskunde en Informatica (CWI), Amsterdam, May 1995."

  • 13
    +1 although I usually cite software as … software. It’s a publication, after all. Many citation managers might not recognise this as a citation type but the reason for this is that they’re stuck in the previous millenium, nothing more. – Konrad Rudolph Nov 27 '12 at 16:51
  • +1 for the second suggestion as I have always cited every bit of software that way, and I hope people that use my software would do the same. This is especially true for the more specialized libraries such as NumPy, SciPy and matplotlib for which I can share how I normally reference them if desired. – Bas Jansen Apr 18 '17 at 14:52
  • According to APA6 (from owl.english.purdue.edu/owl/resource/560/09) the citation shall be: "Centrum voor Wiskunde en Informatica (1995). Python tutorial. Technical Report CS-R9526. Amsterdam: van Rossum, G." or so – abukaj May 19 '17 at 10:33
  • 1
    To add on Latex, It was done the following way, can be improved.... @Techreport{CS-R9526, title= {Python tutorial}, author = {G. van Rossum}, number={CS-R9526}, institution= {Centrum voor Wiskunde en Informatica (CWI)}, year= {1995}, address={Amsterdam}, month={May} } and the output is: G. van Rossum. Python tutorial. Technical Report CS-R9526, Centrum voor Wiskunde en Informatica (CWI), Amsterdam, May 1995. – danieltakeshi Jun 7 '18 at 16:46
  • 1
    Okay, you can cite that technical report, but did you actually read that technical report? Probably not. I used python, and I'd like to cite it, but it's bad practice to cite papers/documents that you haven't actually read. I want to cite the programming language and the packages I used, not papers about them. In consideration of this, the first option seems better. – Aaron Bramson Mar 27 at 6:18
5

A common choice I have seen is to cite the software by name and give a link to the website or name the company (for proprietary software) or both. For MATLAB, a mathematical programming language, I have often seen:

...for the simulations we used Matlab (The MathWorks, Inc., Natick, Massachusetts, United States)....

Likewise in citation lists and also in text, you often see something like:

MATLAB and Signal Processing Toolbox Release 2012b, The MathWorks, Inc., Natick, Massachusetts, United States. http://www.mathworks.com/

Note that it is often good to include libraries or toolboxes as well as the languages used. Most computer languages used in academic research are not used alone but depend heavily on add-on components. For these, there may be explicitly given papers to cite or the authors may provide preferred citation rules. The most important component of citing a software package is the website, especially if it is open-source, as that allows others to dig into the details of your work but actually using the same tools!

For open-source software like Python, you could name the organization or give the website:

...for the simulations we used the Python programming language (Python Software Foundation, https://www.python.org/).

Obviously, check your schools formatting demands for dissertations/theses, and note that most style guides have explicit rules for software, and those would apply to computer languages as well.

2

I think it should be standard to cite programming language and used libraries. To cite Python you can use this citation:

@book{van1995python, 
  title={Python tutorial}, 
  author={Van Rossum, Guido and Drake Jr, Fred L}, 
  year={1995}, 
  publisher={Centrum voor Wiskunde en Informatica Amsterdam, The Netherlands} 
}

This citation can be found also here http://www.citebay.com/how-to-cite/python/. At this website there are citations for many Python libraries, that are widely used (numpy, scipy, etc.).

1

This is probably a late answer but now Python's official FAQ page has information regarding 'Are there any published articles about Python that I can reference?'.

It’s probably best to cite your favorite book about Python. The very first article about Python was written in 1991 and is now quite outdated.

Guido van Rossum and Jelke de Boer, “Interactively Testing Remote Servers Using the Python Programming Language”, CWI Quarterly, Volume 4, Issue 4 (December 1991), Amsterdam, pp 283–303.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.