Back to GitHub Support Contact GitHub

Learn by doing at Cal Poly with GitHub and Raspberry Pi

Professor Chris Lupo has taught at California Polytechnic State University for eight years and recently revamped his upper-level Architecture course using GitHub Classroom. In this post, he shares his workflow for deeper insight into student work, efficient debugging, and community support. _____________________

Open tools lead to a hackable classroom practice

At California Polytechnic State University, the motto is “learn by doing”, so it follows that students learn with real-world tools, rather than with board work and problem sets.

There’s evidence of this learning philosophy in the tools teachers choose—particularly in open source projects GitHub Classroom and Raspberry Pi.

In group work, we do a lot with Raspberry Pi and students get into the habit of making sure they push to get it on their other systems, or so their partners can download changes. The flow encourages strong development habits. Push early, push often—that kind of thing.

Chris uses Classroom to distribute starter code and create individual and group assignments.

Diagnose, collaborate, fix: a debugging workflow that doesn’t hurt

Chris uses Classroom, GitHub’s collaboration features, and Raspberry Pi to work with students when they get stuck. Here’s a quick overview of his workflow:

Quickly access a student repository. Assignments set up through Classroom automatically add Chris as a collaborator, and the dashboard clearly presents a list of student work.


As soon as students click an “invitation link” from Chris, Classroom creates a new repository for them. Here’s the output from GitHub Classroom in Chris’s course.

Clone and comment in-context. Students can see where changes need to be made and leaves comments directly in their code.

Test the fix on his own Raspberry Pi.

Push the code back to the student’s repository, with fixes and comments.

This workflow solves the cumbersome task of transferring files. Both instructor and student can work from their own environments, instead of switching between computers.

I can clone their work, connect to the Raspberry Pi that I have access to, and run their code. From there I can work with them directly on their code base to show them what steps to take and how to move beyond their current problem. After we work together, I can push the code back to them when we’re done.

I have access to everybody’s code all the time. I’ve not had that capability prior to using GitHub Classroom.

An active community of teachers helping teachers

When Chris has questions about Git or best practices, he reaches out to the GitHub Education Community for advice from other teachers.

I’ve also found the community really helpful for support. For example, I learned about a script named orgclone that was really useful for me in repository management.

screenshot 2017-06-26 13 39 18

Even though Git and GitHub take some time to get students up to speed, Chris says students are happy with the experience now that he’s implemented GitHub.

Feedback has been very good. There is a little bit of a learning curve for people who have never used Git before, but they all said it was worth it.

Adapt Professor Lupo’s assignments:

Use Raspberry Pi assignments for a university setting:

See more GitHub Education posts

Have feedback on this post? Let @github know on Twitter.
Need help or found a bug? Contact us.


Discover new ways to build better

Try Marketplace apps free for 14 days

Learn more