Make Retro Arcade Games with MakeCode Arcade

Microsoft has really pulled out all the stops in support of Computer Science education. With MakeCode you can creatively code for:

A recent option is to make retro arcade games with MakeCode Arcade. These then port to a variety of handheld consoles; some of which you can make yourself. My class made consoles from HackerBox 0041.

The other reason that I am a fan of MakeCode is the support. MakeCode arcade is supported by:

I have cobbled together my own Unit and resources, based on these:

http://www.throughtheclassroomdoor.com/wp-content/uploads/2019/06/Gaming-Console.pdf



Game Design with GDevelop

There are a few options for learning and developing pure 2D game design, without being bogged down in coding: Construct2, Construct3, Gamemaker. I can recommend Construct 2 and the free version has few limitations. The others have a price attached and are probably worth it if you have the budget to spare.

I thought I would give a new player a go in my ICT Applied class. Below is my Unit and resources:

http://www.throughtheclassroomdoor.com/wp-content/uploads/2019/06/M1-Gaming.pdf

Creative Coding with Blocks

Why Blocks?

The Digital Technologies Syllabus emphasizes designing algorithms, testing, evaluating and refining them. I find block-based coding environments very effective for this. I also developed this workshop for years 5-6, so text-based coding is not stressed particularly.

The limitations of Scratch, also, only serves to emphasize the validity of text-based coding as the destination. For example, Scratch does not have For loops, so Repeat Until loops need to be utilized; and then there is no > than or = to facility. This workshop is all about turtle graphics, but there is no fill block or function; necessitating turtle python or processing.

Why Creative?

Logo (for those old enough to remember) was my first introduction to programming and it really got me hooked; so I’m hoping it does the same for my students.

I also purchased a Makelangelo Art Robot as one way to output their designs. I also plan on 3D printing, Laser and CNC Etching and Machine Embroidery with Inkstitch. Maybe I will get back with the results.

Here is the Workshop, enjoy!

Creative-Coding-with-Blocks

Embedded Systems with MakeCode, CircuitPython and the Circuit Playground Express

The BBC Micro:bit

For younger students, we use BBC Micro:bit to introduce them to programming and connecting the physical inputs and outputs needed with embedded systems. We do this mainly based on the learning resources we have access to, which generally target younger students. Otherwise, the BBC Micro:bit is very comparable to the Circuit Playground Express.

The Circuit Playground Express (CPX)

The reason we use the CPX for years 9-10 is because Adafruit provides such good support via MakeCode , CircuitPython and their own learning system. Their projects are also a little more advanced and challenging.

From Blocks to Text

I like to have students design and prototype their algorithms in a block-based programming environment. I find this to be easier and more efficient when cycling through several iterations of solution design and testing. It’s also a more visual and coherent experience. With CPX, I start with MakeCode and have students implement their final solutions in CircuitPython. Interestingly, Adafruit went with MakeCode and not Edublocks. Edublocks uses python, while MakeCode uses Javascript?

The Unit

Embedded-Systems

Transitioning from block code to Python

I have recently written a unit for year 7, to transition them from block coding to text-based coding in Python. In years 8-9, I continue this somewhat by using block coding as my algorithm designer. Here, students can design their solution, test it and then refine it to make it more efficient. For example, instead of a series of sequenced commands that repeat, students can get the sequence working and then refine the algorithm with loops; and then test it again. I find the drag and drop nature of block coding to be a better environment for prototyping because you can work on several iterations of a design quite quickly and its a more visual experience as well. In particular, its probably a superior environment for beginning with embedded systems, such as the BBC Micro:bit or The Circuit Playground Express. In fact, these environments have a text coding view as well; facilitating the transition to text-based coding.

In this unit, I introduce students to python via turtle graphics. Here is my Unit; enjoy!

The-Art-of-Code-2D

Review of Tools for App Prototyping

[“Prototyping a new App” by Pascal Maramis is licensed under CC BY 2.0]

There are many reasons why students design and prototype apps, before coding a fully functioning app. In ACARA Digital Technologies, students:

  • analyse problems and design, implement and evaluate a range of digital solutions
  • consider the functional and non-functional requirements of a solution through interacting with clients and regularly reviewing processes. They consolidate their algorithmic design skills to incorporate testing and review, and further develop their understanding of the user experience to incorporate a wider variety of user needs.

An excellent course, that covers this is Code.org’s CSD Unit 4 – The Design Process. In this course, students learn about solving problems with technologies and iteratively design and test a paper prototype before coding a digital prototype in their App Lab environment.

In other subject areas, such as business and enterprise education, students design a Minimum Viable Product (MVP) as a prototype solution only and rarely code a fully functioning solution. An excellent example course is Apps for Good.

I have a senior Applied ICT class and their project was to design a prototype app for a local business. Part of the assessment was to identify the software that was best suited to the task, so we set about trying, testing and reviewing the following:

App Lab (code.org)

This was their number one pick as it is very easy to drag and drop elements and with guidance, create multi-screen apps.

From a teaching point of view, the learning curve for setting up access is a bit steep, but well worth the effort.

The big advantage with App Lab is that you can start and end with prototyping if you want (which only requires one line of code to navigate between screens) or go on to build fully functioning apps. When I used App Lab with another class, we completed  CSD Unit 4 – The Design Process one term and then dived much deeper into javascript App programming in CSP Unit 5 – Building Apps.

Nice Scheme of Work from Ben Garside

appshed

Our next pick was appshed as it came with an easy to follow course , was easy to register and testing a live version on student phones was easy.

We used the free version, which meant that there were ads everywhere; but this was not actually very noticeable. The paid version is very cost effective and is a good idea if you want to expand beyond prototyping. I notice from the comparison page that there are javascript, PHP, SQL and IoT technologies for Raspberry Pi and Arduino; must explore further.

Blippit

Another similar App builder was Blippit. This was not well received as the interface was a bit confusing and students needed to be registered and could only work on one project with the free version.

We were only experimenting with bare bones prototyping, so I can’t say how the blippit blocks or purecode python works.

Unlike Appshed, you really need to upgrade to one of their plans to get full functionality and I think Appshed is probably better value for money.

App Inventor

Although there are a few clones, such as AppyBuilder and Thunkable that have become popular, I notice that App Inventor is still the goto App builder for most IoT projects.

In terms of basic prototyping, App Inventor is much like App Lab and easy to create digital screen designs and code basic navigation. Just like App Lab, it is also very extensible.

App Inventor is probably still the best supported technology, with a large volume of tutorials and guides available. Of course, at the end of the day, it only ports to Android.

AppyBuilder

AppyBuilder is a clone of App Inventor, so very similar features. One big disadvantage was the need for a google account and then it probably only ports to Android devices.

Thunkable

Thunkable is another google sign on, but can be published to Android or iOS. The downside is that this is not an entry level App builder and is not well supported with tutorials and guides. However, you could use the tutorials and guides for App Inventor and rig them for Thunkable.

Marvel

Marvel is purely a prototyping app builder. We didn’t test this out and this is an afterthought. According to its splashpage: “With the Marvel design platform, access all the core functionality you need to build digital products – wireframe, prototype and generate design specs in one place.” Another similar one is proto.io. An other similar one is build.me. This stands out because it also has built in guidance for User Interface (UI) and User Experience (UX) design.

Cognitive Verbs within Digital Technologies

command prompts

I front-load my curriculum, by backwards mapping my summative assessment; starting a unit plan with what I want to summatively assess and then breaking the knowledge and skills required into formative chunks or topics. Each topic is then based on the learning intentions and success criteria of the summative assessment task. Therefore, I put a fair bit of effort into mapping the Cognitive Verbs from the syllabus (ACARA Digital Technologies, in my case). I also concentrate on the assessment prompts and the questions I need to ask.

To make sure that this is both rigorous and effective, I have developed a place-mat that I can quickly refer to:

The first file is a template that can be used for any subject area and is based on Marzano’s Taxonomy. The definitions can be gained from the QCAA Glossary of cognitive verbs. The second is one I developed for Digital Technologies and it has the inclusion of the problem solving process.

I hope you find this useful.

Metaverse Augmented Reality (AR) App for Learning

View story at Medium.com

Recently, I have been playing with Augmented Reality (AR) in my classroom, after discovering Metaverse. Download the app and then scan my first attempt at a breakout game.

One thing that I learned is that I don’t know how to design an escape or breakout game. Thankfully, the good people at BreakoutEDU have some good design tools. If I get the time, my next iteration should be better.

Apart from creating the odd breakout game for my classes, I plan on incorporating this into a future multi-modal project for my students. Another idea is to have my students design and build AR learning experiences for other teachers, as part of their assessment.

The Medium.com Metaverse site has a whole host of ideas and uses for the app. Try some in your classroom.