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.
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.
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
Katrina is an Open Source Advocate at GitHub. As a frequent speaker and proposal reviewer for conferences like GitHub Universe, she's seen hundreds of speaker proposals—and written a few as well.
GitHub Universe is returning to San Francisco this fall, and we're looking for new voices to lead our breakout sessions. Your stories are unique, and having lived them, you're the best person to share your insights with others. If you're new to speaking, don't let that stop you. We're more interested in your experience solving problems than how many talks you've given.
With our submission deadline approaching on July 28, we're inviting you to share your session idea with us. Speakers will receive an honorarium and travel accommodations to make sure budget isn't a limiting factor in your decision to participate.
How to make your speaker proposal stand out
Here are some tips to keep in mind as you refine your speaker proposal.
Put your audience first.
Identify who can benefit most from your story. Even if it’s a first-person experience, tell it to those individuals in a way that helps them connect with it. Make them feel like they’re a part of your experience by framing it in terms of similar experiences they might have and what they can do with the information you’re sharing.
Set the stakes.
Establish a problem you’re addressing and why people should care. This is separate from the solution. Your audience will only care about a solution if you set up the problem in a way that helps them understand it and apply it to their experiences.
Work towards a solution.
After your audience understands the problem, help them understand how to approach it and what’s novel about your approach. It’s ok if you don’t have it all figured out, but make your experience actionable for others and describe possible solutions.
For more tips, check out Sarah Mei’s “What Your Conference Proposal is Missing”.
A few of my favorite Universe 2016 sessions
There were a lot of memorable sessions last year, but these ones stood out as particularly impactful.
Anjuan Simmons, "Lending Privilege"
Anjuan takes the often divisive topic of privileged and marginalized groups in technology, and puts each audience member on both sides of the divide. He makes the topic relevant to everyone and leaves nobody feeling like they’re to blame. After reframing and providing a place where we can stand together, he helps us look ahead with practical, actionable advice. It's a thoughtful, insightful talk that the audience continued to discuss throughout the conference.
Full blog > https://github.com/blog