-
Notifications
You must be signed in to change notification settings - Fork 1
Python for Young Students: Pedagogy (WIP)
There are a million things to learn when learning python. And most of those things, like, say type safety, will have to be actively not taught to the average young student of python. Even before learning python, the average young student at Willow Wind will have to learn how to use the computer to learn python. Below is a rough map outlining the journey the students will need to take.
This is no joke. There are many students who, from a young age, either do not have the opportunity to use computers and devices or are purposefully restricted from using them to varying degrees. For these students, simply learning how to turn on a computer and shut it down, using a mouse or trackpad, and navigating app and folders is a multi-lesson endeavor. And yet, those activities are essential to developing comfort with exploring technology, patience and perseverance when something isn't working right, and a basic expectation with how technology should work:
- Some action must be done for something to happen, and if something happened, then some action must have been taken.
- When something is not working right, there should be a way to fix it.
- If one fix doesn't work, try another one. Repeat until happy.
The Hour of Code has been an indispensable way to give students their first encounter with coding. Include a description of why block coding is a good way to first learn coding, and what students learn through doing it.
Also indispensable. While hour of code is about problem-solving. Scratch is more about creating your own problems to solve. Also allows for remixing and storytelling on a scale not available through code.org. The idea of reading someone else's code to understand it in order to change it or use it, is fundamental to the coding skill set.
What's a good analogy? Learning a dance routine? In that--you can't do python unless you've got this down.
It's the first exposure to a command line interface. Typing in a command and getting a result; reinforces the action/reaction expectation first learned during computer literacy training. But at a higher level of complexity, using typed in numbers and words.
Also, very similar to block coding. But also very different in that all the commands typed in are encapsulated and saved to the file itself.
Then the file itself is used to run the entire program. That's a new paradigm. The interpreter is opening the script file and reading it and running each command.
Navigating a directory structure. This doesn't exist on tablets. Students who have only used tablets and smartphones lack exposure to this.
It's a language that students already know. Reinforces the command/result expectation.
This one's a no brainer. Requires an understanding of the importance of non-character syntax. The () and "" are important. Very very important. Further coding cannot be done until students learn and remember that () and "" are essential.
python learning pedagogy diverges here. Some say visual learning is key. But students who have had block coding experience already have had that visual experience. Building something fast and easy that can handle growing complexity as their understanding deepens...that's where using the bwx-adventure module comes into play. It is simple to learn and there are immediate results. Note that the bwx-adventure module is a layer of code over basic python. There is the chance that learning to use the game module will teach students to use the game module--but not actually learn python. There is a difference. Will need to address that.
Include thoughts on why we're using bwx-adventure instead of writing from scratch.
Include link to the trinket.io blog where I first read about the python text adventure game module.