Submit to Canvas directly from GitHub
Articles
October 21, 2020

Connecting GitHub and Canvas for programming assignments

In 30 seconds...

Tools for education

It is a widespread practice among educators to engage students with assignments constantly throughout the course to enhance their knowledge and provide practice of the subject. The impact of technological tools in improving the learning experience in the education industry has been growing immensely and has even become the norm of today. These tools not only facilitate learning but also make the process smooth and efficient for both students and teachers. One such tool is Canvas, a popular LMS (Learning Management System), which helps with administration, documentation, tracking and delivery of educational courses at colleges and universities. With the help of Canvas, it is very convenient to hand out assignments, receive submissions and release grades out to students. 

Especially in ICT education, it is also very important to make students familiar with industry standard tools. One such popular tool used across the world, especially in computing education and in the tech industry, is GitHub. Educators prefer that students learn GitHub, because it is a widespread tool in the industry and is a great facilitator of version control and issue tracking aspects of software development. Moreover, GitHub is essentially compatible with all programming languages and offers unlimited private repositories and development tools for free where students can write code and store it. Therefore, educators are very keen that students learn Git and thus be prepared for real world programming. 

Teaching Git using Canvas and CodeGrade

The best way to familiarize students with Git is to engage them with GitHub for sufficient practice. For that reason, and for workflow efficiency, it would be wonderful if the GitHub workflow could be utilised together with Canvas. Unfortunately, GitHub is not designed to meet educational needs and does not natively work together with a learning management system such as Canvas. As a result, students who use Git are required to download their programming assignment files as archives and manually upload them on Canvas for submission. Clearly, this workflow has some drawbacks and is, therefore, irritating, inconvenient and inefficient for both students and teachers. 

It becomes a very convenient workflow if students are allowed to hand-in their submissions to Canvas directly via GitHub. This is where CodeGrade can play an important role. CodeGrade is a platform that makes educators’ lives easier by providing them tools to automate grading and feedback for programming assignments, detect plagiarism, and more to increase their efficiency while simultaneously helping students’ learning experience with continuous feedback. CodeGrade provides a plugin for Canvas that adds these tools within the LMS platform. CodeGrade effectively bridges the gap by seamlessly integrating GitHub and Canvas to allow students to directly submit their work to Canvas everytime they ‘git push’, thereby smoothening the process and making it more efficient. With this workflow, students can also store their work on GitHub repositories while also sending these files directly to CodeGrade, which is then automatically available within Canvas. Once this is set up, a history of submissions is created in CodeGrade for the students and teachers to see and all of CodeGrade’s feedback and efficiency enhancing tools can be used to grade.

Get the most out of Canvas, GitHub and CodeGrade now!

How do I integrate CodeGrade and Git?

We have made the process of setting up the integration of CodeGrade and GitHub into an easy workflow for the end user. As mentioned in the steps below, the configuration can be enabled simply through the assignment settings by the teacher while CodeGrade takes care of the integration in the background. All that has to be done now is configuring the students’ Git repositories, either fully automatically or manually by the student.

Follow these steps to enable this feature:

1. In CodeGrade, go to the ‘Assignment Management’ page by clicking on the Settings button.

2. Find the ‘Allowed upload types’ under the General tab. Select the checkbox corresponding to ‘GitHub/GitLab’ to enable submissions directly via Git.

3. Now students will find the option to connect their Git repository to the CodeGrade assignment, or you can do this automatically using our API.

To learn more about CodeGrade and its features, check out our tour page, or our YouTube channel with videos explaining how to use CodeGrade. Please feel free to book a demo if you are interested in getting CodeGrade at your institution, or in case you have any further questions.

Devin Hillenius

Devin Hillenius

Co-founder, Product Expert
Devin is co-founder and Product Expert at CodeGrade. During his studies Computer Science and work as a TA at the University of Amsterdam, he developed CodeGrade together with his co-founders to make their life easier. Devin supports instructors with their programming courses, focusing on both their pedagogical needs and innovative technical possibilities. He also hosts CodeGrade's monthly webinar.

Continue reading

Teaching Intro to Python with CodeGrade

The CodeGrade Introduction to Python course is an 8-week basic Python course. Students are not required to have any prior knowledge on programming or Python. This course will cover the basic concepts of programming up to Python specific modules and OOP design. It is available for all instructors now.

New release CodeGrade QuietStorm.1!

Find out about all the features and updates coming with our latest release, QuietStorm.1!

New release CodeGrade QuietStorm.1!

Automatically grading Haskell code assignments

Learn about autograding Haskell coding assignments for Computer Science education courses. CodeGrade can help you use tools like input and output checking, Quickcheck, Tasty and HUnit unit test autograding, HLint code quality checking and code structure autograding using semgrep.

Top tips for teaching programming

The most efficient ways to teach students how to code, by defining your target audience, designing your assignments in a meaningful way and eliminating distractions in the classroom.

Top tips for teaching programming

Learn more about CodeGrade!

Grow your coding classroom
without compromise.