okt 282018
 

De site/toepassing is niet nieuw, maar ik had simpelweg nog geen reden gehad om er eerder naar te kijken: MIT App Inventor.

Vandaag heb ik er voor het eerst mee geëxperimenteerd. De aanleiding is een wat groter project waarbij ik sensorwaarden die via een ESP32 worden verzameld direct op een mobiel apparaat wil kunnen ontvangen (dus niet via WiFi / MQTT etc). Het idee is om daar BLE (Bluetooth Low Energie) voor te gebruiken, de ESP32 heeft standaard WiFi en BLE ingebouwd. Maar de standaard apps die je voor BLE kunt downloaden hadden wat moeite met het verwerken en zeker met het netjes weergeven van de data die op deze manier binnen kwam. Zelf een app bouwen voor iOS of Android had ik in het verleden wel al eens geprobeerd, maar in beide gevallen was het installeren van de benodigde tools/software en het krijgen van een basisbegrip van hoe e.e.a. werkt al voldoende reden om daar niet teveel extra tijd in te steken.

Ik was dan ook een beetje sceptisch toen ik de verwijzing naar MIT APP Inventor tegenkwam. Maar, de eerste indruk na een paar uurtjes testen is heel positief. Goed, de eerste beperking voor nu is nog dat er nog geen ondersteuning is voor iOS. Dat was voor mij geen echt probleem, ik heb beide ter beschikking.
Heel prettig is wat mij betreft dat ik meteen in de online omgeving aan de slag kon. Ik kon met een Google account inloggen, naar keuze voor mij dan dus via @gmail.com of via @ixperium.nl omdat we Google Apps for Education gebruiken. Maar helemaal mooi werd het na het koppelen van mijn Android toestel via de MIT AI2 Companion App die ik via Google Play kon installeren. Na het scannen van een QR-code of het invoeren van een korte code werd mijn toestel gekoppeld aan het project waar ik mee bezig was. Dat betekende dat wijzigingen meteen werden doorgevoerd en te testen waren.

Het bouwen van een applicatie voelde heel vertrouwd, enerzijds heb je de ontwerpomgeving waar je knoppen, lijsten etc. op je scherm plaatst. Om er voor te zorgen dat die knoppen daadwerkelijk iets doen gebruik je de “Blocks” omgeving. Als je met Scratch kunt werken of met de Blocky achtige omgevingen zoals ook bij de Micro:bit gebruikt worden, dan kun je hiermee eenvoudig overweg.
En ook wijzigingen die je hier doorvoert worden meteen in de app op je smartphone doorgevoerd.

Heb je app helemaal klaar, dan kun je een .apk bestand downloaden op je smartphone. Dat is dus een “echte” app die gewoon zelfstandig werkt, los van de online omgeving. Nou staan de meeste smartphone tegenwoordig zo ingesteld dat ze niet zomaar apps installeren die niet in Google Play staan. Maar als het goed is, dan is dat één vinkje dat je moet aanzetten. Ik heb nog niet uitgezocht hoeveel werk de optie is om je app via Google Play te delen via App Inventor, want dat is voor mijn doel niet nodig.

Conclusie
Voorlopige conclusie is dat deze omgeving voldoende flexibiliteit biedt voor wat ik nodig heb.  De app is nog niet klaar dus nog geen filmpje etc. van het eindresultaat. Dat wordt nog vervolgd.

Deel dit bericht:
jul 212018
 

Mooi filmpje van Chuck Hellebuyck over het gebruik van Blockly in Tinkercad om 3D ontwerpen te “programmeren”. Tinkercad noemt het zelf “Codeblocks”, maar iedereen zal er snel de Blockly structuren in ontdekken.

Waarom zou je er gebruik van maken?  Bijvoorbeeld als je een ontwerp wilt maken waarbij je bepaalde eigenschappen in variabelen vast wilt kunnen leggen. Bijvoorbeeld een tafel waarvan je de dikte van de poten eenvoudig wilt kunnen aanpassen. Chuck verwijst naar OpenSCAD, een optie waarbij je eveneens je ontwerp in programmeertaal beschrijft (en zo eenvoudig parameters kunt gebruiken). Maar waar OpenSCAD voor programmeurs bedoelt is, zijn Codeblocks juist meer iets voor “beginners” (liever: nog niet-programmeurs).

Mooi is dat Tinkercad een aantal voorbeelden bijvoegt waarmee je een beeld krijgt van wat mogelijk is. De tafel die Chuck laat zien is er één van. De raket ziet er ook mooi uit:

Deel dit bericht:
jun 042018
 

Op de BBC website staat een mooi filmpje (embedden is helaas nogal een ding, gaat via lelijke iframe) van een workshop die door Artronix uit Glasgow ontwikkeld is. In de workshop bouwen deelnemers/leerlingen robots met een of meerdere micro:bits, servo’s, LED’s etc.
Op zich niet nieuw. Maar de opdracht daarbij is om een scene uit een bekende film na te bouwen. Op de website zie je voorbeelden van Jeepers BleepersWar of the Worlds – Rise of the micro:bitsMicro:Wars – A New Code, Bride of Frankenbit, A Fistful of micro:bits.

De scenes bevatten een combinatie van hergebruikte speelgoed poppen, decors, filmeffecten en vooral veel creepy stemmetjes. De clips zijn kort en ook dat is niet altijd gemakkelijk want het betekent dat ze heel erg to the point moeten blijven. Bekijk ze zeker ook even op de pagina van de BBC daar staat ook de PDF met instructies. Op Twitter zijn er ook een aantal te vinden.

(p.s. aan de tweets kon ik zien dat het project van 2017 is, ik kwam er vandaag pas via de Adafruit website)

Deel dit bericht:
apr 022018
 

De SonicPi software bestaat al lang. Maar ik heb er nog niet eerder over geschreven. Bij deze dus. Want eigenlijk kan dat natuurlijk niet.

Even vooraf: de SonicPi software verwijst in zijn naam naar de Raspberry Pi, maar je hebt geen Raspberry Pi nodig, de software draait ook gewoon op Windows, een Mac of Linux. Je kunt hem gratis downloaden en voor Windows is er ook een “portable” versie, die hoef je dus niet te installeren, kun je gewoon op een USB-stick zetten.

Wat is SonicPi en waarom zou je er iets mee moeten?
Dat kan ik je waarschijnlijk het beste door de bedenker (Sam Aaron) ervan laten uitleggen. Het filmpje hieronder is al uit 2015 (er zijn oudere filmpjes):

De introductie lijkt erg op het verhaal van Felienne bij haar Python/programmeren en kunst workshop.  En daarmee bedoel ik richting beiden niets negatief. Integendeel. Beiden maken duidelijk dat maar een bepaalde (kleine) groep speciale mensen enthousiast wordt van programmeren. En ook Sam Aaron maakt duidelijk dat het een stuk eenvoudiger is om kinderen enthousiast te maken over programmeren als je ze ook echt iets geeft waar ze enthousiast over worden.

Nou moet ik bekennen dat dit, net als verhalen bedenken in Python, natuurlijk ook weer niet voor elke leerling zal gelden. Ik heb vanmiddag een uurtje zitten spelen met SonicPi en zo goed als Sam zal ik waarschijnlijk nooit worden. Sowieso, kijk maar eens hoe veel werk het is om onderstaande track te maken.

Lees verder….

Deel dit bericht:

Jarig op Moederdag?

 Gepubliceerd door om 22:34  Algemeen, Programmeren
apr 012018
 

Het zijn zo van die vragen die opeens over de ontbijttafel vliegen. Een van mijn neven is geboren op Moederdag. Toen was dat 9 mei.
Vraag #1: kun je daaruit afleiden welk jaar het is?
Vraag #2: hoe vaak is hij op Moederdag jarig?

Tja, en als het dan weekend is, dan is er tijd om op zoek te gaan naar een antwoord. Het werd een combinatie van het opknippen van het probleem in stukjes en voor een deel brute rekenkracht (nou ja).

Het opknippen van het probleem was niet zo moeilijk: wanneer valt Moederdag? Het is de tweede zondag van mei. De eerste zondag valt op zijn vroegst op 1 mei, op zijn laatst op 7 mei. Dat betekent dat de tweede zondag op zijn vroegst op 8 mei en op zijn laatst op 14 mei valt. Als je de zondagen telt tussen 1 mei en 14 mei, dan weet je dat de tweede die je tegen komt Moederdag is.
Als je dan kijkt of die dag gelijk is aan 9, dan weet je of zijn verjaardag samenvalt met Moederdag.

Gereedschap voor het tweede deel was vandaag repl.it en dus Python. Ik heb de code hier gedeeld: https://repl.it/@PiAir/Jarigopmoederdag.

Als je de link volgt en de code uitvoert, dan zie je dat het best vaak voor komt. Afleiden in welk jaar hij geboren is kan op basis hiervan niet. Dus dat jaartal heb ik onderdeel van de code gemaakt (de code kijkt 50 jaar terug ten opzichte van dat jaar en 100 jaar vooruit). En de uitvoer laat zien dat er heel duidelijk een regelmaat is: elke 6, 5, 6, 11 jaar valt zijn verjaardag samen met Moederdag.

Geen oplossing voor een belangrijk wereldprobleem. Maar ja, het was een vraag die we hadden. 🙂

Deel dit bericht:

Programmeren & Kunst

 Gepubliceerd door om 21:45  coding, Onderwijs
mrt 072018
 

Waarschuwing! Als je weinig tijd hebt, een deadline voor je werk, klusjes die je echt nog moet doen, lees dan niet verder. Want de kans is groot dat je namelijk het komende uur of langer bezig bent naar aanleiding van deze blogpost.

Ok, je bent gewaarschuwd. Het bericht van vandaag gaat over de workshop die Felienne Hermans vandaag tijdens de tweede dag (ochtend) van de NIOC conferentie verzorgde. Hij was getiteld “Programmeren & Kunst” en ik had al uit de beschrijving begrepen dat we ook echt met Python aan de slag zouden gaan.

Nou ken ik voldoende (micro)Python om me wel te redden, maar het ging me om de combinatie met Kunst. Felienne had op dinsdag tijdens haar keynote er al kort iets over verteld.

De WORKshop begon met het op het beeldscherp typen van dat woord door Felienne: dit is een WORKshop, dus pak je laptop maar.

Voor de workshop maakten we gebruik van repl.it, een gratis dienst waarmee je o.a. een Python editor en live REPL in je browser krijgt. Geen noodzaak dus om Python op je computer te installeren. Handig en snel, zeker ook in een onderwijssetting. Wil je de code bewaren, dan is het aanmaken van een gratis account handig. Leuk ook is dat je je code heel eenvoudig kunt delen. De code voor de gif hierboven bij het bericht is hier te vinden. Wil je zelf verder werken met die code dan kun je op de “fork” knop klikken.

En het laat meteen de waarschuwing zien: vandaag bij de workshop was ‘spirograaf’ niet de opdracht waar we aan gewerkt hebben. Dat heb ik daarna gedaan, toen ik eigenlijk ‘even snel’ een blogpost had willen maken, waarvan het daarna een stuk langer duurde voordat die af was. De PDF met uitleg is hier te vinden.

Tijdens de workshop ging het om het verzinnen van gekke verhalen. Felienne liet kort zien dat je maar een klein stukje code nodig hebt (haar voorbeeld kun je hier forken) om te beginnen bouwen aan een gek verhaal. Daarna gaf ze het al snel aan ons over. Niet iedereen had een laptop en ook nu was dat handig. Want in groepjes was de opdracht veel leuker: maak een gek verhaal in Python. De docentinstructie kun je hier vinden.

Het resultaat van ons groepje staat hier. Elke keer als je op de run-knop drukt, krijg je een ander verhaaltje.

Leuk was dat er heel verschillende resultaten uit kwamen van de verschillende groepjes. Dus niet alleen in gekozen woorden, maar sommigen waren wat verder gegaan met loops, keuzes, input opvragen etc.
Iedereen ging ook best wel los op de opdracht. En dat was heel grappig om te zien: minimale code vooraf uitgelegd, een heel eenvoudige online omgeving en je kunt volwassenen en kinderen/jongeren los laten gaan in hun creativiteit en dan intussen laten oefenen met hun programmeervaardigheden.

 

Deel dit bericht:
mrt 062018
 

If I write only one blogpost about day 1 of the NIOC conference, then it has to be one about the keynote and session by Paul Curzon. And to spare him the trouble of having to use Google Translate if he stumbles upon this post, I’ll do it in English.

Why about his performance during this first day? Because he showed me (and the other participants) really nice examples of ways that we can, could, maybe even should, explain computational thinking and other programming concepts to pupils / students. He used “Magic” as a way to make abstract concepts like problem decomposition, algorithms etc. very clear. Even though he used our confusion (about how a trick could possibly work) as a way to get us interested and motivated to learn the solution.

Take a look for example at the Australian Magician’s Dream in the video below.

Note: the video is from 2016, when he does the trick live, he now looks much more relaxed than in the video. So, at first, this might look like just another magic trick. But when he does the trick live, either with grown-ups or with smaller students, he lets the guess the solution. How does the trick work? It is no real magic, no quick hand movements, it is in fact an algorithm.

If you want to know how it works, and/or do it yourself with your students, have a look at this page, you’ll find two more video’s and PDF’s that can help you prepare the trick.

Of course, it is not the first “teaching unplugged CS” course, but I really liked the concept chosen here.

You can find a lot more resources on the website, I have ordered the book The Power of Computational Thinking: Games, Magic and Puzzles to Help You Become a Computational Thinker, by Paul Curzon and Peter W. McOwan so I can read more about it.

So, to be continued….

Deel dit bericht:

Programmeren met de kerstman

 Gepubliceerd door om 17:01  Algemeen, Programmeren
dec 232017
 

Alle scholen hebben inmiddels Kerstvakantie. En zelf doen we eigenlijk helemaal niet aan de Kerstman, maar de Santa Tracker van Google met ingebouwde “leren programmeren” omgeving is leuk genoeg om even naar te linken: https://santatracker.google.com/codelab.html

Leuk om zelf uit te proberen, samen met de kids….

De gewone tracker met al zijn extra’s is hier te vinden: http://g.co/santatracker

 

 

Deel dit bericht:
nov 202017
 

De TIOBE index is een indicatie van de populariteit van programmeertalen. Het is een Nederlandse index (uit Eindhoven) en TIOBE staat voor “The Importance of Being Earnest” (klik maar even op de link voor verdere toelichting daarover).

De index wordt berekend aan de hand van het aantal resultaten dat je krijgt als je naar de programmeertaal zoekt in een aantal populaire zoekmachines: Google, Google Blogs, MSN, Yahoo!, Wikipedia en YouTube. Het is dus niet persé een index op basis van het daadwerkelijk gebruik van de programmeertalen, maar dat zou ook best moeilijk zijn, want wat tel je dan (aantal programma’s, aantal regels code, …. ?).  Het idee is dus dat hoe meer informatie over een programmeertaal online te vinden is, des te populairder je mag veronderstellen dat de programmeertaal is.

(als de resultaten voor jouw favoriete taal je dus niet bevallen, kun je altijd nog de validiteit van de index in twijfel trekken!)

Hoe dan ook, op basis van de TIOBE index komen een aantal oude bekenden nog steeds bovenaan in de lijst voor. Java voert de lijst aan, C / C++ / C# staan alledrie in de top 5. Python staat op 4, JavaScript op 6, PHP op 8 en Visual Basic .Net op plek 7.

Ik kwam bij de index vanwege een bericht op mspoweruser.com waar ze maar wat blij waren dat ze konden verwijzen naar Infoworld.com waar ze geconstateerd hadden dat Swift, de programmeertaal van Apple, na een initiële opkomst in de index, nu flink gekelderd was in de index. Van plek 12 naar plek 20.

Nogmaals, dat betekent niet persé dat Swift minder gebruikt wordt, wel dat er minder over gepubliceerd wordt.

De (mogelijke) verklaring die Infoworld gaf is dat Swift nou eenmaal maar voor één platform is: iOS, terwijl andere talen, zoals JavaScript en C# gebruikt worden in cross-platform ontwikkeltools Xamarin van Microsoft, Cordova van Apache en Ionic. Ook Java zou daaronder te lijden hebben, maar niet voldoende om van de nummer 1 plek gedrukt te worden.

Als je het hebt over het op school gebruiken van programmeertalen die ook in het wild populair zijn, dan is Python in ieder geval niet eens zo’n vreemde keuze.

 

Deel dit bericht:
apr 102017
 

Als het in het onderwijs in Nederland over “programmeren” gaat worden eenvoudige vragen al heel snel ingewikkeld. Dus een vraag als “Welke programmeertalen zouden onze leerlingen/studenten moeten kennen?” (bron) is niet helemaal zonder risico. Immers, je moet dan gaan nadenken over het doel dat je daarmee hebt. Wil je ze leren programmeren? Of juist coderen? Of software ontwikkelen? Ik ga niet eens proberen naar bronnen te linken die ze op één hoop of op juist heel verschillende hopen (en dan per bron ook verschillend) gooien.

Dus laat ik het maar even veilig houden in deze blogpost. Zo’n 9 jaar geleden vroeg ik me af welke programmeertalen ik allemaal zou moeten leren. Zoals ik toen beschreef:   Basic was mijn eerste kennismaking met programmeren, maar daar kon je (toen) zo weinig mee dat ik er niet veel interesse voor had. Op de universiteit leerde ik Turbo Pascal om daar vervolgens nooit meer wat mee te doen. Daarna kwam ik in de Windows omgeving en Visual Basic (binnen Office!) en Active Server Pages (ASP) terecht. Mijn eerste kennismaking met JavaScript was in de browser, ASP werd vervangen door PHP toen ik weblogtools ging gebruiken op basis van die taal. En daarna werd het een opeenvolging van “wat heb ik nodig”. Zo kwam er een beetje Python bij, een heel klein beetje .NET en eveneens een klein beetje Java. Dat was toen. Sindsdien zijn er dingen gewijzigd en gelijk gebleven.

Lees verder….

Deel dit bericht: