Python for Middle Schoolers . Keep It simple, Visual and process oriented

As you know, here at Penjee we’re a big fan of learning Python as your first programming language!

For the last 5 years or so, there has been a big push to teach block based coding  like Scratch to middle schoolers.  And while, many middle schools continue to use these drag and drop programs like Scratch ,   kids are increasingly learning blocks earlier and earlier.

And guess what? That means, that they’re increasingly ready to take the next step into text based programming ! Enter Python!  For all of the reasons discussed here,  Python is the ideal language for a middle school CS curriculum.

One of the primary differences between middle school kids and high school kids is the level of abstract thinking. There’s a reason that algebra is easier for a typical 9th grader rather than an 8th grader, and one of these reasons is- abstract thinking!

So, this begs the question:  As more and more 6th, 7th graders, and 8th graders are ready for text coding, then :

How can we make the learning process less abstract for our middle schoolers?


Well , I can tell you what our answer, here at penjee , is  and how we try to address the distinct needs of kids in those grades.

  1. Visual , Visual Visual  :
    Penjee is very visual.  We constantly use images to convey concepts or ask important questions in the lessons:Not twice
  2. Visual , Visual, Visual cont’d :
    Our project-based curriculum is always based on a Penguin moving around a graphical map.  

    As the animation shows, the visual nature of a Penguin moving around and grabbing fish is a concrete way for a new programmer to get the hang of what she/he is supposed to do .
    And also to see what might have gone wrong.
  3. Visual , Visual, Visual cont’d :
    Code Debugger  
    When a kid first starts typing code, he/she often has many misconceptions about how to connect each line of code to the output . In our app, code is run line by line . As each line runs, it is highlighted and the right side map updates. It took a lot of work on our end to be able to make this happen, but we have seen it really help kids understand how the code that they write connects to specific output on the map.
  4. Visual , Visual, Visual cont’d : We are working on even adding visual breakpoints! (Coming in the 2016-2017 school year). Breakpoints are a core part of debugging . Soon, kids can will be able to click on the map itself and attach a breakpoint to a tile.
  5. Start Simple : We  focus process. And we do this by minimizing the number of objects/commands that kids need to use, when they begin.pam-our-penguin
    We also start with simple objectives. During the first few units, Pam’s only goal is to grab() fish and to not die!  This allows students to focus on the process of programming (rather than memorizing lots of commands right away , or forcing kid to learn about import statements right away, as some sites do).  Starting simple is just one way that we support student learning.


Ultimately, the appropriate time for an individual kid to take the jjump into the Python will vary from student to student ; however, as text based programming increasingly makes its way into middle schools, we hope you consider trying Penjee . Our first course is  and always will be 100% free! So, what are you waiting, let’s learn some python.




Related Posts: