STEM Invention with SAM Labs

I recently was lent a SAM Labs kit from MTA, so I decided to design a unit for an upcoming STEM class. I normally beta test these with students before I blog, but I couldn’t wait to make these available, and maybe you can give it a go.

The unit is wide open, with a lot of work in having students identifying a problem that needs to be solved or how life can be improved with some kind of IOT device. While this has always been my dream, its probably only for the brave and perhaps a hackathon in a restricted context is wiser.

I have also used Blockly via Workbench, which is starting to complement Makecode nicely. The standard environment for SAM Labs is their proprietary App which is a node-based coding environment.

The unit also uses Agile project management and team problem solving for all those 21st Century soft skills. These are also mapped into both the Digital and Design Technologies syllibi.

The unit can be downloaded as a Onenote or PDF and other goodies are available on the DigTech page.

Enjoy!

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

NOTE: The latest updates, revisions and OneNote files may be found in the DigTech Resources menu link above

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

NOTE: The latest updates, revisions and OneNote files may be found in the DigTech Resources menu link above

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.