GitHub in Data Science Classroom: Our Experience & Lessons Learned

GitHub in Data Science Classroom: Our Experience & Lessons Learned

Ruby on Rails Minitest on Github Actions: Parallel Testing. 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. There is a learning curve to getting up to speed with them.

GitHub’s use for managing assignments in a programming course has benefits for learners and instructors, but its use is not intuitive

GitHub in the Data Science Classroom: Our Experience and Lessons LearnedImage courtesy of Author

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.

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 GitHub  Classroom, which was released in 2015. GitHub Classroom enables instructors to manage the distribution and collection of student assignments via GitHub, rather than a university’s 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.

In Duke University’s  Master of Engineering in AI for Product Innovation program 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.

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.

NBGrader was used for assignment grading, including a combination of autograding and manual grading. To facilitate the automated collection of students’ work on each assignment, a helpful package called  abc-classroom was used. Abc-classroom, developed and maintained by University of Colorado’s EarthLab, enables an instructor to automate the collection of student assignments from their GitHub repositories by cloning them to the instructor’s computer, at which point nbgrader can be used to grade their work. Instructors then push the graded assignments back out to the students’ repositories automatically via abc-classroom.

software github classroom universities github

What is Geek Coin

What is GeekCash, Geek Token

Best Visual Studio Code Themes of 2021

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

How to Compare Multiple GitHub Projects with Our GitHub Stats tool

In this article we are going to compare three most popular machine learning projects for you.

Custom Software vs Off-the-shelf Software: How to select a better one for your business?

Custom Software or Off-the-shelf software, the question in mind for many business personnel. Read this blog to get help to make right decision that will benefit your business.

Software Developer vs Software Engineer — Differences: Bogus or Real?

In this article, see if there are any differences between software developers and software engineers. What you’re about to read mostly revolves around my personal thoughts, deductions, and offbeat imagination. If you have different sentiments, add them in the comment section, and let’s dispute! So, today’s topic…

Offshore Software Development - Best Practices

To make the most out of the benefits of offshore software development, you should understand the crucial factors that affect offshore development.

Stay Safe on GitHub: Security Practices to Follow

As developers in this deeply interconnected community use open source code to build software, Github security should be a top priority. This is because extensive code re-use increases the risk of distributing vulnerabilities from one dependency or repository to another. As such, every contributor should focus on creating a secure development environment. Here are eight security practices that GitHub users can follow to stay safe and protect their code: