Is Project Based Learning Right for Python?
The Python language has come a long way since it was a Christmas holiday project for inventor Guido Van Rossum back in 1989. Following gradual adoption in the early 90s today it is one of the fastest growing languages in the world. In 2017 Stackoverflow predicted that it would outpace all other languages by 2020.
Fast forward to today and it has become a uniquely popular choice for developers worldwide. Created deliberately to have a more natural syntax than earlier languages like C++ and Java, it is famous for its ease of use, accessibility to new learners, and speed of execution.
Like all programming languages, however, there is a learning curve and every student is different in aptitude and learning style. So if you are setting out to master this extremely versatile language from scratch, what’s the best way?
What is Project Based Learning?
Enter project-based learning. Educators already know that each student is unique and everyone learns differently. One size does not fit all and this is where the Project Based Learning (PBL) approach excels. PBL is a teaching method that empowers students to learn by participating in real-world projects and/or projects that are personally meaningful for them. The formal definition according to the Buck Institute for Education PBLWorks.org is the following:
“Project Based Learning is a teaching method in which students gain knowledge and skills by working for an extended period to investigate and respond to an authentic, engaging, and complex question, problem, or challenge.”
“Extensive research” has shown that PBL students significantly outperform their peers in traditional learning settings. There is every reason to believe that this holds true for software development and for those learning programming languages like Python as well.
The Main Types of PBL
PBL is learning through project work, but projects come in many forms, and project-based learning is not simply ‘doing projects’. Depending upon the learning outcomes PBL can take many different forms. The methods most commonly associated with learning programming languages include the following:
Activity Based Learning
Students are assigned hands-on real-world activities that mimic the problems they will need to solve when in the workplace.
Challenge Based Learning
Students are given problems to solve within a given time frame. It is up to them to gather the tools and knowledge they will need to overcome these challenges.
Scenario Based Learning
Students are given scenarios drawn from actual situations together with means to complete their project or solve the problem. They need to learn on the spot how to use the tools available to them to find the solution.
These three methods clearly have significant overlap. While textbooks need to define clear guidelines, real-world education, just like real-world problems, is never that simple. It is this ‘messiness’ that PBL strives to harness in order to make students as performance-ready as possible in the shortest amount of time.
PBL has wide applications
PBL lends itself remarkably well to software development which is essentially a problem-solving activity. It is not limited to this however and has proven to be effective in a very wide variety of settings. Areas where PBL has shown impressive results include story-based mathematics, visual arts and drama, economics, and much more.
Is it effective for learning Python?
This is the million-dollar question. While coding is quite literally a linear activity as in writing lines of code one after the other, software development is multi-dimensional and usually multi-disciplinary.
One of the problems faced by both educators and students is the transition from academic project work to real-life python projects in the workplace. This can often be quite a shock for the recent graduate who is now faced with ill-defined problems, shifting project goals, knowledge deficiencies, and more.
Traditional teaching methods set Python challenges for the student to solve that will focus on the syntax and use of the language. This approach will not account for all of the problems that need to be solved that are unrelated to the language on even the simplest of projects.
No employer pays a developer to ‘write code’. Business leaders want their experts to make functioning products that solve problems. They don’t care how it’s done, as long as it gets done. This is where PBL can make a hugely significant impact in graduate and employee readiness.
If a project is web-based then a student who is competent in carrying out Python exercises in class may find themselves confronted with web server issues, software compatibility problems, version conflicts, and other issues that they have little to no experience handling.
A modern software project typically involves multiple developers with project members joining, leaving, retiring, writing sloppy code, and more. A small-scale academic project cannot compare in the complexity of design or interpersonal dynamics with a real-world project.
What are the benefits for students?
A PBL based approach will not only expose students to solutions to potential problems, but foster an attitude of creative problem solving that can be applied in a vast array of real-life scenarios as well. In schools where PBL has been integrated into the teaching curriculum, students have shown measurable results including increased retention, better engagement, and improved critical thinking.
Software development and programming students will find themselves better equipped to deal with non-code-related issues, easily remember code solutions to common problems, and are more confident to reason out solutions from scratch than those who take a linear problem-roadblock-solution based approach.
Project possibilities with Python are endless
Project possibilities are limited only by an instructor’s imagination. Some interesting Python projects could be found at coding websites like Practity where students can practice applications Development, data cleaning and data analysis projects, Object Oriented Programming and so on.
The future of programming with Python
The landscape of programming and software development has changed dramatically in the last two decades. It’s not so long ago that Object Oriented C++ was the latest advance taking software development by storm. In the early 2000s, many developers were making the shift to Java as a simpler alternative to C++. Today, however, interest in both of these languages is on the decline and Python is taking their place.
AI and Data Science are currently areas of huge growth that are still in the early stages of development. Python has become the language of choice for developers working in these exciting new fields of software development.
Software engineers interested in staying ahead of the curve with new technology trends should start looking into Python as a key addition to their development toolkit. A great way to do this is to seek out PBL style Python assignments with solutions and to build an online presence of project work on Github.
Python Programmers are in demand
If you’ve been struggling to learn this language or if you’ve already mastered the basics but lack confidence in real-world scenarios, maybe it’s time you took a different approach to get your Python practice up to speed. PBL may be the learning method that gives you the breakthrough you’ve been looking for to build your Python portfolio and take your programming skills to the next level.