This lesson is still being designed and assembled (Pre-Alpha version)

Make Code Citable

Make Code Citable is for people who have created code and seek to share their code with the world. But simply putting it somewhere online does not mean it can be discovered by others or it can find its audience on its own. It is especially important for code used in research activities that others can find, access, and cite the code. So that the code can carry the science foward to its research community, and more can act on it and extend the science; and everyone knows how to cite the code in their own research and thus give the credit properly and make the research more transparent and impactful. The precondition for all this to happen is to make the code discoverable, accessible, and citable when sharing the code.

The goal of this lesson is to help people who are ready to share their code to strategize their code sharing in order to achieve the due impact. The lesson lays out options that one can take to maximize the visibility and citability of their shared code, and informs the learning audience how to implement a preferable strategy based on the properties of one’s code and their own wish. This lesson also intends to deliver some foundational knowledge and technical logistics about sharing and publishing code openly and how to do it more efficiently.

Target Audience

Make Code Citable is intended for researchers who want to share their code or have an idea of build some code product that they eventually want to share with a larger audience. The lesson assumes that the audience has the familiarity of working with some code in research activities and feels comfortable about looking ahead to find out what needs to be done for making a piece of code meet its audience.


Though anyone who would like to explore the idea of sharing code could take this lesson to get a conceptual uptake, technically, the current version of the lesson has been designed with some learning activities that require some working knowledge with GitHub. Proficiency with Git is not required, but we will work with the GitHub Web interface and won’t teach how to use GitHub from scratch. Learners do not need to understand the collaborative Git workflow (e.g. fork a repository or merge a pull request) but will feel comfortable if they understand the basic structure of a repository on GitHub.

Learning Objectives

After following this lesson, learners will be able to:

  • Understand what blocks the visibility, discoverability, and accessibility of their software online
  • Identify their options to make software discoverable and citable
  • Implement their software discoverability and citability choice
  • Maintain the discoverability and citability of their software
  • Integrate the creation and maintenance of their software citability into their workflow
  • Inform their users when and how to cite their software
  • Evaluate their choice and practice of maintaining software citability


Setup Download files required for the lesson
00:00 1. Introduction Why do we need to learn how to make code citable?
Why kind of code is shared in research?
00:00 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.