COVID-19 and Grok Learning

The COVID-19 pandemic has challenged many teachers including me with shifting from face-to-face on-campus teaching to an off-campus combination of synchronous and asynchronous learning. I thought I’d do my bit for the computing teachers community by sharing my resources.

My first (hoping to share more) installment is for IST. This one is for my year 9s for the Internet and Web Development option. I always run this unit in line with Grok Learning Web.Comp. That it suits off-campus learning is a bonus. Thank you Grok Learning!!!

The Task

In groups of 3, students will design and develop interactive websites. There are deliverables for the team as well as team members. They all have to do Web.Comp to upskill and then apply immediately to their project. Here’s the complete task including schedule and rubric mapped to outcomes (see below). I keep my rubric simple with specific criteria on what I’m looking for.

 

In groups

  • Choose their own topic inspired by pages from our school diary. It covers study skills, well-being, school history. This content is relevant more than ever and I do not have to worry about allocating time for research which really isn’t the focus of my assessment.
  • Choose their own audience; specific is best, e.g. year 9 student who loves checklist
  • Decide on a Site Map, i.e. what pages and features to include
  • Decide on a joint Style Guide

Individually

  • Find their own inspiration before contributing back to the team
  • Define one success criterion based on the Web Content Accessibility Guidelines (WCAG); #a11y is a thing! and a practical way of engaging with ethical issues
  • Create a prototype so they can refine their Style Guides prior to submission – and see the cascading bit on CSS in action (and likely frustration but that’s all part of learning!)
  • Log progress (Medals and Missions) for self-regulation purposes as well as to help me keep track of their progress (evidence of engagement and understanding, in teacher-speak)

 

a bit more context

I’ve asked my students to do Grok Learning’s Intro to HTML/CSS course late last term. Most have done about 50% of the course and all of them are familiar with the interface. This is why I chose Advanced stream.

My off-campus classroom is in Microsoft Teams, with a channel for Virtual Lessons. This worked well at the end of last term. Now, I’ve added breakout channels (this post from Alice Leung is helpful if you want to learn how I set it up plus a few other tips there) for each project team as I intended this task to be group work. I considered using GitHub but since I haven’t walked my students through setting it up – and I’m not all that confident in trouble-shooting, I decided to stick to files in Teams. I’ll have to show them how to sync so they can do offline development.

I usually do backward-planning, i.e. starting from outcomes and then create learning experiences accordingly. Here are the outcomes I intend to assess:

5.2.2 Designs, produces and evaluates appropriate solutions to a range of challenging problems

5.2.3 Critically analyses decision-making processes in a range of information and software solutions

5.3.2 Acquires and manipulates data and information in an ethical manner

5.5.1 Applies collaborative work practices to complete tasks

Here’s my planned Term 2 schedule including weeks before and after the assessment and Web.Comp. Not sure what the NSW plan of staggered return will do to this plan but I think it might just be resilient enough!

 

Old posts that could be useful

Here’s a post I wrote for more on how I use Grok Learning in my teaching. Grok Learning is free until July. That’s another bonus!

Here’s a post on how I do my backward planning – this one’s on a unit for Year 11 Software Design and Development.

PBL with NCSS Challenge from Grok Learning

I am such a big fan of Grok Learning and NCSS Challenge. It’s been an integral part of my teaching Information Software and Technology (IST) since 2013. Every year, the challenge is the foundation of my assessment tasks so my IST Scope and Sequence always has Software Design and Programming in Term 3 when the challenge is on. Though the foundation is the same, each task is different and over the years, I’ve explored many of the features provided. (Read what’s new this year from Grok Learning’s blog).

Apart from enjoying learning fundamentals of programming as well as coding in python, I really want my year 9 IST students to be more aware of, and appreciate:

  • growth in their learning
  • diversity in solutions
  • personal relevance of computational thinking and coding

In other words, I want deeper learning. I decided to plan this slightly differently using my two go-to PBL-planning frameworks (1) student-friendly format from Bianca and Lee Hewes, and (2) teacher-programming familiar format from Setting the Standard for PBL: A Proven Approach to Rigorous Classroom Instruction.  This is a similar approach to another unit I loved – Delta X (my X + CS project with year 11 Software Design class).

In doing the NCSS Challenge, how have my knowledge and skills in designing and implementing coded solutions grown, AND what does this mean to me now and into the future?

Thank you Grok Learning for agreeing to feature my students’ work, providing an authentic audience 🙂

 

I’ve not had a chance to make it all pretty. I decided to share now in case others doing the challenge are looking for ideas to use it in their assessments this term. I’m using a class OneNote notebook (I’m also a big OneNote fan) but have PDF’d relevant details, including literacy/writing scaffolds, to share as well. The textbook referred to here is by David Grover et al, it is a good reference to augment the notes from the challenge, and it aligns well with NSW’s syllabus.

 

 

I think it’s pretty self-contained but happy to clarify if needed.

Suggestions for improvement are also welcome! Even if it’s too late for me to change this year, there’s always next year 🙂

 

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.

 

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.

I do and I understand

Confucius says (oh my, I’ve been wanting to do that for ages…haha):

I hear and I forget. I see and I remember. I do and I understand.

In my random clicking on the internet disguised as professional development (or maybe it’s the reverse), I found a couple of strategies interesting enough to try.

Fishbowl

The first came from an Edutopia video, How to teach maths as a social activity. I’m a big fan of cooperative and collaborative learning and this video has good strategies. What I wanted to try immediately was called Fishbowl (video link). Basically, it’s having a small group sit and discuss while the rest of the class observe. I’ve heard of it before but this is the first time I intended to give it a go.

With my year 10s going into their exam block next week, and coming in from a 2-week school holidays, I thought that Fishbowl would be an interesting way to do some revision. So I set up 3 groups to discuss (1) Bias in algorithm, (2) Use of cookies, and (3) Robotics in employment.

These topics are directly related to the topics we did this year (1) Software Design and Programming, (2) Internet, and (3) Robotics.

I gave them 5-10 minutes to do a quick revision using our class notes or to look up on the web. This had to be done individually, i.e. no discussions. Then, the group took turns to be in the Fishbowl.

While I set this out as a revision exercise, what I found was Fishbowl is also an effective assessment activity. I doubt I’ll use it for summative assessments but as formative assessment, it was really good to see what the small group, and whole class, knew…or did not know…or got confused on. It also contextualised my assessment tips such as – give specific details, use technical terms and make sure you know their definitions, think of positives and negatives when discussing issues, you can link topics we studied,  use Asimov’s Laws on Robotics when discussing issues, and the like.

Tic Tac Toe + Jeopardy

Our current unit of work in 9IST is game design, a culmination of the Digital Media and Software Design and Programming topics we studied this year. They also have a yearly exam coming soon and I thought what better way to do revision than to play games. We will unpack the following experience next lesson and use that to feed into the work they yet have to do.

I found my inspiration in a recently discovered (read: yesterday) differentiation site, daretodifferentiate (link to Choice boards or tic tac toe, though the wiki site warrant more exploration). I wanted to try it straight away but all mu units are already designed so I figured I might as well use it for revision….and as a game!

The plan was to have a choice board with easy, medium and hard questions – that’s the tic tac toe part. Assigning points to the questions was the Jeopardy part.

I’m not going to include all the questions here but here’s a small sample so you get the idea: easy – JPEG is a lossy format (True or False?), medium – Define algorithm, hard – Explain one way that text can be digitised. For points, I gave 100 for easy, 150 for medium and 200 for hard.

Using the simple definition of games = goal + rules, I discussed the rules of tic tac toe and Jeopardy. They work in groups, nominate a speaker (and there can be no repeat speakers) to provide the answer. I also added a rule of ‘stealing’, i.e. if a group can answer a question better then they “steal (the chance to earn)” the points. This was actually good to ensure they all tried their best and that they listened to other groups. Revision and learning were happening at individual, small group and whole class level. Granted, still at different levels but even the quietest student could learn from others at least. I dropped the ‘tic tac toe’ all in a line across three columns because I had 3 groups…but that would be fun to design to get some blocking strategy happening as well.

Speaking of designing the thing, I wanted to implement this in Scratch, or with more time and effort – JavaScript or Python perhaps. But, given that I thought of this on the eve of using it, I resorted to a table in PowerPoint and using animated blocks to hide/reveal the questions. It’s been a while since I used the ‘click on object’ as trigger (default is just click anywhere) that I’ve forgotten about it. On the whole, it worked quite well actually….yep, a PowerPoint hack 🙂

Even with a short activity, I can see the power of differentiation through choice….and of course, I’m convinced about cooperative and collaborative learning anyway.

9IST groups in a huddle, discussing strategies and answers

9IST groups in a huddle, discussing strategies and answers

Back to Confucius

There are so many teaching and learning resources out there and seriously, there are many good ones. Finding ones to try and then actually making it happen help cement them in my mind because I don’t only know of, I also understand.

Also, because I mostly teach via Project-Based Learning, my students have done the ‘do’ bit and yet, as I’ve uncovered in these revision activities today, they don’t always remember or understand. And so then, back to Confucius:

By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest.

Revision (look at again) – as an example of reflection (look deeper perhaps over-and-over from different perspectives) – has shown a path for remembering and understanding. In writing this blog post, tired as I am after an all-period teaching day on the first day back at school in 35C heat, I have forced myself to revise and reflect on these strategies.

Ah, I feel wiser now…haha