It’s no secret that I’m a huge fan of Grok Learning; it’s great that the Australian Computing Academy (ACA) is also using Grok as a platform to deliver some of their resources. My students have even asked me if I’m on Grok’s payroll 😀 (I’m not). This post aims to highlight how I use Grok in curricular and extra-curricular settings.
NCSS Challenge – python + Intro to programming courses
I’ve been using NCSS Challenge since 2013 to teach the Software development and programming option. This python programming challenge runs in Term 3 (like, right now!) and goes for 5 weeks.
When I introduced this annual challenge to IST in 2013, I embedded it into the teaching and assessment program. In a nutshell, I allocated lesson times to complete the challenge and discuss syllabus topics. The associated assessment typically included engagement and achievement on the challenge and then application and/or reflection piece. The range of ability streams within the challenge facilitated differentiation. As students work independently, I monitor and track their progress such that when a student stays too long at a particular problem, I go over and offer to help. When there are 3 or more stuck, I hold a small-group teaching session. I get them to help those who need help later and I listen just in case.
Generally, I get students to do both Beginners and Intermediate streams in the first two weeks. By this time, students and I know which stream best suits their ability…as I kept saying, ‘Easy is boring.’ Occasionally, I got students to also attempt Advanced. So far, I’ve only had one student complete Advanced and that was last year.
This year, colleagues (yes, I have colleagues which is highly unusual for a computing teacher!!) and I agreed to exclude challenge achievement in the assessment. Assessments will instead look at application of what they learned through a coding project, reflection piece, and some problem-solving activities…on paper. I’m quite excited about this change. The Advanced stream this year is VERY different focusing on learning some AI concepts creating a card-playing bot. I hope to get ’round to sharing how I enthused students on another post (yeah, right).
Before or after the challenge, as well as during the challenge for early finishers, I get students to go through the Intro to Programming courses. Sure there’s repetition of concepts but that’s a good thing. The problems are different so students get to do more practice problem-solving with code.
web comp – html/css + new JS courses
Web comp runs at the start of the year. It’s a good way to learn web design as part of the internet and website development option topic. We’ve been using this for 2 years now and each time, the comp served as a platform for learning consequently applied in an assessment task… you guessed it – a website. The task was a ‘choose your problem to solve’ project which involved algorithm design (another story and resource worth sharing in its own right…eventually).
Anyway, after the task, I stumbled through teaching basic JS (I’m a beginner learning with the kids)! It’s like ‘where do you start teaching PhotoShop‘, right? I decided to set some JS programming challenges (thank you 101computing.net – this book is gold – no, it’s not Grok) because some kids can fly and they do. At some point, ACA released via Grok their Cookie Clicker JS course which I personally found helpful and really went a long way to help those who struggled to make sense of other online tutorials. Admittedly biased, there is a reason why my students and I love courses in Grok – the scope and sequence, language, pace, challenges, and whole delivery are very good. I’ve yet to check out the space invaders JS course by ACA, also in Grok.
I get students to complete Intro to Programming, and preferably also course 2. My main focus here is to strengthen their computational thinking as well as exposure to a range of problems that can be solved with code. There are risks as there are discrepancies between their programming experience and the syllabus. To name a few:
- fixed length arrays
- python has no built-in post-test repetition -> though conversion from pre to post is a good skill
- python multiway selection means students often use ELIF in their pseudocode
- array indices could start from one (1) in the syllabus, not the usual zero
- dictionaries are not part of the syllabus
I’m like a broken record on discrepancies. On a good day, it means good discussions on evolution of hardware and software which are also syllabus content. On a bad day, we all just feel the syllabus needs updating (which, by the way, is in the works).
I love how python is easy to learn and has much to offer – or as we say in schools: low-floor/high-ceiling. I use it to demonstrate a lot of SDD concepts including precision in floating points (a series of division by 3s), boolean algebra, ASCII (ord and char), data types, control structures, standard algorithms.
During the NCSS Challenge, I allocate at least one lesson a week for students to participate. It’s a great opportunity to live and talk about the syllabus, i.e. error detection techniques, maintainability of code, internal and intrinsic documentation, test plans (what do you think the hidden test case is?). Fabulous!
Grok has free courses, several thanks to ACA. Currently, we have a school subscription so everyone has access to all courses and comps. When we started the coding club, we got students to do the Intro to Programming courses. If a student is referred to me needing extension, I get them to Grok so I see how they think.
It would be nice to see coding as part of other curricular and extra-curricular activities. The above is what I’ve used it for.
Hmm, the above seems a bit broad-brush but I thought I’d just capture some thoughts and it’s been so long since I blogged I needed to start somewhere. Maybe I’ll add more in the future.
If you’ve come this far reading this, perhaps you care to comment and add ideas (please do, thanks).
Post has been updated 14Aug to correctly attribute JS courses to ACA.