How I teach computing with Grok Learning + ACA and python (mostly)

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.

9 and 10 IST (Information and Software Technology)

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).

This year, I have some really keen programmers and I told them they could use JavaScript to enhance their sites. My students were clamoring for a JS tutorial in Grok…alas, it didn’t come till after the fact.

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.

SDD(Software Design AND Development)

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!

extra-curricular

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.

 

Print Friendly, PDF & Email

PBL to learn JavaScript

I’ve been meaning to learn JavaScript but always fall flat largely due to the good ol’ lack of time. Really though, I think it’s because learning a new programming language is overwhelming – there’s so much to learn and some resources can even make pros like Brad Post feel like an idiot. And yet, I normally send off my computing students to do tutorials. The irony!

Anyway, I decided that the best way for ME to learn JS is to force me to dive right in with a project. Not totally for selfish reasons, actually, as I think my students would benefit from learning it too. Many of my year 11 Software (SDD) students can program in python (thank you Grok Learning) and a few can do java (thank you FRC). While many can also write HTML/CSS (thank you again Grok Learning), none would own up to knowing JavasScript. We could all be beginners!!

So I launched a PBL with the driving question “Can we do better than the textbook?” (There are several PBL models but I love, love, love the Hewes’ version – check it out). My students and I will learn JS and SDD topics to create a website with topic pages and interactive review pages. There will be only one site for the two classes so the product – and code libraries – will be shared. Additionally, this PBL helps exercise effective learning strategies (The Learning Scientists), e.g. elaboration, concrete examples and dual coding for creating the topic pages and retrieval practice, interleaving, and spaced practice for completing the quizzes.

The plan is to learn/discover, create and share with purpose.

Model the system

Because the site is a software system in its own right, I modeled it using the systems modeling tools in the SDD syllabus. I believe modeling is a good teaching technique and certainly good experience for my students to use models generated by others.

Not only would they learn JS, they’re going to live the syllabus in an authentic way. Oh the questions! Rich as…as I showed them the models including the storyboard and structure chart below  (click to enlarge and thank you lucidchart)- these 2 diagrams on a recent assessment task gave many students grief.

Our site would start off with the Hardware and Software topics so I could allocate one each, with one to spare for me. It’s easy for them to research and there’s loads of multimedia resources as well. We have two weeks to do this.

 

Storyboard

Storyboard

Structure Chart

Structure Chart

Model the learning

When I launched this PBL to the class, I also showed my rather ugly login and menu screens – a student quipped, “I can see why you’re a computing teacher and not an art teacher“. Ha! I actually styled it better by next lesson. Also, the pseudo-login (no cookies just parameter passing via JS) did not work which I owned up to as something I was still working on (it sort of works now).

In fact, this was what I planned for students to do, i.e. focus first on their HTML content and then style later, insisting on a separate CSS file. And I also planned to introduce JS once they’ve handed in drafts of their topic pages.

Learning with the kids (Kids are awesome)

I was alone in settling for an ugly page initially because they soon went off playing with their CSS files. They went off exploring various HTML tags and CSS styles in ways I could not have predicted.

  • There’s this super-quiet kid who I gave a shout-out because he was doing gradients and image blurs via CSS (I didn’t know it could!) – while a couple was doing that in PhotoShop (what is it with kids and gradients????). Anyway, that opened the gates for wider sharing in the class…not something I anticipated, silly me.
  • And then there’s this kid who said he had no programming experience and there he was with JS script to load date and time. He wanted them to display on one line  but my CSS inline-block technique suggestion failed. I did know about string concatenation so we solved his problem via JS – will be sharing that with the rest of the class next week…it’s legit syllabus content.
  • There’s another kid who worked pretty quickly so I suggested animated asides. Rather than going for a CSS solution, he’s decided to do it via JS …with image blur to boot, because he’s found out from a peer. I’ll be sharing all that with the rest of the class next week.
  • There’s another kid who insisted on animating a shape so it ‘bounced’ left to right…whatever for, who knows?! This algorithm makes use of flags, functions and several control structures they have to learn – will be sharing that with the rest of the class next week.

In fact, several students have already incorporated JS into their code, problem-solving with me and peers as they went along.  Here I was with my contrived pseudo-login to provide a JS problem to solve yet they were soon busy finding/creating their own problems. I’ve got loads of examples from students now.

So yeah, I was learning with them.

It’s not an assessment

A week in and a week to go, the  task is not over and I’ve only got their draft HTML/CSS – reluctantly submitted as still being rough – or empty (but stylish). I can tell students are engaged. I can tell they’re keen to learn and are learning….together…with me.

This is not an assessment…at least not a formal one. It is a rich source of formative assessment  though, even for me.  Like Bianca Hewes said, PBLs are “a busy, complex, yet organised ecosystem of learning“.

I’m cool with that 🙂

 

Aside: I use my blog for my own reference and to help me remember, I often link to resources used as I’ve blogged them in context. I’m adding here a really useful resource Brad Frost (mentioned above) shared about writing kinder and more helpful technical documentation created by Jennifer Lyn Parsons. This’ll come in handy when we get to that part of the syllabus!

Print Friendly, PDF & Email

Hope

Action-research done and dusted and I got my application approved for Experienced Teacher accreditation today! It’s been a looooong and arduous journey. My blog hasn’t kept up with it though I did have one at the start, then the middle-ish, and now the end.

Data analysis confirmed what I intuited and shared in the second post, i.e. systematic integration of self-regulation processes really does impact student well-being. It could be positive as well as negative. Interestingly, student self-report data was inclusive. Teacher observation data confirmed it but there’s the observer-expectancy effect niggling at the background. Triangulation using student performance tasks (there were 3) helped.

I was going to blog more about details but this late in the piece, I’m literally over it. Instead, I want to note down for future reference what I plan to integrate into my teaching practice from next year.

Self-regulation practices

Teach students about self-regulation. I will use Barry Zimmerman’s SR learning model just like I did in my action-research. This means giving them a framework, conceptual understanding (and eventually appreciation), as well as the language of self-regulation.

Goal-setting

Set distal goals at the start of the year and revisit each term. Since we have a strong effort  (with personal and social aspects) and achievement narrative at school, I’ll most likely get students to set goals for these two at least.

I want this noted electronically so maybe in our LMS.

Set proximal goals at the start of the term and then again weekly. This practice will help re-focus on distal goals and the little steps to get there.

I’m happy to give students flexibility on this. They may use their school diary, own journal (I love my bullet journal system), or electronically.

Performance Monitoring

Retrieval Practice will be a regular activity at the start of the lesson. This worked so well in my project that I kept it going. I actually had a schedule of topics to allow for interleaving and spaced practice. Prompts required elaboration, dual coding, concrete examples or pure recall. (Check out these learning strategies from learningscientists.org). I love Blake Harvard‘s method of colour-coding for retrieval practice and will definitely give it a go.

Track key measures at least once a week. I discovered trackers when I discovered bullet journals. Data collection could easily go crazy so I will have to think this through more carefully. It could be as simple as emojis for effort and achievement that lesson. I’m more interested in helping raise self-awareness as a premise for self-management and regulation, than the actual data.

Model proximal goal setting and monitoring using checklists for learning tasks and activities.

Self-evaluation

Reflect on (learning) process and product (learning outcome) at the end of each unit and/or task. I used Google Forms, OneDrive Forms, paper-based forms, and whole-class discussions for this. Our new LMS present new ways to do this, too.

Remind students regularly about the relationship between effort and achievement, and the notion of progress. Skilled self-regulators attribute achievement to personal effort; it’s getting naive self-regulators to do the same that’s really tricky. I found that it helped to point out their progress which means they’re on their way towards achievement.

 


Doing my action-research “forced” me to systematically integrate the self-regulation practices I wanted students to engage in.  Everyone got better at it and their achievement and well-being improved. Their last reflections were detailed and with appropriate attributions showing many have internalised the effort-achievement narrative. One particular student who was so anxious and owned up to being poor at reflection wrote 6 months later, “I no longer fear the future. …”

Hope is found in actions – belief that one’s effort will improve one’s future.

Print Friendly, PDF & Email

An algorithm for introducing algorithms

This was originally posted on Grok Learning’s blog – a site worth visiting!

Some years back I blogged about teaching coding, including how I introduced programming. Some months back I wrote about computational thinking (CT) and coding and the need to distinguish the two.

This time, I’d like to dive deeper into introducing algorithms as a product of computational thinking which may not necessarily lead into coding. In particular, I want to go into concepts involved with algorithms, and not just the mechanics of CT. Click back on links above to see some of my previous algorithms for introducing algorithms. These CT models via Conrad Wolfram and Grok Learning (printable PDF) are valuable resources as well.

Algorithms Essentials

When I was planning how to introduce algorithms to my 10 Information and Software Technology class, I listed concepts relevant to algorithms as essential learning. I wanted students to engage in active learning and, by deduction, realise that these are indeed essential aspects of algorithms.

  1. Representation/notation — how to encode the algorithm
  2. Granularity — level of detail of instructions
  3. Accuracy — correctness of the algorithm, does it solve the problem correctly?
  4. Efficiency — does the algorithm save /waste time and effort
  5. Interpretation — is it ambiguous or open to interpretation?

I could add more, such as scalability, variability and bias, but decided not to, at this stage.

Intro Lesson

I started by asking the students if they knew what algorithm meant knowing most if not all would have heard the term, quite likely in maths. True enough, we came down to ‘a set of instructions designed to achieve a task or solve a problem’.

I got everyone to count off 1 to 4 and based on their number would do one of the following:

  1. Draw the steps for making toast
  2. Draw movements for a favourite dance step/sequence
  3. Write how to get from the classroom to the train station
  4. Write how to perform ‘Happy birthday’ in instrument of choice

This was a no-talking activity. If they were drawing, they couldn’t use words and if they were writing, they couldn’t use symbols or drawing.

Those doing #3 took the longest but after about 15 minutes, I got everyone to move and look at another student’s work. I also asked those who were viewing #2 to attempt to do the dance sequence.

Ensuing class discussion raised some interesting points:

  • One student quoted “using your legs, walk to the door…” which raised the issue of granularity
  • When asked whether his dance sequence was interpreted correctly, the response of “open to interpretation” raised the issue of ambiguity and ‘limitations’ of interpreters
  • “Is that even a slice of bread?” raised the representation aspect
  • Representation and accuracy were problematic for the song and the student resorted to musical notation although admittedly unsure that the notes are in fact accurate
  • Another students toast’s drawing with power setting set to maximum raised the question of efficiency — possibly saves time but risks waste

The activity allowed students to see the challenges involved when designing algorithms; and, we had the language to talk about it.

Student work samples from the intro lesson.

Follow-up Lessons

I started the next lesson by getting 2 volunteers. The first one had to add 25 and 12 (2-digit addition with no carry). The next student had to add 275 and 38 (with carry). The plan was to focus on the process of abstraction for a fairly well-known algorithm and introduce various control structures.

We talked about the term ‘abstraction’ (pick out essence, general patterns) as we discussed the algorithm for solving each of the problems above. Much merriment ensued as the students struggled to articulate the steps, especially as they could not remember the term ‘place value’ (ha!). Once we got the first sequence right, the second one presented the opportunity to introduce selection control structure, i.e. if the sum exceeded 10 and there is a carry.

From here, it was not too much of a stretch to introduce the concept of repetition control structure. So, students were then challenged to abstract further and re-write our selection-sequence algorithm to handle addition of multiple digits and numbers. Those who’ve done IST previously and familiar with pseudocode, got straight into representation without worrying about ‘How do I say this?’ that the others struggled with. And thus, I no longer had to justify why they needed to learn the key words.

“Your algorithm is different from mine.” How wonderful to hear that!

On the third lesson, the focus was on ensuring the algorithm is correct. I taught them how to desk-check, a manual process of checking algorithm logic . I premised it on this was just like their table of values when doing Algebra — and that in fact, designing algorithms is like finding the equations given a table of values. A majority of my class like maths so this was a safe bet.

We are currently on deliberate practice, necessary to develop most new skills. A quick web search generated plenty of sites giving me a range of problems varying in terms of difficulty, complexity, context/interest. Grok Learning also has heaps.

Maybe I should ask them to dance the algorithms…

The bubble-sort algorithm expressed as a folk dance.

So then…

I’m really happy with how this turned out for me. I think the students have a deeper understanding of algorithm design plus they have the vocabulary to articulate this understanding. There’s more to learn but I believe the foundation is sound.

Please share your algorithm or perhaps thoughts on how mine could improve.

Print Friendly, PDF & Email

Measuring Hope

Earlier in the year, I blogged about my action research on hope. Since then, I’ve refined my research question (and Lit Review) to ‘Does systematic integration of self-regulating processes into a year 12 Software Design & Dev class impact on student wellbeing?”

After many iterations of defining my construct, I settled on what I started off with…HOPE. It is one of ACARA’s dimensions for wellbeing and aligns strongly with my school’s aspiration to inspire global hope.

I also kept the notion of ‘active hope’ where hope is found in actions and belief that such actions would lead to improvements. It’s true that a huge element of this aligns with Bandura’s self-efficacy which helped with finding literature for the review and fleshing out my project. However, I also wanted to maintain the social aspect of hope that extended beyond self-efficacy.

This ‘extension’ was partially driven by the need to find something more easily observable and measure. It was also because the classroom is ultimately a social context and each student is a contributor, not merely a recipient of social influences. I think James Arvanitakis said it well in  From Despair to Hope – The Curiosity Lecture Series (available here),

…if openly shared and freely distributed, hope can spread throughout the community.

I did not set out to measure inspiring societal (or global) hope as such but one of my action research ‘interventions’ (if you will) was to have students act as peer models. That was a bit of a stretch for ‘freely’ but there was definite sharing and distribution of active hope.

I haven’t fully analysed my research data but it is likely that it will empirically support my observation that YES, integrating self-regulation processes does impact student wellbeing (hope) positively and negatively (the 2-tailed question was intentional). I imagine many teachers suspect as much but now I’ve got data to (hopefully) prove it, notwithstanding the risk of observer-expectancy effect and other risks to the validity of my meager social research attempt.

It would be premature to state a conclusion prior to data analysis but were I to generalise my learning so far, I daresay my teaching practice even when targeting academic achievement does impact student wellbeing. While it often seemed futile to measure hope, I am glad I’ve made this attempt.

 

Print Friendly, PDF & Email