I’ve been using Github for a couple of years now to connect with our developer on the HWDSB Commons. We post a lot of code there, sharing it with the rest of the WordPress and BuddyPress community. For those of you unfamiliar with Github, this is how they describe their platform:
GitHub is how people build software. With a community of more than 14 million people, developers can discover, use, and contribute to over 35 million projects using a powerful collaborative development workflow.
When we look at trying to do real things in the classroom, and providing students with authentic tasks, I think Github has a role to play, particularly in secondary Computer Science classrooms. Github is where many international corporations share their work (Vimeo, Facebook, Twitter, Netflix, Apple, Microsoft, and Google, among others). I don’t think there is another segment of industry that works so transparently, and allows the public to look in on the process of how their product is built. Github also flattens the hierarchy, eliminates corporate silos, and allows anyone with a username to contribute to projects, or fork (create your own copy) and hack/remix existing code projects. A Github profile is now being used out in the software development community to gain employment: it’s more powerful than a resume.
Github offers an educational package, and repositories to help teachers use Github in the classroom. If teachers want to teach Computer Science in authentic ways, they should be investigating Github to share code within their classroom. But using it in the classroom is only the first step. The real learning happens when the students begin to see themselves as contributing members of the software community:
As an example, Bootstrap (a theme initially created at Twitter) is available here on Github. There are just under 400 issues that are open on that repository, and the community around the project is quite active. A student could take on one of those issues by forking (copying) the repository and attempting a fix, and then create a pull request to have their contribution pulled into the main repository (a pull request is a request you make to the author of the code, to have your changes “pulled” into the main repository). React, Angular, jQuery, Nodejs: the projects that run the internet are all available and being collaboratively built on Github. When contributors post code, others comment and help to make that code better: they teach each other. How many expectations within a Computer Science class could be assessed by students solving authentic problems on important open source repositories. Even if they don’t get a pull request accepted, watching developers contribute to projects is a rich learning experience every student interested in coding should be exposed to.
The title of this blog post is Charity Begins at Home, because I think that we can help promote contributing to important projects by having our students — with the ability to code — contribute back locally in ways that can make our infrastructure within the board stronger. Our students potentially have a role to play to help create apps they can use in their classes. They see first hand the problems they might be able to solve collaboratively by building software. They can help build apps to support their own learning, or to help teach students in elementary. They could solve authentic problems that exist within our organization. There is a thriving Hamilton Software community that we have partnered with through the Hamilton Code Clubs initiative. The mentors who are visiting our elementary schools could help to audit code created by secondary students. Think about how rich the learning is when students are tasked with solving authentic problems, have an authentic audience for their products, can see them being used, and can iterate on their development through user feedback.
What better way for a fledgling coder to say Hello World.