Script based collection of student activities in Classroom

Dear github-classroom community,

We implemented two python modules for automated analysis of GitHub activities. Due to the size of our course, it was not possible to click from one to another repo manually. The script provides a collection of different usage data (commits, branches, pull requests, etc.) based on a name pattern. It anonymizes the data set and generates Python Pandas dataframes or csv files. Take a view on a tutorial

Detailed information can be found on the project page:

We are now looking for additional contributors to implement adaptive feedback mechanisms and tutors dashboards. Or if you have a great idea which features should be additionally integrated … looking forward to your comments!

Sebastian

1 Like

@SebastianZug - this looks very nice, although I haven’t tried it yet. I have a similar need and have developed a simple Python script to analyze git logs and report each developer’s number of commits, merges, lines of code added, deleted, and files changed and generate reports in csv or markdown format. I will try yours out and compare notes!

1 Like

Looking forward to your feedback! What conclusions did you draw from the data collected about the activities? Did you use the script in the context of a course?

1 Like

Yes, I use this for a relatively large software development course, where students work in teams on a semester-long project. They follow an agile development methodology, working in sprints. My goal was to be able to measure the effort each students was putting in each sprint. Git logs can’t tell you how good a student’s code is, but can tell you how regularly and how much they were working on it. As long as students know they should be contributing on a regular schedule, with a specific workflow, I find the results a good rough guide to effort. We do some simple statistical magic to compare each student to the average along each of the key metrics available in git logs. Those at or above average receive full credit for their code contribution that sprint, while those below the average receive less. We combine this with a human review of the quality of their work to come up with a grade for the sprint.

How are you using your tool?

1 Like

Currently, I am using the package for an automatic generation of a dashboard illustrating student activities. A Github Action crawls the classroom repositories and extracts basic information periodically. The results appear in the README file. I want to sensibilize our tutors for certain aspects of the development process according to student activities. Later an anonymized overview should be visible for each student team to support self reflections.

I had the idea that the lecturer implement small pieces of code in notebooks. Afterward, a background script

  • runs the notebooks automatically,
  • extracts the gained data (diagrams, Markdown-tables),
  • and substitute tokens in a README template file.
    LiaScript, a extended version of Markdown, helps to provide a “website”-feeling for the README file :slight_smile: The exemplary implementation focuses on the classroom already used in the tutorial movie.

https://liascript.github.io/course/?https://raw.githubusercontent.com/SebastianZug/GitHubClassroomTutorFeedback/main/README.md#1

I think your activities have the same direction. Probably we should have a discussion about appropriate dashboard design for monitoring collaborative learning processes based on Github?

Sebastian

1 Like

This is cool! The white pattern might be a problem if you change the name of the assignment since it would change the name used to generate the student’s repo. The CSV Classroom generates for each assignment might be a good way to ensure you’re getting all of the student repos.

Excellent idea! Is there a more elegant (automatic) way to extract the repo names from the Classroom csv file? Can I download its content from a script or access the data via API?
If possible, I would add a new “ByClassroomReference” aggregation method.

© 2017 GitHub, Inc.
with by
GitHub Education