August 6, 2014
This post first appeared on Edudemic and EdTechTeacher's blog True Project Based Learning (PBL) challenges students to acquire deeper knowledge of a concept by establishing connections outside their classroom. According to the research on PBL, the main tenets are to create real world connections, develop critical thinking skills, foster structured collaboration, motivate student driven work, and […]
True Project Based Learning (PBL) challenges students to acquire deeper knowledge of a concept by establishing connections outside their classroom. According to the research on PBL, the main tenets are to create real world connections, develop critical thinking skills, foster structured collaboration, motivate student driven work, and enable a multifaceted approach.
Similarly, coding applies all of these core tenets as programs require logical thinking, team work, a variety of tools, and – most importantly – perseverance on the part of the student. Consider the potential of applying the challenges of coding to the proven successful tenets of PBL.
Douglas Kiang (@dkiang), AP Computer Science teacher at Punahou School, used PBL in his classroom to encourage his students to connect with their community. He challenged them to create an iPhone App that fulfilled a need in order to model what happens in real world programming.
While one student created an app that assisted people to find a parking spot during the campus carnival, a few student athletes collaborated on an app for a local physical therapist to show videos and directions for rehabilitative exercises. Another student even worked with a parent to create anapp for autistic children to teach counting, and it has taken off on the App Store! Whether it is an internal, local, or global problem, students strived to solve a problem and coding offered a method for finding a solution.
Much like PBL migrates learning away from worksheets and reports, coding is becoming less about the syntax, or programming language, and more about the logic needed to layout the solution. Some programs, such as Scratch, do not even use a language but rather have students drag-and-drop widgets into a specific order to make a program. The more important aspect of a coding project is that the students gain the bigger picture of how their program can potentially solve the problem at hand rather than master the specific coding languages.
To accomplish this, Douglas ran his course like a startup company, and helpd his classes as meetings. At meetings, people talk to each other, share data, help solve problems, plan, coordinate, ask questions, and show their work. They took ideas from industry and laid out the deadlines in project management Gantt charts in order to logically think through their coding projects. Students completed their programs not based on a syllabus, but through they process they developed themselves.
Collaboration comes natural in coding as questions arise about the technical aspects of the projects. Students seek answers and advice from their peers inside the classroom as well as from outside sources, such as programming forums, ultimately creating a learning community. In a community based project, once a program is coded, testing and further development are necessary. Students rely on each other in order to achieve success.
In Douglas’ classroom, experts from the local community, and administrators from throughout the school, tested the apps and gave feedback. This structured collaboration not only modeled how real programmers work but also illustrated how problems could be solved in the real world.
Completing a program means that all of the functions effectively work. Finding all of the hiccups, and then resolving them, can be a painful and frustrating process. However, the satisfaction of creating a functioning program is fulfilling and builds confidence. Furthermore, in a successful community project, students can be empowered by seeing their apps make a difference.
“Many of my students learned more enduring lessons beyond the mechanics of actually coding something. In the end, what mattered most was making connections with others to find ways for their coding skills to serve others and make a difference in the world. That was the most valuable learning of all.” – Douglas Kiang
“I wanted to give up many times, but in the end I did something I never thought I could do,” said one of Douglas’ students.
By the end of a coding project, a student has identified a problem, researched, determined a solution, and laid out a plan – all before the “coding” begins. Students need to understand how people might use their program more than how to code it. This requires interacting with peers, experts, and community members to test and retest. Douglas’ startup, meeting-style classroom enabled communication, collaboration, and a level of productivity impossible in a traditional classroom model.
Through Project Based Learning and coding, students have the potential to gain a deeper level of understanding of not only programming, but also the topics involved in the content of their application. The vested time and interest into such an undertaking, and the fulfillment of creating a meaningful product with an impact on their community, provides students with an authentic learning opportunity.
As one of Douglas’ students said, “I learned that if I can write my own app and actually get it approved by Apple, I feel like I can do anything!”
Check out the apps from Douglas’ students on the iTunes Store: