Erin's CS stuff

Home Getting Started Topic Explanations Coding Quick Quides

We've got it under control

This page will provide background information on a very common industry tool we'll be using to support our project submission process.

git

git_defined

But what is “version control” (also know as “source control”)? You can find an explanation here: https://aws.amazon.com/devops/source-control/

git is an application that gets installed onto your computer and is what’s being “invoked” when you run any git or gh student CLI commands.

GitHub

GitHub, on the other hand, is a way to view the “remote” version of the repository through a web browser. This is where you can get the URL for the clone command and it’s where you can go to verify that the GitHub Submission process worked.

Classroom50

“Classroom 50 is a free, open-source tool for distributing and auto-grading programming assignments on GitHub.”

After I create the assignment in Classroom50, a link to the assignment is created (students can also use Classroom50 commands to accept the assignment). Staff can see student submissions in their remote repositories (usually through GitHub) and can even download or clone them. This is why I request the repository link when students ask for help with their code.

GitHub also provides an “Autograder” functionality. While we don’t use it for grading, it can be a helpful way for students to get quick feedback as to whether or not they’re on the right track. I’ve put together more information on Using the GitHub Autograder , as it can be challenging to understand the messages.

Collaboration

For most of the semester, we use GitHub Classroom to manage the submission process but one of the greatest benefits of git is its support of collaboration. 

As such, you’ll be adding a new pull command to your repertoire! This command allows you to incorporates changes from a remote repository into your local repository. This means that if your groupmate pushes something, you can use the pull command to easily get those changes onto your computer. This is the most basic process for most software engineering!

Throughout this process of pushing and pulling, it’s very common to encounter something called a “merge conflict”. Although many things can cause a merge conflict, you would probably encounter it when multiple people try changing the same line in the same file. If you see a message in the terminal window about a “merge conflict”, usually the fix is to “resolve the conflict” by editing the document. You can find more information on Resolving Merge Conflicts in the linked documentation.

Summary

Classroom50 makes managing and grading these assignments much easier. For students to be able to participate, they must create GitHub accounts and have accepted an invitation to the correct organizatioin. Additionally, familiarity with git will make working in groups easier and help prepare you to be able to contribute to professional-level projects.