How to Contribute

All contributions are welcome, whether they're related to minimizing the code, including more examples/tips/tricks, or adding in an entirely new lesson. In some cases, you may even disagree with what is written, and you may wish to provide an alternate point of view. This is also welcome.

This page goes over the rules behind contributing.


Licensing

First and foremost, you should know that the code listed on the website is under a Creative Commons By Attribution 4.0 license. This means that if you're a student and use code from here, you should give appropriate credit and indicate what changes were made. Please see the link for more details. If you're writing code that should have a MIT license (e.g., see Bootstrap), it probably shouldn't be included here. Anyone who contributes is explicitly acknowledging that they are OK with the CC BY 4.0 license.

Of note, you should make sure that you understand the particular organization of this Github repository and its respective pages before contributing. For example, make sure that you understand the site design (e.g., Playfair as header fonts; subsections listed in the dropdown for the sidebar & only not-collapsing the sidebars for the corresponding module, etc.). Make sure that you are prioritizing accessibility, too (see guidelines), for instance by checking color contrast (if you change the design), by adding alt text for images, etc.. Make sure you can also explicitly articulate WHY you are contributing.

Learning Goals

Which brings me to: Learning Goals. If you are designing a new lesson to be included in this repository, you will need to think about what you want students to get from that lesson. People who specialize in course design have already written primers on this kind of thing. You need to make sure that you honor the work that went into this repository by thinking explicitly about course design with regard to your tutorials.

Does the Tutorial Already Exist?

Everyone needs to double check whether the tutorial already exists before adding more links and material. It is far easier to modify a current tutorial with up-to-date information than to edit existing pages and add in another new link. Also, please see the Wishlist page for things that we've already considered that should be added.

What Next?

When you want to contribute, you should join the Organization page with your Github account. Then you will be able to edit or add additional pages to the mix. You should also add to your name to the About page (and the author meta information on the page you edit).

Once you've contributed to the site, make sure to add your name to the Github repository list of contributors, too. Feel free to include this in your online portfolio/CV/resume. Make sure to test out your code/tutorial - e.g., does the code work in multiple browsers? Are there usability issues with your particular tutorial? The only way a repository like this can survive is if we all put in the necessary work to keep it functional. That includes making sure that your tutorial is understood by students within the target audience.