Mostrar mensagens com a etiqueta Arduino. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Arduino. Mostrar todas as mensagens

sexta-feira, dezembro 16, 2016

Enabling Creation, Not Just Consumption: "Coding for Kids"

Follow my blog with Bloglovin

(some of my Apps at the Google Play Store)


'10 PRINT "HOW DO I GET MY 9 YEAR OLD STARTED?"
20 GOTO 10'



I taught myself BASIC on a ZX Spectrum when I was a teenager. 

I'd sell computer science as basically being much more fun than it sounds. At it's best, programming is a very creative activity, a drive for a balance of simplicity, power and elegance. It can be incredibly rewarding and luckily there's also no shortage of work if you're good at it, and high pay.

It has many of the plus sides of any physical engineering discipline (including the pleasure of making and evolving something after an idea), and few of the limitations:


  • very short feedback loops, you're almost instantly able to make something and see the effect - incredibly motivating to newbies;
  • the ability to return to any point during construction and 'branch' with alternate ideas or start over;
  • all the resources and community you need to start from scratch and become expert. No college degree is required, just a laptop, internet connection, motivation and talent.

I think we need to sell computer science in terms that will appeal to kids. But there's far more to IT than coding. Nearly every child will use IT in their future career and coding will suit very few. There's networks, hardware, storage, capacity and more. It's too simplistic a view in my view (I'm an IT worker since 1991).



(My Apps at the Google Play Store)


Once upon a time, people needed to learn about levers, gears and linkages to may their way in the industrial world. Later, it was triodes and pentodes, then transistors and integrated circuits. Nowadays it's C and other languages. It's a natural progression. Obviously, there will be some who just want to do hairdressing and "beauty therapy", but for others with ambition and a bit of an engineering bent, programming is where it's at. Single-board microcomputers such as Raspberry Pi and Arduino are an easy, accessible way to get started with this, and I can imagine that it will be very exciting and satisfying for a surprisingly wide range of students. There is very little exciting and engaging about making a Powerpoint presentation or using Microsoft Word - those are "skills" that you pick up anyway. But the real world runs on code and people still have to write that. If you don't understand it, even at a basic level, you are going to find yourself in a world you don't understand nor thrive in. Who wants that? Taught in the right way, there's nothing boring about it. I've shown people the very basics of Arduino - the "flash an LED" program - and without exception when people get that working using their own efforts it's always something that seems to get them excited. The usual response is that they never thought electronics/programming was that simple, but was inherently inscrutable and always beyond them. Once you show them that it isn't, the ideas and inspiration naturally follow. Even if that's only ever as far as it goes, they've learned something about how things work in the real world, and that is of great value.

I'm sure this will take off. It's even making me think that becoming a teacher for this sort of thing could be worth considering. If the teachers are not inspired, how can the kids be? I have yet to meet a teacher who is inspired by what can be done with Powerpoint. The computer is probably the most important and powerful piece of equipment most people have in their house, and everyone should have the skill to be able to tell it what to do for a change.
When it comes to children, some things (like cryptography or computational biology) are rather advanced subjects to start off with. Other things, such as recursion, or even search, is not really worthy of it's own mention. You leave of a lot of, for children, more interesting subjects such as animation, drawing and user interaction. Also I miss basic concepts, such as how does a computer actually work, what's it made of? If I had to make a list of stuff for kids to learn, it'd be something like this:


  • Basic computer concepts
  • Algorithms (would also include search and simple cryptography, also use of Open Source resources)
  • User interaction (not necessarily with GUIs)
  • Animation and Drawing
  • Web Design
  • Social Design and Crowd Sourcing
  • Basic System Administration
  • Cloud Computing

A lot of these things could be taught without computers in the form of games for younger kids. Information technology is not just about computers. Kids (and others) really need to understand more of the fundamentals and not just how to use excel. Otherwise, in a few years, a lot of key (but old) technologies will be lost (such as C or assembler). If you want to be able to do anything seriously useful with computers, you've got to have the maths. It's the maths that determines your ability to model a real-world scenario with data. That means matrices, differential equations, analysis, and all that other beastly stuff. Teaching someone "a programming language" will not address this deficiency. What objects will they be programming with? This stuff is tough, for students and teachers, much tougher than teaching Logo - but it's a gold mine.

I am pro programming in the curriculum. Why? Because I am pro problem solving in the curriculum and there is far too little of that. Programming (or coding) is a way of expressing thoughts towards solving a problem through to communicating the solution to others. It is like writing, music or art. It is a tool for creativity, for modelling and communication. It is about enabling creation not just consumption, it is about cooking not just eating. I’m not sure however, how we give children opportunities to, ‘…understand computational thinking…’. I don’t want them to just understand it, I want them to bloody do it!


NB: You can find my programming posts by using the following list (by year):

2016 (4):



Enabling Creation, Not Just Consumption: "Coding for Kids"
Android App: Brick-a-Brack
Android App: Whack the Minion!


NB: Counting in the post you're reading now, amounts to 4 posts this year.

2015 (9 posts):



Android App: "Sons de Bichos"
Android App: Children's Day: "Urso Taralhouco", A Flappy Bird Look-alike
Android App: (2b) U ~(2b): "Hamlet's To be ot Not To Be Soliloquy"
Android App: "Encryption e Decryption"
Android App: "Zombie Alarm"



2013 (5 posts):




Advanced Python Class: "PacMan" (extra-project)
Advanced Python Class: "Asteroids' Game (Final Project)"
Advanced Python Class: "Blackjack"
Advanced Python Class: "Memory Game"
Advanced Python Class: "Pong Game" (no AI Engine)

sexta-feira, maio 20, 2016

People are not Google’s 'Customers' or Even Google’s 'Users, but Its Feudal Livestock: “The Epic Struggle of the Internet of Things” by Bruce Sterling


“An IoT is not a consumer society. It’s a materialized network society. It’s like Google or Facebook writ large on the landscape. Google and Facebook don’t have ‘users’ or ‘customers’. Instead, they have participants under machine surveillance, whose activities are algorithmically combined with Big Data silos.”

In “The Epic Struggle of the Internet of Things” by Bruce Sterling.

Imagine the following creepy scenario.

Picture yourself doing the number 2 on your recently bought high tech throne. Unfortunately your next door neighbour is a black-hat hacker. Do you want him to hack into your home system and flush your toilet while you're on it? With our current batch of politicians I can guarantee that's what will happen. I can't see them stepping up to the plate. We all also know that when it comes to safety, leaving self-regulation to the end-user doesn’t seem to work.  We all know what happened with credit cards; we all know what's still happening with customer data; it's clear as water it's not going to work for the IoT. What's wrong with this picture? Everyone who works in IT knows that if one wants to add security to a product, it's going to cost big money.  Making a gadget a safer product adds to the cost of it, and that just doesn’t work in this day and age. For IoT to become widespread we need cheap, but also safer products, and I don’t see that happening in my life time.

As someone who was busy with the Internet of Things in the early 1990s (when there was still no IoT), it's interesting to see where technology has actually provided and where it's offering great opportunity, with the potential for massive support headaches for consumers and companies. I've been around tech innovation long enough to know that attempting to provide support beyond the brand is a huge headache and very few companies can do it well and profitably, no matter how lofty their ideals are.

The problem is that we currently have only shitty IoT gadgets that barely follow any standard, if at all. Every startup is doing something proprietary just to be able to say that it works with my smartphone. Development platforms for IoT are also mushrooming, making it easy for developers to get started. Arduino comes with its own development platform and programming language based on Wiring. Raspberry Pi is capable of running Linux distros and thereby opens up a lot of development opportunities (e.g., IoT frameworks for Pi like WebIOPi; Eclipse with its Open IoT stack for Java and with frameworks for building IoT/M2M gateways like Kura, Mihini, Paho, Koneki, Concierge, to name just a few). Who do they all want? They all want you to become hooked on their product (I hesitate to say “product”. They’re more like gadgets). What we need are standards (RFC like) that will become like the DNS or TCP/IP standard. Once this is in place everyone will be able to support it. In the meantime, just stay away from these shitty IoT gadgets. One does not want to end up with one’s bathroom full of brown matter…

I cringe when people talk about high tech thrones, and self-driving cars being better when they come equipped with embedded IoT stuff. The safer part of the equation might end up being true on average, but when the home or car system crashes, as it eventually must, the shit and carnage will be respectively spectacular.

Piece of advice. This is not Sterling at his most audacious. This essay shows us Sterling trying to be grippingly engaged with the task of telling us what the world may be like IoT-wise. Sometimes it feels so unremittingly down-to-earth that it seems far too long. It felt like I was dog-paddling while reading it…

sexta-feira, setembro 26, 2014

"Designing the Internet of Things" by Adrian McEwen, Hakim Cassimally

Designing the Internet of Things - Adrian McEwen, Hakim Cassimally
Let me start this review with a question: “is using a mobile device the perfect way to create an Internet of Things appliance?” (Answer at the end of this review).

When The Internet of Things theme first started to come up in the news, the first thing I thought was, I want to know what my microwave has to say to my flip-flops... what’s at stake here is something entirely different. I’m more concerned about the so-called legitimate application of the technology. Unfortunately there are many legitimate applications that can be used with illegitimate intentions in mind.

I’ve been working in IT for a long time. What I usually see is that those who are most adamant about how wonderful it will be when every device is internet connected are the same people who sell the HW that would be used for the connections. What I see all the time is that the actual value of the implementation is not anything remotely close to what is promised, and that when the novelty wears off, or a system gets hacked, the internet feature will be switched off. Then it will just be more electronic waste to fill up our homes.

Another catch is that the reliability of the internet connected device will be probably poor and then the microwave will stop working. Consequence: the people who paid will not be happy. And they’ll also not be happy about having to repair the 700 euro freezer when its electronic package fails. That’s a given. On top of that, to lower the cost of the embedded devices, the interfaces will be made as cheaply as possible. I don’t see how this can be addressed satisfactorily. Food for thought.

As far as I’m concerned the key factor in terms of Internet of Things adoption relies on Security. In the past, technology has lagged on issues such as networking. Forthe Internet of Things to really take off we need everything to be cutting edge. Vendors are beginning to connect everything, from remote conditioning to phone apps. It goes without saying that with every new connection, there is a possible new entry point security-wise. If the issue is not addressed properly, all hell will break loose then…

Getting back to the book at hand, the authors give us a very thorough analysis of the field. Starting with the Arduino, and the Raspberry Pi, McEwen and Cassimally also established a very interesting comparison between the two industry-wise. I’m more of a Raspberry Pi fan, because the latter is really a computer that can run a real operating system, and communicate with keyboard and mouse, talk to the internet, and drive a TV/monitor with high-resolution graphics. The Arduino instead has a fraction of the raw processing power, memory, and storage required for it to run a modern operating system. Nevertheless it doesn’t make sense to say that one is better than the other. It all depends on what we want to use it for. Although the specifications of the Raspberry pi are in general better than even the top Arduino, we can’t judge them as strictly better without considering what the devices are for. I’ve built a few home projects using the Raspberry Pi, and I’m very partial to it, but that’s just me (the Arduino has a very specific way to do things, whereas the Raspberry Pi presents us with a clean canvas, giving us choices for operating systems and programming languages; that’s why I prefer the Raspberry Pi over the Arduino).

I’d have liked to have seen in the book a technical discussion in terms of the specific protocols that we need to implement the Internet of Things (eg, MQTT - a protocol for collecting device data and communicating it to servers, XMPP - a protocol best for connecting devices to people, a special case of the D2S pattern, since people are connected to the servers, DDS - a fast bus for integrating intelligent machines, and AMQP - a queuing system designed to connect servers to each other). It’d have given a more technical perspective of what lies ahead (vide my review of the Adam Greenfield book to understand the work we still have ahead of us to get there).

I strongly believe I’ll be able to see, in my lifetime, the full power of The Internet of Things. As stated in the book at hand:

“I can’t understand why teddy bears did not have wifi before. A bear without wifi is barely alive, a semi-bear”.

Answer: No. The temptation is always to fall back on the device’s capabilities as a phone, at which point I’m really just creating an “app” for the device rather than a new “thing”. For that we need embedded systems (ArduinosRaspberry PIs and the likes).