{"id":22492,"date":"2020-12-10T07:37:42","date_gmt":"2020-12-10T07:37:42","guid":{"rendered":"https:\/\/www.experfy.com\/blog\/github-data-science-classroom-our-experience-lessons-learned\/"},"modified":"2023-09-28T05:43:36","modified_gmt":"2023-09-28T05:43:36","slug":"github-data-science-classroom-our-experience-lessons-learned","status":"publish","type":"post","link":"https:\/\/www.experfy.com\/blog\/software-ux-ui\/github-data-science-classroom-our-experience-lessons-learned\/","title":{"rendered":"GitHub in the Data Science Classroom: Our Experience and Lessons Learned"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"22492\" class=\"elementor elementor-22492\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-153365ba elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"153365ba\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-364fcd0d\" data-id=\"364fcd0d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bd6bd6f elementor-widget elementor-widget-heading\" data-id=\"bd6bd6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">GitHub\u2019s use for managing assignments in a programming course has benefits for learners and instructors, but its use is not intuitive<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-4e14fa9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4e14fa9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9111076\" data-id=\"9111076\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-79524eb elementor-widget elementor-widget-image\" data-id=\"79524eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"593\" src=\"https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1YTGX5xVjbAZmItzFP-dLGw-1024x593.png\" class=\"attachment-large size-large wp-image-33133\" alt=\"\" srcset=\"https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1YTGX5xVjbAZmItzFP-dLGw-1024x593.png 1024w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1YTGX5xVjbAZmItzFP-dLGw-300x174.png 300w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1YTGX5xVjbAZmItzFP-dLGw-768x445.png 768w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1YTGX5xVjbAZmItzFP-dLGw-1536x890.png 1536w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1YTGX5xVjbAZmItzFP-dLGw-610x353.png 610w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1YTGX5xVjbAZmItzFP-dLGw-750x434.png 750w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1YTGX5xVjbAZmItzFP-dLGw-1140x660.png 1140w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1YTGX5xVjbAZmItzFP-dLGw.png 1678w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-60539bb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"60539bb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4f33b5a\" data-id=\"4f33b5a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-313a19b elementor-widget elementor-widget-text-editor\" data-id=\"313a19b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Image courtesy of Author<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-d5a682a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d5a682a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a8bdb02\" data-id=\"a8bdb02\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a1df75f elementor-widget elementor-widget-text-editor\" data-id=\"a1df75f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Version control tools such as Git and GitHub are common tools of the trade for those working in industry software development and data science teams. While not particularly difficult to use, there is a learning curve to getting up to speed with them, particularly when used from the command line as is typical for professional software developers. Reaching a level of comfort with the system can be intimidating for junior developers entering their first industry roles who have not previously worked with it.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-9de5aa1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9de5aa1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ab2d6a3\" data-id=\"ab2d6a3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-20c9892 elementor-widget elementor-widget-text-editor\" data-id=\"20c9892\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Despite its widespread use in industry, GitHub has only recently seen increasing use in academic class settings. A significant driver of the increasing adoption in universities is the education-specific functionality contained in\u00a0GitHub &lt;a href=&#8221;https:\/\/classroom.github.com\/&#8221; target=&#8221;_blank&#8221; rel=&#8221;noreferrer noopener&#8221;&gt;Classroom&lt;\/a&gt;, which was released in 2015. GitHub Classroom enables instructors to manage the distribution and collection of student assignments via GitHub, rather than a university\u2019s traditional Learning Management Systems (LMS). Although GitHub does not offer the full functionality of a LMS, it does provide several advantages over one, most notably the opportunity for students to gain comfort in working with the tool prior to entering their first professional industry role. GitHub claims that as of August 2019 roughly 20,000 teachers were using GitHub Classroom to manage assignments.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-81fa74f elementor-widget elementor-widget-text-editor\" data-id=\"81fa74f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In Duke University\u2019s\u00a0<a href=\"http:\/\/ai.meng.duke.edu\/\" target=\"_blank\" rel=\"noreferrer noopener\">Master of Engineering in AI for Product Innovation<\/a>\u00a0program we began utilizing GitHub Classroom this fall in our graduate-level courses. Our first pilot with GitHub Classroom was in our Sourcing Data for Analytics course, a graduate-level course focused on sourcing, managing, cleaning and analyzing real-world data. Much of the course, and the majority of the homework assignments the students completed, was programming-intensive with Python being the primary language used. The programming assignments were in the form of Jupyter Notebooks, with skeleton code generally provided to students to get them started on each assignment.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c0cd83 elementor-widget elementor-widget-text-editor\" data-id=\"4c0cd83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>GitHub Classroom was used to distribute homework assignments to students, collect assignments automatically at each deadline, and then return grades and feedback back to students. An assignment is created by the instructor out of a Jupyter Notebook as a template repository in GitHub, and then can be distributed via the automated setup of private repositories for each student containing the skeleton code of the assignment and instructions. Students can then clone the assignment files to their computer, work on it, and push their updated versions back to their repository as they work.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eb91f49 elementor-widget elementor-widget-text-editor\" data-id=\"eb91f49\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><a href=\"https:\/\/nbgrader.readthedocs.io\/en\/stable\/\" target=\"_blank\" rel=\"noreferrer noopener\">NBGrader<\/a>\u00a0was used for assignment grading, including a combination of autograding and manual grading. To facilitate the automated collection of students\u2019 work on each assignment, a helpful package called\u00a0<a href=\"https:\/\/abc-classroom.readthedocs.io\/en\/latest\/index.html#\" target=\"_blank\" rel=\"noreferrer noopener\">abc-classroom<\/a>\u00a0was used. Abc-classroom, developed and maintained by University of Colorado\u2019s EarthLab, enables an instructor to automate the collection of student assignments from their GitHub repositories by cloning them to the instructor\u2019s computer, at which point nbgrader can be used to grade their work. Instructors then push the graded assignments back out to the students\u2019 repositories automatically via abc-classroom.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb70662 elementor-widget elementor-widget-text-editor\" data-id=\"fb70662\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tAlthough the majority of our students had not previously used GitHub, they were able to pick it up quickly and we did not have a single incidence of a student failing to submit their assignment due to issues with navigating GitHub. The following article summarizes our experience using the combination of GitHub Classroom \/ abc-classroom \/ nbgrader for assignment management in our course. For instructors interested in getting started with these tools in their own class, we have developed a detailed\u00a0<a href=\"https:\/\/sites.duke.edu\/ilearninglab\/teaching-with-github\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"broken_link\">step-by-step guide\u00a0<\/a>to help faculty get up and running.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-41f1c28 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"41f1c28\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48f32d8\" data-id=\"48f32d8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a34eda1 elementor-widget elementor-widget-heading\" data-id=\"a34eda1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Benefits for students<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-75026cf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"75026cf\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3c3440a\" data-id=\"3c3440a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6e8c7f7 elementor-widget elementor-widget-image\" data-id=\"6e8c7f7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"557\" height=\"323\" src=\"https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1ZRjOMJ1jeVL8hnj432bxBQ.png\" class=\"attachment-large size-large wp-image-33134\" alt=\"\" srcset=\"https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1ZRjOMJ1jeVL8hnj432bxBQ.png 557w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1ZRjOMJ1jeVL8hnj432bxBQ-300x174.png 300w\" sizes=\"(max-width: 557px) 100vw, 557px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa1333f elementor-widget elementor-widget-text-editor\" data-id=\"fa1333f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Image courtesy of Author<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-37d0350 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"37d0350\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-873f628\" data-id=\"873f628\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ea7cf2f elementor-widget elementor-widget-text-editor\" data-id=\"ea7cf2f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Let\u2019s start with the benefits we have found for students from using GitHub Classroom in combination with the above-mentioned tools. The first and most significant benefit was that students were able to gain practice with using version control during their studies, significantly reducing the learning curve for Git \/ GitHub after graduation when they begin work on an industry team. In our end-of-semester student survey, 82% of students indicated that the use of GitHub in the course was \u201cvery valuable\u201d, and the remaining 18% indicated it was \u201csomewhat valuable\u201d. Not a single student felt that the use of GitHub in the course was \u201cnot valuable\u201d.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89524d0 elementor-widget elementor-widget-text-editor\" data-id=\"89524d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Additionally, the use of Git\/GitHub for version control enabled students to easily revert back to older versions of their saved work as needed. Although we did not require its use for the team-based course project, all student teams decided to use GitHub to manage their shared codebase and collaborative development. Finally, the use of GitHub to manage assignments ensured that each student left the course with not only a level of comfort in working with Git\/GitHub but also their own GitHub <a href=\"https:\/\/www.experfy.com\/blog\/bigdata-cloud\/how-to-build-a-data-science-portfolio\/\" target=\"_blank\" rel=\"noreferrer noopener\">portfolio <\/a>of work which they could build on in the future.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-91a4f7f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"91a4f7f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bce7993\" data-id=\"bce7993\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-65aa771 elementor-widget elementor-widget-heading\" data-id=\"65aa771\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Benefits for instructors<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-b2358b2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b2358b2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8651007\" data-id=\"8651007\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9fe3bb6 elementor-widget elementor-widget-text-editor\" data-id=\"9fe3bb6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The use of GitHub had benefits for the course instructors as well. The key benefits we observed over the semester, relative to the default option of using the university LMS for assignment management, were:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a3c14cb elementor-widget elementor-widget-text-editor\" data-id=\"a3c14cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li>Ease of collecting assignments and automatically organizing them for grading in nbgrader. Thanks to the abc-classroom package, with a couple commands on the command line we were able to download all assignments, organize them for grading and auto-grade them with nbgrader. Our university LMS also allows downloading of all student assignments in one single action, but there is then work required to organize the assignment files into the folder structure needed to run nbgrader on them.<\/li>\n<li>Simplified distribution of graded assignments with feedback. One major challenge of our LMS system (Sakai) is that each graded assignment must be separately uploaded per student in the course. With larger numbers of students this becomes very time-consuming and tedious. Using GitHub Classroom and the abc-classroom package, with a single command we were able to release graded assignments (including any written feedback in the Jupyter Notebook) back to the students. They could then view the graded version in their assignment repo.<\/li>\n<li>It facilitated interaction between students &amp; instructors around their work. If students got stuck or had questions on particular parts of their code, it was easy for the instructor to navigate to their current code version in their GitHub repository and review it to provide feedback. Previously, students would have to email their code files to the instructors (or share screenshots), resulting in difficult-to-follow email threads. The simplified, increased interaction benefitted both students and instructors.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-4dd5691 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4dd5691\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1f42956\" data-id=\"1f42956\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c6ec5c7 elementor-widget elementor-widget-heading\" data-id=\"c6ec5c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Challenges<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-7cc18f1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7cc18f1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2c67ca1\" data-id=\"2c67ca1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5ab612c elementor-widget elementor-widget-text-editor\" data-id=\"5ab612c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Getting started with GitHub for assignment management was not without its challenges. The first and perhaps most significant challenge was that there was no good comprehensive resource for instructors with step-by-step instructors for assignment management using GitHub Classroom and nbgrader. GitHub provides some basic video tutorials on using GitHub Classroom but they are limited to the functionality of GitHub itself and did not cover the other steps of the process which take place outside of GitHub\u2019s walls (e.g. automated assignment collection, grading, and returning of assignments). In order for future faculty members to avoid our own struggles with getting started, we have documented our process in a set of\u00a0<a href=\"https:\/\/sites.duke.edu\/ilearninglab\/teaching-with-github\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"broken_link\">step-by-step instructions\u00a0<\/a>for creating, distributing, collecting, grading and returning assignments using GitHub Classroom \/ abc-classroom \/ nbgrader.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4660fed elementor-widget elementor-widget-text-editor\" data-id=\"4660fed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In addition to the learning curve for instructors, we also had to ensure we efficiently got the students through the learning curve of Git\/GitHub prior to using it for the first assignment. To do this, we spent time in the first class session doing a recorded walk-through of how to navigate Git\/GitHub, and followed that up with a written step-by-step instruction sheet covering the main functions they would need to perform in order to collect and submit assignments.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6fbf976 elementor-widget elementor-widget-text-editor\" data-id=\"6fbf976\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Another challenge we faced was managing large datasets which accompany assignments. Small data files could be included together in the template repository with the notebook assignment file and handled directly through GitHub Classroom. However, many of our assignments required students to work with large real-world datasets which exceeded the size limitations of GitHub. As a work-around, we hosted these files on a cloud server and included a few code lines to download and extract them in the skeleton notebook assignment files we provided to students. We then had to ensure we included a gitignore file in the template repository to prevent the students from trying to push the large data files up to GitHub, which resulted in errors.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-e9eefa3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e9eefa3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-998f849\" data-id=\"998f849\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e176800 elementor-widget elementor-widget-heading\" data-id=\"e176800\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Our conclusion<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-b0c05e6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b0c05e6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-473bcae\" data-id=\"473bcae\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-234cc5f elementor-widget elementor-widget-image\" data-id=\"234cc5f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"560\" src=\"https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1zTVdYLNbr0LZfhrHx6MvQQ-1024x560.jpeg\" class=\"attachment-large size-large wp-image-33135\" alt=\"\" srcset=\"https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1zTVdYLNbr0LZfhrHx6MvQQ-1024x560.jpeg 1024w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1zTVdYLNbr0LZfhrHx6MvQQ-300x164.jpeg 300w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1zTVdYLNbr0LZfhrHx6MvQQ-768x420.jpeg 768w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1zTVdYLNbr0LZfhrHx6MvQQ-610x334.jpeg 610w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1zTVdYLNbr0LZfhrHx6MvQQ-750x410.jpeg 750w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1zTVdYLNbr0LZfhrHx6MvQQ-1140x623.jpeg 1140w, https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/12\/1zTVdYLNbr0LZfhrHx6MvQQ.jpeg 1152w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a283e4 elementor-widget elementor-widget-text-editor\" data-id=\"7a283e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Image by\u00a0<a href=\"https:\/\/pixabay.com\/users\/geralt-9301\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5734827\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"broken_link\">Gerd Altmann<\/a>\u00a0from\u00a0<a href=\"https:\/\/pixabay.com\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5734827\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"broken_link\">Pixabay<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-2aa2eb9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2aa2eb9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-108b0d3\" data-id=\"108b0d3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-56b099b elementor-widget elementor-widget-text-editor\" data-id=\"56b099b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Despite the initial challenges in working out an effective combination of tools and process, our pilot of GitHub Classroom for assignment management was quite successful. Every student in the course noted on our semester-end survey that they found its use valuable in building their skills. Despite the fact that our students came from various branches of engineering and the vast majority did not have strong programming backgrounds, they found it straightforward to use and we did not have a single incidence of a student failing to submit their work due to a challenge in using GitHub. Now that we have assembled a streamlined process, we intend to expand the use of GitHub Classroom to other courses in our graduate program.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e2998c elementor-widget elementor-widget-text-editor\" data-id=\"4e2998c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tStep-by-step instructions for setting up and running a course through Github Classroom and nbgrader:\u00a0<a href=\"https:\/\/sites.duke.edu\/ilearninglab\/teaching-with-github\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"broken_link\">https:\/\/sites.duke.edu\/ilearninglab\/teaching-with-github\/<\/a>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>A significant driver of the increasing adoption in universities is the education-specific functionality contained in GitHub Classroom. GitHub\u2019s use for managing assignments in a programming course has benefits for learners and instructors, but its use is not intuitive.<\/p>\n","protected":false},"author":995,"featured_media":18140,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[200],"tags":[1106,1107,1108,1109],"ppma_author":[3862],"class_list":["post-22492","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-ux-ui","tag-github-classroom","tag-managing-assignments","tag-programming-course","tag-universities"],"authors":[{"term_id":3862,"user_id":995,"is_guest":0,"slug":"jon-reifschneider","display_name":"Jon Reifschneider","avatar_url":"https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2021\/05\/Jon-Reifschneider-150x150.jpeg","user_url":"https:\/\/ai.meng.duke.edu\/","last_name":"Reifschneider","first_name":"Jon","job_title":"","description":"Jon Reifschneider is Executive in Residence at Duke University\u2019s Pratt School of Engineering where he serves as the Director of Masters Studies of the Artificial Intelligence for Product Innovation (AIPI) program and teaches in it."}],"_links":{"self":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/22492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/users\/995"}],"replies":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/comments?post=22492"}],"version-history":[{"count":4,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/22492\/revisions"}],"predecessor-version":[{"id":33139,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/22492\/revisions\/33139"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media\/18140"}],"wp:attachment":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media?parent=22492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/categories?post=22492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/tags?post=22492"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=22492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}