This document outlines free resources you can use for your software projects.
Accurate as of Feb. 1, 2021
Hosted VCS is essential as you will frequently receive paired assignments. Solutions listed below are specifically tailored for students as all of them provide private repositories free of charge.
We recommend using git, but any VCS is better than not using one at all.
GitLab is a complete VCS solution that offers free unlimited public and private repositories, along with several other features such as continuous integration.
You can register for the hosted version here, or install it on your own server.
NOTE: GitLab supports both git and hg (Mercurial).
A free tier GitHub account supports free unlimited private repositories and unlimited collaborators.
If you want additional features, GitHub is also offering an education account for students or university teaching staff. University email is required for verification, and the process could take up to 2 weeks. (In practice, after clicking the link in the confirmation email, your account will be automatically promoted to student account).
In addition, students will also receive a list of bundled services to use with GitHub such as free CI times for private repositories.
NOTE: GitHub only supports git.
Apply here for the student account.
Standard BitBucket account supports unlimited private repositories for teams with up to 5 users.
BitBucket also offers free academic accounts that supports team of unlimited members. University email verification is required upon registration.
NOTE: BitBucket supports git only.
Apply by filling out the form.
Atlassian (makers of BitBucket, Jira, Confluence, etc) have a wonderful series of tutorials on git, ranging from basic commands to advanced usage and team workflow. You can find the whole list here.
We recommend you work through the tutorials, setting up a dummy repository and trying the commands as you read through the docs. Remember that the purpose is to understand how git works and how it can help you manage your work, not just to blindly type commands.
Once you have a good foundation of using git on your own, the tutorials under the Collaborating category, e.g. Syncing and Using branches, may help you organize your team workflow.
Note than you don't need to use BitBucket in particular for these tutorials.
Most IDEs are open-source but a few are paid.
JetBrain offers their entire suite of IDE and programming related products for free given that you can prove that you are a student or teaching staff member.
Apply here.
IntelliJ IDEA will be the only supported IDE in the labs.