RSS

Category Archives: Micro:bits

The Importance of Teaching Media Creation Skills

There is an abiding myth that kids today are born digital natives. Anyone who has ever taught ICTs in any form will know that this is simply not the case. Digital skills very much have to be taught! Kay and Goldberg have described computers as a metamedium, a medium, in other words used in the creation of other media. As such it would seem axiomatic that computing should be taught to everyone. And yet this is far from the case. All over the world computing has to fight for a space in the curriculum. No doubt much of this contention stems from the expense of acquiring computing resources, and from securing adequately trained teachers. The great onlining of education has shown us the importance of computers as a medium of communication, but as a medium of creativity it can scarcely be less important. I have taught PhotoShop, Flash and Dreamweaver for many years, often in the context of web design, or game creation. I find that it is an excellent way to segue into coding for middle school students. Computers can be used to create all manner of digital content, but games are particularly alluring for students.

In this blog post I would like to walk through my thoughts about how the nature of remote teaching will have to change my curriculum and instructional design. I would like to cover the same basic concepts: namely photo-editing and game design introducing elementary programming procedures.

Starting with image manipulation in PhotoShop one can teach not only photo-editing skills, but also copyright issues. I usually teach students to use the Creative Commons Search Engine to find suitable images to use that are copyright free. There are many plarforms available for games creation. Up until last year I used Flash, despite the increasing difficulties as the platform becomes less and less supported. I have been considering using Scratch instead, but the seamless integration inside websites and the ability to run in a browser still made Flash a viable choice. My school had an Adobe licence, so justifying that expense was also a concern. I usually teach students how to create buttons in flash and use interactive behaviours. This requires starting to use ActionScript. We use existing scripts and learn how to tweak them. After a few tutorials I get the students to design their own games and then help them get it to work. The graphic shows one of the games created by students which depended upon drag and drop behaviours to work.

So, here’s my problem. I am due to start teaching this unit in May with my grade 8 class, and yet we are likely to be on lockdown, and I am wondering if it is a unit of work I can teach remotely. Certainly not with PhotoShop and Flash, as students are unlikely to have the Adobe Suite. But apart from the problem around access to the software and the necessary data or devices – most of my students use iPads if they do not have a laptop. This presents a number of problems. Firstly, I will be really sad not to have the linkage between image editing and games creation. Realizing that everything about remote teaching and learning takes longer, I will have to concentrate on the game design alone. For remote teaching an online Photo editor such as Photopea appears to work well. The crucial skill is removing a background and saving as a gif with transparency. I am not sure that I will be able to adequately support students through photo-editing online, and the games design, however. So I will have to play this aspect by ear.

In my experience getting students to the point where they can design their own games requires a good few basic tutorials teaching base skills, and then a great deal of scaffolding the process of discovery, especially where it requires coding beyond my own capacity! Tackling this online presents problems. It is difficult to help students debug their code when you can’t see their screen, or where you have to reconstruct it to test it on your own screen! It also needs to be something that can be done on an iPad if a student does not have access to a laptop or pc. It should also not involve any downloading of software or purchase of an app.

So I have decided to use Scratch on the MIT platform which works inside a browser, and apparently works fairly well on an iPad and allows students to use a free account. Students can also share their projects with others. This is crucial because I would like students to work in small groups. I usually get students to do a few tutorials online and then set the project as a group project. Working with groups might prove tricky during remote teaching and learning, but might also help overcome some of the isolation of working from home.

To test the versatility of the platform I created a quick pong game and a tamigotchi game, and it seems to me that Scratch works very well at enabling game creation. The platform also has tutorials which allow for students to work on their own, and develop capacity beyond any tutorials and tasks I create for the class. It also has an extension for the BBC micro:bit controller, which I use for robotics. I have not been able to explore this, but it seems to me that it creates some potential tie-ins, which is important. I also use the MIT platform for mobile app design with my grade 9s, so using Scratch on the MIT platform to introduce coding seems a good fit all round.

To my mind the key to instructional design in a case like this is to have a programme in mind which can be cut short, or can be extended, depending upon the time available and the capacity of the students. In this case the vagaries of remote teaching becomes a particular concern. I will write a follow up post after completing the unit.

Bibliography

A. Kay and A. Goldberg, “Personal dynamic media,” Computer, 1977, pp. 31-41.

 

The Great Onlining – Reflections after Day 10

At the end of the first full week of teaching online it seems appropriate to pause for a moment and reflect on what has been a whirl-wind ten days or so! About two weeks ago we met as a staff and were told to prepare ourselves for the possibility of teaching online during any possible closure of the schools because of the corona-virus pandemic. Over the weekend it became obvious that schools would in fact be closing, and in the event we had just two days to prepare ourselves. Now I am an IT teacher and was kept very busy trying to help staff learn new skills, very rapidly. My school was using Microsoft Teams, but not all teachers had set up classrooms yet, so that was the first task. My colleague, who teaches IT to Matric bore the brunt of this first onslaught because Teams is her responsibility, but very quickly we had teachers finding out how to record video lessons, set up assignments in Teams, use Flipgrid or EdPuzzle, record meetings in Teams, use Zoom … the list of demands was endless. I’m not sure I remember much of those two days, except the feeling of exhaustion. It was almost a relief when the school closed. I realized then I hadn’t thought much about my own classes!

I have been using Teams in my normal teaching as a place where students could find resources, download files, submit assignments and watch videos of lesson content. I have found it useful to record short five minutes videos of the work that I cover in class so that students can review it at their leisure, or catch up on missed work if they are absent. When teaching coding I like to start each lesson, or punctuate a lesson with a “live coding” session where we go over possible approaches to a problem, and I can introduce programming concepts such as variables, loops, or functions. So, as luck would have it, I had very few videos to prepare from scratch. I am currently teaching mobile app design on the MIT App Inventor platform with my grade 9s and web design using HTML & CSS with my grade 8s.

I was worried about how it would go, because so much of my time in the classroom is spent walking around helping students, and I knew that many of my students do struggle with managing digital work. It seems to me that the law of thirds operates here. About a third of students are very capable following digital instructions and using my video flipped content to work independently. About a third cope quite well, but they do need to hear instructions and ask questions about what they are doing face to face, although they are happy enough with whole class instruction. The last third needs individual instruction to be able to cope.

I knew that about a third of my students would cope well – bandwidth and data willing! I also knew that another third would probably be able to get buy with a lot of hand-holding! What really concerned me was that group that needs one-on-one help even face-to-face.

I was also concerned about how much work to expect students to be able to do. The school had decided to follow the normal timetable to keep a sense of routine. I knew that this might become problematic so I left instructions on Teams and sent out an email for the week, setting out expectations. I told students I would be online during timetabled lessons to answer questions and hold check-in meetings, but all the instruction had been posted in videos, and they could do the work at any time they found convenient. Very much a Flipped Classroom model.

So, with some trepidation, on the first morning I logged on at 7:30 am and within a few moments a few students joined the meeting in Teams and asked a few questions. Half an hour later a handful of the girls had finished the assignment ( a short tutorial on mobile app design using a bit of block-coding). By the end of the hour more students had submitted the assignment, but many had submitted work that had been due before the close of school. I had answered a handful of queries, mainly procedural, and marked all the work submitted. I don’t even know if more than a third had actually logged onto Teams that first morning. Over the next few days I got more submissions of the work asynchronously and more queries on Teams or via email. I had started to get into the second third, the ones who need hand-holding! A week later the missing third does not even appear to have logged onto Teams.

I know that in many cases families are not able to support the levels of data required, and there are probably many private tales of squabbling over the family laptop or desperate attempts to top up data caps. Or even families without adequate devices or connectivity. I also know that my colleagues have been piling work on the students. We have had anxious letters from parents telling us this. I know that their computer skills work will be one of the first to be sacrificed to Maths or English homework, but I am really concerned that the missing third is truly missing during this period. It is the same group of students who need constant individual attention in class, who are simply not able to get that attention online.

As teachers we desperately need to examine what is pedagogically different about online teaching and learning. We cannot just expect to port our normal methodologies online and carry on as if nothing has changed.

So my big take-away from the first 10 days is that now most teachers are fairly comfortable with the technology necessary for teaching online, that we need to start zeroing in on the pedagogy, and in particular the problem of how to teach inclusively when the technology itself is necessarily something of a barrier.

Lower Technological Barriers to Inclusion

There is not an awful lot we can do about the problem of lack of technology access in many households. We have supplied dongles with data to our bursary students, but I know of even very well-off families struggling for a variety of reasons. But we can make sure that we set the technological barriers as low as possible. As an IT teacher this is difficult for me, but I have made sure that they don’t need specific software downloads, that we use only browser-based platforms. Many staff are using as much paper-based work as possible. Some staff are using email rather than flashy video-lessons, and I’m sure students are extremely grateful for that. Just because a platform has bells and whistles, doesn’t mean you have to use them!

Establish your Digital Presence

However, I believe that central to the success of any online pedagogy is the question of online presence. Being able to talk to the teacher, check-in and ask a question, have queries answered on the spot, is all crucial to students. But, unlike a classroom, where a teacher can be present even for students who are zoning out, what do you do about students who do not log on to the platform, or who ignore emails? In a sense there is not much to do beyond contacting those students directly and trying to draw them then, much as one does in class. But if they are ignoring emails? Some teachers have set up whatsapp groups for their classes, and this might be the best way of ensuring digital presence by using a platform used by the students more widely than official school platforms. No doubt Tik-Tok would do the trick!

Create Back Channels

Apart from trying to lower the technological barriers to inclusion and promoting your digital presence – being there for students, I think one of the most crucial differences between offline and online teaching is the absence of social cohesion online. I think it is important to try to promote social cohesion and collaboration. If students feel isolated and alone, they may simply give up. Many will be communicating with each other in back-channels, but some will not be, and establishing back channels for your class is vital. I tried to do this by having check-in meetings during my allotted timetable slots, during which students could log on at the same time and see and talk to each other. That was my plan, but so few have logged in at the same time that this has not really worked. I know other teachers have had better success with this sort of thing. Coding is fairly individualistic, but I do plan to try to establish a share ideas check-in to try to get students talking to each other about the work!

As the week draws to a close, I have to say online teaching is really exhausting!

 

 

 

 

Making Semantic Waves with Robots

Semantic Waves has emerged as an explicit pedagogical approach in Computer Science Education. For example The National Centre For Computing Education in the UK has released a Pedagogy Quick Read on Semantic Waves. In this blog post I would like to look at how I have been using semantic waves in my robotics classes. Semantic waves track the relative abstraction and complexity of ideas within a lesson. Much of educational practice is geared towards helping students understand relatively complex, abstract ideas in terms they can understand: making it simpler and putting it in context. We also need to help students take their understandings and express them in ways which are more complex and abstract, more academic. When students are trying to code robots to perform particular tasks they need to be able to move between the abstract and complex and the simple and concrete. Making this process explicit can help students understand what they need to do, and helps teachers understand what to do to scaffold students’ understandings.

Semantics is a dimension within Legitimation Code Theory (Maton, 2014), and looks at the relative level of contextulaization (semantic gravity) and condensation (semantic density) of knowledge. Knowledge can be viewed as either highly de-contextualized and abstract (Weak Semantic Gravity SG-) or as strongly contextulaized and concrete (Strong Semantic Gravity SG+). It can also be seen as highly complex, with meaning heavily condensed (Strong Semantic Density SD+) or as simple (Weak Semantic Density SD-). By tracking this movement between abstract and complex (SG- SD+) and concrete and simple (SG+ SD-) we can see how meaning is changing over time within a classroom. This can help teachers see when they need to help students either strengthen or weaken their semantic gravity or density.

Commonly meaning either remains at a fairly abstract/complex level – the high semantic flatline (A), or tends to remain at a low semantic flatline (B). What we  want to see  is  a much wider semantic range,with movement up and down the  semantic axis (C).The ability to link  theory and practice is what is being aimed at.

When choosing which platform to use for teaching robotics, there were a number of considerations. The financial cost of introducing robotics into our grade 8 and 9 year groups was one consideration, but the decision to plump for physical computing was partly driven by the need to strengthen and weaken semantic gravity. Computing is often seen by students as being highly abstract and complex. Particularly they struggle with transferring programming solutions from one context to another, in other words, they struggle with applying programming concepts to different contexts, or the weakening of semantic gravity. This presupposes the ability to understand those programming concepts, requiring the strengthening of semantic gravity. The decision to frame coding within a robotics context was taken because we felt it would help strengthen semantic gravity and increase semantic range by allowing students to “see” the results of their code in more tangible ways. We felt it would help if students could test their code in a very practical way and that it would help them understand programming principles better if they could see the results of their coding.

We decided to use the BBC micro:bit chip as a platform for robotics because it has a huge amount of resources available and an online programming platform using both text-based and block-based coding, giving us options for strengthening and weakening semantic gravity and density. The online coding platform allows students to use block-based, or text-based coding simply by toggling between Blocks and JavaScript. It also has a visualizer which displays the results of the program on the chip. The program below rolls a six-sided die. Students can test the program online by clicking Button A on the visualizer. They can then download the program onto the actual chip and test it.

In terms of robotics, students program the chip, which can then be inserted into a robot to drive it.

An AlphaBot2 with a BBC micro:bit chip

 

In designing the syllabus for robotics in grade 8 & 9 we were also concerned with creating opportunities to strengthen and weaken semantic gravity and density. In the semantic profiles shown above, semantic gravity and density were tracked in unison (between abstract/complex and concrete/simple). But Legitimation Code Theory offers a more nuanced picture of semantics. If we set out the axes of semantic gravity and density on a cartesian plane, as shown in the diagram, each quadrant represents a semantic code, as follows:

The Rhizomatic Code: Meaning here is abstract (SG-) and complex (SD+). This is the world of abstract, complex theorizing. In many ways this is where students need to operate when coding a more complex program. They need to be able to decide which variables or functions to use in their code, whether to use “for loops” or nested loops. Decisions are largely abstract and complex.

The Rarefied Code: Meaning is abstract (SG-), but simple (SD-). This quadrant is where the concepts used may be fairly abstract, but are simple. So, for example a single variable is used, rather than a variable inside a function call.

The Prosaic Code: Meaning is concrete (SG+) and simple (SD-). In terms of programming, instructions may be straight-forward and operational, such as move forward 5 seconds.

The Worldly Code: Here meaning is concrete (SG+) but complex (SD+). In other words, although practical, tasks are complex. A great deal of professional programming takes place at this level.

By the way, the word code here refers to the rules which legitimate practice rather than to computer programming. In a rhizomatic code, theory is valued, and practice is not. In a Worldly code, on the other hand, practice is valued above theory.

What becomes apparent from this is that teachers need to lead students on journeys between these codes to help make programming accessible. In other words semantic waves need to be created so that abstract and complex problems can be broken down into do-able, more concrete or simple tasks, and then reassembled into larger projects. To manage this a series of tasks were created, designed to introduce several programming concepts such as loops, variables or functions. Tasks were also organised in complexity. A basic pattern was to have a concrete, simple task (prosaic code), followed by introducing an abstraction (eg. a loop), but keeping the task simple (rarefied code), then introducing more complexity (worldly code) such as setting distance or speed though a variable. Concluding tasks would put together more than one principle, together with complexity (rhizomatic code).

Here are some examples of each code in the unit on robotics. Each of these solutions makes the robot move in a square. All of these solutions are technically correct if we see the problem as making a  robot move in a square,  but some solutions are more concise (condensed) or applicable across multiple contexts (decontextualized).

 

Rarefied Code

Rhizomatic Code

Prosaic Code

Worldly Code

Whereas in the Prosaic code quadrant, the task has been completed using forward and turn moves alone, abstraction has been introduced in the rarefied code by controlling the distance travelled by using variables for distance and speed. This allows a change in the values assigned to the variables to alter the size of the square – re-contextulaizing the problem. In the worldly code, we have condensed the movements within a repeat loop. Semantic density has been increased. In the rhizomatic code, a function has been created using the repeat loop (increased condensation) and variables (increased abstraction). Semantic Density has been strengthened, and Semantic Gravity weakened.

Students had been introduced to the use of loops, variables and functions in earlier tasks, but were given the prosaic code shown in the table above as a starter code, and asked to adjust speed and time to make the robot move in a square formation by testing it on the robots, further strengthening semantic gravity. They were then asked to try to use a loop, a variable, and a function to improve on the code. What became evident in the tasks submitted was that some students were able to incorporate variables or loops, and a few were able to incorporate functions, but only a minority could accomplish all three. Some students got stuck at various points in the prosaic, rarefied or worldly code. In a busy and productive classroom, students were encouraged to ask for help, and a “Live Code” session was held demonstrating the use of variables, loops and functions together to make a different shape.

What was plain to me was the need to find pedagogical approaches to help strengthen Semantic Density or weaken Semantic Gravity in a more deliberate fashion. Reading code and tracing through it to see what it does, testing it out, really helps to strengthen Semantic Gravity, but complexifying and abstracting out is far trickier to achieve. Live Code, in which the teacher models solutions and thought processes takes some of the class all the way, but leaves some behind. Mopping up the rest, one-on-one is a bit hit and miss with a large class.

Bibliography

Maton, K. (2014). Knowledge and Knowers: Towards a realist sociology of education. London, UK: Routledge/Taylor & Francis Group.

 

EduTech Africa 2019 – Coda

Last week I attended the EduTech Africa 2019 Conference in Johannesburg and would like to wrap up my thoughts on the conference with a few observations. Now that the dust has settled the thing that sticks out most in my mind is the clear recognition of the rise of Computer Science as a K-12 academic discipline. The government’s commitment to rolling out IT as a subject, and the focus on coding across all age groups has established a clear sense that Computational Thinking and Computer Science belongs in the core curriculum in all schools. The big question is then how we get there. The announcement recently that PISA Assessments, which offers international benchmarks in Maths & Science, will now include Computational Thinking and Computer Science is confirmation of this. Most of the talks I attended addressed the issue of how best to teach Computer Science in some form or other. Passionate teachers shared their best practice, and their failures. So, the coda to my reflections on the conference is really to address that question. Is there a best method to teach Computer Science?

NS Prabhu (1990) in answering the question of whether there is a best method of teaching or not, concluded that the key factor in teaching success lay with the teacher’s sense of plausibility, the teacher’s sense of self belief that what they are doing makes sense, how passionate they are. There is clearly a great deal of plausibility around the teaching of Computer Science at the moment. Obstacles are being dealt with as opportunities, and there is a very real sense that inventiveness and creativity can overcome the constraints of budget and lack of training.

The clear consensus amongst teachers seems to be that physical computing forms the best approach. Most presentations highlighted the use of coding in conjunction with 3D printing and robotics. My very first exposure to teaching computing was with Seymour Papert’s (1980) logo system. I did not have the turtles, using only the computer interface, but I tried to make it more concrete by using physical cards with shapes students had to emulate. Computer Science is a very abstract subject and needs to be concretised for students as much as possible. The cost of all the kit needed to do this is prohibitive.

I recently came across micro:bits which uses a web-based platform for coding. The code created is then downloaded as compiled hex code to the microbit chip which executes the code. But crucially it also has a web visualisation tool, which executes the code in the code editing window. The micro:bit controllers are themselves fairly cheap, but having a visualization tool means that more students can code at any one time. A class would need fewer physical chips at any one time. I have not yet been able to test the real thing, but it seems to me a perfect fit for the kinds of physical computing tasks I would wish to introduce. It uses a block coding interface, but you can toggle to program in JavaScript or Python, making it ideal for transitioning between block-based coding to the text-based fare students will need higher up the school. You can also design 3D printed parts for interesting projects.

But I digress, back to best methods. Another strong thread in the conference was computing for problem solving. I have to say that I am a little dubious about the whole Computational Thinking leads to better problem solving generally. I believe it leads to better problem solving in computational contexts, but transfer of skills from one context to another is always problematic in my view. Nevertheless, I do believe that students should be given real world problems to solve as far as possible and Computer Science teachers are leading the way in envisioning how coding could form a central plank in cross-disciplinary problem solving exercises. There was a great deal of talk at the conference about the need for teachers to “come out of their silos.” There is certainly no need for CS teachers to set projects divorced from the real world, or set problems narrowly about computers.

The final method that was raised at the conference was unplugged computing, an approach which involves modelling algorithmic thinking without a computer. For example students might be asked to write code to control a class-mate acting as a robot to perform a certain task. A talk by a primary school teacher on coding in the junior years had us all playing rock, paper, scissors. I’ve forgotten why, but it was great fun!

 

In the end, my take-away from the conference was to think about the best approaches for my own classes. And most particularly how to integrate all three of these approaches better. To my mind this is the best sort of take-away!

 

Bibliography

Papert, S, 1980. Mindstorms : Children, Computers, and Powerful Ideas. Basic Books. https://dl.acm.org/citation.cfm?id=1095592.

Prabhu, N.S, There Is No Best method – Why?, TESOL Quarterly, vol. 24, issue 2 (1990) pp. 161-176
 
 
%d bloggers like this: