Advanced Python badge criteria ideas?



  • Hi,
    I have a couple of my older ninjas who are getting quite strong in Python. I’d like to challenge them with Advanced badge concepts, but I don’t know Python myself (other than doing the intermediate cards and some Raspberrypi.org activities).

    A few ideas I have so far are:

    1. GUI (there is a raspberrypi.org GUI activity)
    2. APIs (there are a number of raspberrypi.org activities that use the APIs such as the weather activities)
    3. More with functions - extending ideas from the intermediate cards to pass more data in and out of functions

    Any suggestions on these ideas, as well as additional concepts that I can include to challenge these kids are appreciated.

    Ruth



  • Hi,
    I am working with my ninjas on a couple of tracks with the raspberry pi - robotics , sensors and networking and pygame.

    We are starting to focus less on programming as they get stronger and more on the planning and pitching and how things scale in the real world (think sorting for a leaderboard with 10 entries v 100K entries or storing weather for a month for 10 stations and using it somehow)

    I have a strong focus on middle school students (as a teacher) and moving the younger students away from drag and drop programming and following recipes.

    Cheers Jon


  • CoderDojo Foundation

    Those are good ideas! It’s where I’m going to take things when I re-write the Intermediate Python Sushi Cards and write Advanced ones in the next couple of months. The GUI library I’m planning to use, which looks nice and straightforward to get started with (so much so that I’m bringing it in at Intermediate) is this one: https://lawsie.github.io/guizero/

    When I come to draft the Advanced cards I will be devising the badge criteria for them. They’ll probably involve libraries and API calls, as you mention and will likely try to touch on some object-oriented principles without getting into the weeds of the theoretical aspects.



  • @Philip-Harney Super! My one girl who started asking about Advanced Python criteria at the beginning of August came in this past Sunday with a new Python project where she’d discovered OO and used classes. So, yes, that sounds like another perfect addition - I’ll let you figure out how to get it at the right level:-)

    My two kids who have done GUIs so far used tkinter. Can’t wait to try your updated and new cards!

    Ruth



  • We use Thonny as an IDE as it can manage packages and python versions easily.
    For GUI starting out we use appjar - http://appjar.info

    I am thinking of pushing students to connect to remote services - maybe firebase to store data - so I might push a couple towards that sort of thinking.


  • CoderDojo Foundation

    Ooh… I like the IDE! Keeps us away from the command line and simplifies install and setup.

    I’m going to start with APIs that they don’t have to build themselves (like the Star Wars or Pokemon APIs) to avoid getting into discussion of databases for now. It’s somewhere I’ll have to go eventually though. Maybe I’ll get there in the Advanced series.



  • I concur, pygame is easy to get into.

    Kivy is an interesting UI library to use and will also cross-compile Python apps to native Windows/Mac/iOS/Android apps too.

    We’re going to have kids use c9.io for online coding, they can also run Python code there. It’s only $1/month per “teacher” (mentor) for unlimited students, but the caveat is they only get one private project so some parents might have concerns.

    For those who want an offline IDE, I strongly recommend the PyCharm Educational version. You can set up Python lessons right in the IDE (I’d love to have time to write up the sushi cards as a PyCharm plug-in). You can also build/manage “virtualenv” package dependencies very easily within it, and the IDE is free.

    For other topics, Flask is a very lightweight, easy to use web framework that could tie in the HTML lessons to build a full web site. It doesn’t include a database library so you don’t have to worry about too much complexity. Perhaps a Django-based site which DOES include a database would be a good one as well, if the student wants to persist data.


  • CoderDojo Foundation

    Cloud9 is really nice. I actually recommended it for the PHP Sushi, but it’s got a requirement now that, if you’re not added by a teacher, you need to supply a credit card (even though it’s never billed for the entry-level plan). So I’d totally recommend it for an individual Dojo (where a Mentor can add each Ninja), but I can’t put it in the Sushi Cards anymore.

    PyCharm is what I use for my own development work and I love it, but it’s a proper heavy professional IDE. I didn’t know you could build lessons into the educational version, though. I’ll look into that at some point myself.

    Flask and Django are both pretty cool (I do most of my little side projects in Django) but I’ve not got time to turn out anything for such a comparably small group of Ninjas at the moment, I’m afraid, even if I would love to see a few of them build a blog site or something. If you actually want to do really quick persistence of user-specific info without worrying about DBs or login, check out the session and local storage that JavaScript has access to in modern browsers.



  • @Philip-Harney If they’re building a simple project, and not a production-ready project, sqlite3 is extremely low-barrier to learn simple SQL. Only reason I mentioned Flask and no database is because there’s no SQL sushi cards (that I recall seeing). But using LocalStorage on the browser would certainly work as well for a simple to-do list application.


  • CoderDojo Foundation

    There are these. They’re before my time, though, and I’ve never actually tested them in a Dojo. They do exist. http://kata.coderdojo.com/wiki/Beginner_Databases


Log in to reply
 

Looks like your connection to CoderDojo Forum was lost, please wait while we try to reconnect.