In this step-by-step tutorial, we’ll dive into how you can become the next open source contributor to the GitHub Classroom CLI, building commands that you can use to improve your workflow as an educator!
The GitHub Internship Program welcomes its summer 2019 students as we celebrate four years. After 5,000 applicants and a tremendous amount of planning, our interns are here and ready to tell you about their experiences with all things GitHub. In this blog series, students share their insight about using the GitHub Student Developer Pack, working with GitHub Learning Lab, and more. Check out the series and come back for more intern posts.
Parth Shah is a student at UC Berkeley, a teacher of computer science in the East Bay, and the recipient of the 2018 National Student Teacher of the Year award. In this post, Parth details his experience with building a learning pathway for full stack development for Learning Lab as part of his course architect internship at GitHub.
In college, I realized that I wanted to do more than learn computer science—I also wanted to teach it. I completed a teaching credential program that allowed me to teach part-time at high schools in the East Bay. That teaching experience directly inspired my intern project. This summer, I wanted to build courses that would help learners understand the basics of full stack development, give them employable skills, and allow them to better engage with the GitHub platform.
From my own college experience, I know that many students are interested in learning about web development. Front-end and back-end development are usually taught separately, and I wanted to develop an end-to-end curriculum that would cover both types of material. As a result, I decided to build a full stack development learning path consisting of two courses, one on React and the other on Express and PostgreSQL. In these courses, students learn the material and then apply their newfound knowledge by building a full stack project from front to back. Building these courses was also the perfect way for me to try out the new course builder UI.
After determining the material I wanted to cover, I had to learn about my target audience. From meeting with members of the Education Team and Campus Experts, I decided that the audience for my courses should be those with basic coding experience. Since a majority of full stack courses are geared towards new learners, I wanted to fulfill a need that wasn’t being adequately met.
To create both courses, I used the new course builder. The course builder made it easy for me to choose what actions I should take when the learner does something in my course. I also used it to validate my config.yaml file, which saved a lot of time. It was a really great experience to be one of the first testers of the course builder and to provide feedback to improve the course authoring experience.
GitHub Learning Lab is structured around project-based learning, so I needed to create a project for students to build. I decided that the end goal of the courses would be for the students to build a single page gradebook web application. They would need to create functionality to add assignments, students, and grades. This application was simple, but it also addressed many important learning standards. I wanted to challenge the learner, but at the same time, I didn’t want to discourage them. In the React course, students would create the entire frontend, while the Express and PostgreSQL courses would teach them to create the API and add a database.
While building the courses, I also had to consider the different ways a student might make an error. Since I wouldn’t be interacting with these students face-to-face to help them debug, I had to figure out how to best integrate feedback into the course so anyone could move on, even if they made a mistake. In my own classroom experience, visualization has been a great tool in providing clarity to my students, and I applied that to the courses I made for Learning Lab by including clear visuals and concrete explanations of concepts.
This summer, I gained new insight into developer education. I was able to witness firsthand how education technology like Learning Lab can benefit people who have never coded before and also help students and developers who are continuing to learn how to code.
This internship also helped me further hone my abilities as an educator. By building courses on Learning Lab and working with fellow GitHub Team members, I learned how to create a course that flows smoothly and naturally. In the past, I’ve worked on creating a curriculum as a component of a course, but I’ve never had the opportunity to design a full course flow. As I continue to build new courses in the future, I can apply the tools and knowledge I gained this summer to create engaging and interactive content that will hopefully make programming more accessible to students and new developers.