Categories
Uncategorized

No Hooks

“Has anyone got an exciting starter for CPU registers?”

No, random Computing teacher on Facebook. Nobody has. But it doesn’t matter because you don’t need it. You just need a decent “DO NOW” that settles them and gets them thinking about Computing while you do the register and deal with the usual issues (forgotten equipment, notes from parents and appointment slips, and most importantly greeting them and getting them settled).

A few years ago I read this blog by Ben Newmark and it changed everything. Nothing new, it’s a review – on why I killed my starters. | Ben Newmark (wordpress.com)

When I trained to be a teacher lessons were supposed to come, like a meal in a fancy restaurant, in three parts – starter, main and plenary. The concept of a ‘starter’ became fetishised and developed into a systematic obsession. […] Huge, huge amounts of time and effort for a part of the lesson which, although it expanded as time went on, was initially only supposed to last five or so minutes. It was as if we had all come to believe that if our starter was whizbangy, engaging and differentiated everything else would just fall into place. And make no mistake, ‘starters’ were supposed to be whizzbangy. Laminated card sorts were good. Putting a laminated card sort in an envelope and labelling it “TOP SECRET” was even better. Using police tape to make a classroom look like a crime scene was best practice.

About the same time I started learning about Rosenshine’s Principles, and reading about Cognitive Science. To be fair to my then school, “DO NOWs” or “bell tasks” were already happening, it’s just that they were often “whizzbangy” activities “to get the children hooked into the subject” or pique their interest. However as Ben’s blog explains, starting the lesson, not with a “hook” but a review of prior learning can have a dramatic effect on progress.

Now all my starters are some kind of review. I mix them up a lot, being a Computing teacher I have access to the whole internet and my own material on Teams and Sharepoint. So one lesson will be questions made up by me, others might be a Quizlet study set or Quizlet Q&A. (I created the Computer Science “Verified Content” for Quizlet Inc last summer and you can use it for free here.) Sometimes it will be “Smartrevise” from Craig’n’Dave here. Other days they will go back to their notes (Cornell notes or sketchnotes they have made previously during flipped homework) and write a summary or answer the “cue” questions they set themselves. I may use the “Quick Fire Five” questions from William Lau here, and I have a free trial of Carousel Learning Gold membership to try out this term.

Whatever the choice of format, it’s a review of topics they have already studied, delivered in a DO NOW format, as described by Doug Lemov in Teach Like a Champion and on his blog here. As Lemov explains, DO NOW must follow a predictable format and “means of participation” must be clear (my instructions are always on the board and use tools they are familiar with, no new platforms or sources), need no input from the teacher, require an end product such as written or typed answers or quiz results, and should review prior learning, thus improving long-term retention. You should try not to engage in any discussions but just get students on task as soon as possible using the least invasive technique possible and praising the correct choices e.g. “15 people have started now, well done. Leesha has done three questions already, excellent work!” and so on. Lemov’s “Brightening Lines” technique can be used here to maximum effect. We can go back to Ben Newmark for a quick summary of how he starts his lessons.

Image

Does it work? My Year 10 CS class (just the one this year but two classes totalling 40+ are coming up next year!), who I’ve been doing Rosenshine and TLAC techniques with all year keep telling me these things:

  • It is fun and very exiting! You can have fun and also work hard!
  • i love my teacher as i trust i will get good grades due to him knowing whart hes doing
  • lessons are hard but fun

I think I am on the right track.

Categories
Uncategorized

Never mind the PowerPoint

Have you asked a question like this on teacher social media?

Has anyone got a PowerPoint for binary addition? They just aren’t getting it.

I need a decent lesson for client server versus peer to peer.

Any resources for boolean logic? I can’t seem to get them to understand it.

When I see these questions I do try to help, but I believe those asking would be better off working on their explanation of the concept. Once you have a strong grasp of the topic, you can explain it well, answer questions, and check for understanding meaningfully.

Teaching is simple, really, if we remember we are just trying to transfer knowledge from our heads to theirs. Looking for lesson resources that shortcut this process is a distracting, often futile enterprise. The time spent looking for that “magic lesson” could be better spent growing your own understanding so you can develop theirs.

Fortunately we now have the NCCE curriculum backed by the Oak Academy recorded lessons, so we can teach ourselves before teaching our students. I also recommend Craig’n’Dave videos and the Isaac Computer Science website, and the great textbooks by Heathcote & Heathcote. Better still, partake of the NCCE training offers.

Once you know it yourself, and feel confident you know it, you can explain the material in ways others understand.

Rather than asking for slides and worksheets, I recommend teaching yourself the content. Then study others explaining it well.

My forthcoming book might help with greater understanding of the GCSE Computer Science content. Comments welcome here on WordPress, on Twitter or on LinkedIn.

Categories
Uncategorized

Peer to Peer IS NOT A MESH!

Misconceptions are my new obsession, and there are loads in the book.

The biggest misconception in the Networks topic is confusion between topology and “service model”. Here are some typical questions from Facebook that illustrate the confusion:

  • what is the difference is between a mesh network and peer to peer network?
  • Would you give marks for star topology advantages being central backup and security. Or is that not right because it is not referring to the actual cable layout?
  • It seems to be common to conflate Star with Client Server and Mesh with Peer to Peer, is this OCR stance?

Peer to Peer and Client-Server are two service models which are unrelated to the topology (star, mesh, ring, bus etc.). These service models are a logical description of the network, while topology is the physical description.

A network has a physical arrangement of devices and connections, and this is its topology. Independent of the topology is the way files and programs are shared, and this is the service model, or sharing model, which can be peer-to-peer or client-server.

The topology matters when we are discussing how packets travel around the network, which devices they pass through and how they get to their destination. But this is irrelevant when we are talking about how files are shared, because the user does not care about the journey the packets take when copying a file from another device or saving a file on the server. So a Star topology can support a peer-to-peer model of network, just as a mesh topology can support a client-server network (or vice versa).

The confusion arises partly because of unclear images in textbooks, which appear to show a mesh network described as a peer-to-peer model, and a star network as client-server, and we can see this on the Wikipedia page for P2P here. Confusing as these images may be, the authors are trying to illustrate the logical relations between devices rather than their physical connections, so the images are not wrong. However, learners (and indeed teachers) may be more used to seeing diagrams of the physical connections – the topology – of a network, and therefore unused to seeing the logical relationships described the same way. In short, the diagrams look exactly like topology diagrams, even though they are intended to convey the logical service model.

I discuss this misconception and many more in “How to Teach Computer Science”, out in June 2021 from John Catt Ed.

Categories
Uncategorized

Googling is not Research.

This post was inspired by a Twitter discussion today.

When I was an NQT I was told “teacher talk is bad” and I had to ensure the students were “finding things out for themselves”. You can read about that tale of woe here… but at the time I believed it and included lots of what I believed was “discovery learning” in my pedagogy. This included hiding text around the room, giving half the students one half of the knowledge and the others the other half and playing “quiz-quiz-trade”. But mostly, because it was a computing lesson, they searched online for knowledge.

I started to suspect this was not highly effective when I asked them to find out about the family of cyberattacks called “social engineering”. I set the task “find the definition of social engineering”, expecting that after a few minutes they would write down something like “Social engineering is manipulating people into handing over confidential information such as a PIN or password. It includes blagging, phishing, pharming and shouldering.” But at least half of them wrote this:

Social engineering is a top-down effort to influence particular attitudes and social behaviours on a large scale—most often undertaken by governments but also carried out by media, academia or private groups—in order to produce desired characteristics in a target population.

Of course this is a valid definition, it’s just Wikipedia’s Social Engineering (political science) definition, not the information security definition. But even those that wrote the latter definition…

In the context of information security, social engineering is the psychological manipulation of people into performing actions or divulging confidential information.

…seemingly didn’t understand it when asked questions about it afterwards. The ten minutes they had spent searching and writing down a definition had been completely wasted.

This wasn’t an isolated incident, it was to be repeated many times until I decided never to allow unfettered googling and instead direct the students to particular websites.

Whenever I asked the students to google for some knowledge, what happened was they would spend time searching for a definition, sifting through the search results full of guff and ads, finding degree-level and industry-focused definitions that they don’t understand or definitions that fit an entirely different sense of the term being searched for, or that are relevant to a different context, then write them down, while all the time potentially being distracted by all the rest of the internet.

Each time I did this it would take around ten minutes just to “discover” one fact. Crucially, even if they stumbled on the right fact, or even later when I was directing their web “research”, they would not actually be digesting any information, they were just copying down what they found. Any cognitive load was all being expended on the technology, trying to find a relevant page and then when satisfied with that, just transferring words from screen to page.

No time was actually being spent thinking about the thing they were supposed to be finding out about. “Memory is the residue of thought” as Daniel Willingham explained, so our aim should always to get students thinking hard about the subject knowledge that matters. Googling is largely a waste of time from that point of view as it requires little-to-no thought about the topic. The task has lots of extraneous cognitive load (the searching and sifting of results) but little germane load (thinking about the topic, e.g. social engineering).

Nowadays I either provide the websites to access, or the textbooks to read. But more often I tell them what they need to know in a couple of minutes, check for understanding, then set a task with which they apply their newly-gained knowledge to a task.

Instead of ten minutes googling for “social engineering”, I will explain what it is, ask some questions to check they understood the basics, then set some work such as “are these scenarios social engineering?” or “research this cyberattack, which social engineering tasks can you spot?”. The same ten minutes they once spent googling, is now spent on highly-valuable activities with “desirable difficulty” that will help transfer the new learning into long-term memory.

Say after me: googling is not research.

Categories
Uncategorized

It is Done.

Word tells me I have written 68,517 words, which is about the same as Treasure Island or Brave new World, about two Animal Farms or half a Catch-22. It’s about the length I was going for so I’m happy.

I spent this long holiday weekend proof-reading it myself, sorting out image credits (or making my own images where I could not find a licenseable image!) and fixing all the references and links.

I have also stashed all the links on the pages of this website, so if you want a sneak preview of what I discuss in the book you can follow all the links!

More to follow, but right now I have to get this off to the publisher.

Amazon link here, for pre-order

Categories
Uncategorized

Achievement unlocked. Book listed.

Two milestones happily collided today. I finished the first draft of #HTTCS, 61,000 words of computery goodness. And I got an email from my publisher, John Catt Educational to say that the book is listed for pre-order.

I’m excited and a little bit nervous. Not least because I’m a few thousand words over my planned count, and some of it needs a tidy up. So I’ll be editing frantically and asking friends to proof read before sending the edited manuscript to the publisher.

Pre-order on Amazon here. Kindle format will be added soon. Thanks to everyone who has helped with this labour of love!

How to Teach Computer Science: Parable, practice and pedagogy: Amazon.co.uk: Alan J. Harrison: 9781913622572: Books

Categories
Uncategorized

Escape the Room – updated

I’ve fixed an error in my Escape the Room activity. I ran this when school was fully open and hopefully will run it again one day. Meantime, you might consider using the clues only, without the locked box, and give a prize for the most solved.

Powerpoint here: Escape_the_Classroom_Resources – WHGS vx

More files here on my Onedrive including the Morse code wav file and an editable “bitmap” spreadsheet.

Original post follows from 2019.

Big thanks go to Claire Wicher (@GirlGeekUpNorth) for her resource which gave me a starting point, and I’ve kept in a lot of her content. Claire’s lesson was intended to fit into a standard 50-60 minute lesson, with preamble and review, hence it was too short for my purposes. This one should take 1-2 hours depending on ability and how much help you give them.

The slides are largely self-explanatory. If you open the Powerpoint you will find #escapeinstructions and an inventory of parts. The objective is to open a chest by solving puzzles which reveal combinations for the six locks. There’s a twist at the end though, just for laughs and that extra feeling of achievement.

I’ll post photos of the actual kit next week, and watch my school Twitter account for photos and videos of the students in action. Below is the download link for the Powerpoint file.

Categories
Uncategorized

SQL Practical for A-level CS

Teaching the Databases topic to an A-level class, I have made these tasks and suggested solutions in REPL.it.

  1. First teach the basics of SQL e.g. using Craig n Dave’s video here: OCR A-level SQL
  2. Check for understanding of the basics e.g. by asking a few basic SQL query questions, using a quick quiz like this: W3Schools SQL Quiz or better still, use the premium resources from Craig n Dave that are intended to follow the above video lesson.
  3. Share the skeleton code here repl.it/@mraharrison/sqlite1 with the students. Explain the code. (Needs you to be familiar with it, so read through it and try it out first!).
  4. Optionally walk through the first one or two problems and code the solution live with them.
  5. Assign as homework, or continue as a lesson, whatever you are more comfortable with.
  6. Use the suggested solutions here when stuck, or share this with the students after they have attempted the problems. repl.it/@mraharrison/sqlite1-solutions-1

Feedback welcome on Twitter or in the comments. Thanks.

Categories
Uncategorized

A Computer built in Conway’s Game of Life

Abstraction ad absurdum

I like nothing more than the idea of Abstraction. It’s not just one of the core concepts of Computer Science, it’s probably the most important one. Pioneers like Dijkstra scorned high-level languages because they had megabrains that could simultaneously understand multiple levels of abstraction in complex programs coded in low-level code.

But this is next-level abstraction. I’ve been fascinated by Conway’s Game of Life since reading about it in the 80s, and have coded it many times on machines like the BBC Micro and Color Genie (yes, it was me, I bought one). But it never occurred to me that the GOL could act as a programmable system, using glider guns and glider reflectors to simulate digital processing.

Here is the blog post with embedded video. A Von-Neumann machine encoded on top of Cellular Automata is a thing of beauty.

A Computer In The Game Of Life | Hackaday

Categories
Uncategorized

Great Java exercise for Hour of Code

Last Friday my Y12s and I attended an excellent Masterclass from the Manchester Met. Some degree course information was followed by a Masterclass where we explored Java and Processing and made a “pong” game.

This inspired me to explore some more after the event so the next two lessons we used the Java/Processing tutorial here Processing Hour of Code | Home

After whizzing through the tutorial we tried our hand at using the online editor to make a few things. You could do this too, with a high-performing GCSE or an A-level class, for the “Hour of Code” this week, or just because you can.

I used these lessons to do several things, pedagogically:

  • Introduce a new high-level language (Java) other than Python.
  • Introduce the concept of event loops for interactive programs (e.g. games)
  • Reinforce the concept of modular programming
  • Practice devising expressions – one of the most creative parts of programming for me.

I suggested we make a game with an “AI” element, a computer controlled character. We used the online editor at the page above, and I made the beginnings of the game and shared it here Skeleton Code

void setup() {
size(500, 400);
background(10, 80, 100);
charX = 250
charY = 200
}

void draw() {
background(10, 80, 100);
// add code here to make character move
drawChar()
drawPlayer()
}

void drawChar() {
fill(255,0,0);
ellipse(charX, charY, 30,30);
}

void drawPlayer() {
fill(0,0,255);
ellipse(mouseX,mouseY,40,40);
}

I invited the students to add code where indicated to make the character “blob” move towards the player “blob” which follows the mouse. Several attempts were made involving Selection, for example along the lines of…

if (mouseX < charX) {
    charX -= 20
    } else {
    charX += 20
}

but one student successfully made this work with just mathematics. Like I said, devising an expression to solve problems like this is fun and also makes the program more efficient. Here is what he came up with:

  accel = 30
  stepX = (mouseX - charX) / accel
  charX += stepX

This shows that all we have to do is calculate the difference between the X co-ordinates then somehow break that down into steps. The beauty of the above code is we can alter the accel variable to change the difficulty.

Then we needed to add some “collision detection”. This is where I resorted to the whiteboard and drew this image, and asked what mathematical theorem we were about to code..

Within a few seconds I got the answer I needed: “Pythagoras”. We can detect whether the two circles have touched, by calculating the diagonal distance between them and comparing with the sum of their radiuses. Hence this code:

  h = sqrt(x ** 2 + y ** 2);
     if (h < 35) {
       hitScreen()
      }

Now we have our computer “enemy” movement and our collision detection, we have a playable game. Here it is in full, copy and paste into the “Hello Processing” editor here to edit, or click here to play.

Did I achieve my pedagogical goals? Comment below or on Twitter please Mr Harrison, Head of Computing #loveteaching (@MrAHarrisonCS) / Twitter 🙂

void setup() {
   size(500, 400);
   background(10, 80, 100);
   charX = 250
   charY = 200
   accel = 50
 }
  
 void draw() {
   background(10, 80, 100);
   moveChar();
   checkHit();
   drawChar()
   drawPlayer()
  
 }
 void moveChar() {
     stepX = (mouseX - charX) / accel
     stepY = (mouseY - charY) / accel
     charX += stepX
     charY += stepY
 }
  
 void checkHit() {
     x = mouseX - charX;
     y = mouseY - charY;
     h = sqrt(x ** 2 + y ** 2);
     if (h < 35) {
       hitScreen()
      }
 }
 void hitScreen() {
      background(255, 128, 128);
      }
  
 void drawChar() {
   fill(255,0,0);
   ellipse(charX, charY, 30,30);
   }
   
 void drawPlayer() {
   fill(0,0,255);
   ellipse(mouseX,mouseY,40,40);
   }