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…
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.
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:
- Raspberry Pi’s “Getting Started with Git” resource for teachers
- Baking Pi – Operating Systems Development at University of Cambridge
- Tetris Duel project from Imperial College
- List of assignments at the University of Glasgow, School of Engineering
See more GitHub Education posts
Written by
Related posts
Celebrating the GitHub Awards 2024 recipients 🎉
The GitHub Awards celebrates the outstanding contributions and achievements in the developer community by honoring individuals, projects, and organizations for creating an outsized positive impact on the community.
New from Universe 2024: Get the latest previews and releases
Find out how we’re evolving GitHub and GitHub Copilot—and get access to the latest previews and GA releases.
Bringing developer choice to Copilot with Anthropic’s Claude 3.5 Sonnet, Google’s Gemini 1.5 Pro, and OpenAI’s o1-preview
At GitHub Universe, we announced Anthropic’s Claude 3.5 Sonnet, Google’s Gemini 1.5 Pro, and OpenAI’s o1-preview and o1-mini are coming to GitHub Copilot—bringing a new level of choice to every developer.