Tag: BJOC

  • Programmeren met AI en LLMs

    Programmeren met AI en LLMs

    LLMs A New Way to Teach Programming

    Als instructeurs en onderzoekers hebben we allemaal gezien hoe uitdagend het kan zijn voor studenten om te leren programmeren. Studenten moeten iteratief vele vaardigheden leren, zoals het gebruik van de juiste syntaxis, het traceren van code, het gebruiken van veelvoorkomende programmeerpatronen, code schrijven en de code die ze schrijven testen en debuggen. Het worstelen met een van deze taken kan betekenen dat de student niet in staat is om het probleem op te lossen dat ze wilden oplossen.

    In deze presentatie zullen we onderzoeken hoe grote taalmodellen (LLM’s), zoals GitHub Copilot en ChatGPT, de vaardigheden die nodig zijn om te slagen in programmeren kunnen veranderen en meer studenten in staat kunnen stellen succesvolle programmeurs te worden. Opmerkelijk genoeg kan deze verschuiving – weg van syntaxis en naar probleemdecompositie en testen – precies zijn waar veel instructeurs altijd al op hoopten zich te kunnen richten in CS1.

    As instructors and researchers, we’ve all seen how challenging it can be for students to learn to program. Students need to iteratively learn many skills, such as using correct syntax, tracing code, using common programming patterns, writing code, and testing/debugging the code they write. Struggling with any one of these tasks may mean that the student fails to solve the problem they wanted to solve.

    In this talk, we’ll explore how Large Language Models (LLMs) like GitHub Copilot and ChatGPT can shift the skills needed to succeed at programming and enable more students to become successful programmers. Remarkably, this shift –- away from syntax and toward problem decomposition and testing may also be exactly what many instructors were hoping to be able to focus on in CS1 all along.

    • Why so many students struggle in CS1
    • How LLMs change the skills needed to program, and how we might teach these skills
    • How LLMs benefit students and instructors
    • Concerns and questions around using LLM s
  • Leren programmeren? BJOC is geupdatet!

    Leren programmeren? BJOC is geupdatet!

    Aan de slag!

    In dit artikel wordt de cursus programmeren van BJOC.nl besproken, speciaal ontworpen voor beginners en docenten om te leren programmeren. Hoofdstukken 1 en 2 zijn volledig herschreven en de cursus biedt ondersteuning en begeleiding.

    Hier zijn vijf tips om te leren programmeren:

    • Begin met de basis: Leer de basisprincipes van programmeren en de terminologie die daarbij hoort.
    • Oefen regelmatig: Oefening baart kunst, dus blijf oefenen met het schrijven van code.
    • Volg online cursussen: Er zijn tal van gratis en betaalde online cursussen beschikbaar om je kennis te vergroten. The Beauty and Joy of computing kan een heel goede start opleveren!
    • Lees code van anderen: Bekijk en bestudeer code van anderen om te leren hoe ze bepaalde taken hebben aangepakt.
    • Wees creatief: Gebruik je fantasie en verzin creatieve manieren om code te schrijven en problemen op te lossen.

    Zoek je een kwalitatief hoogstaande en gratis cursus om te gebruiken in je lessen programmeren? BJOC.nl biedt een uitstekende start voor jou en je leerlingen! Onze website biedt een cursus programmeren voor beginners, waarbij we onlangs de eerste twee hoofdstukken volledig hebben herschreven en alle onzorgvuldige vertalingen hebben verbeterd.

    Leer programmeren met Alonzo. De mascotte van Snap!.
    Alonzo, de mascotte van Snap!

    Onze cursus is gemakkelijk te leren en leuk om te doen. De eerste twee hoofdstukken zijn nu nog beter geschreven en bieden een duidelijke uitleg van de basisprincipes van programmeren. Het beste van alles is dat onze cursus volledig gratis is, dus er zijn geen kosten verbonden aan het leren programmeren!

    Met BJOC.nl hoef je als docent geen voorkennis te hebben om de cursus te kunnen geven. Onze lessen zijn zo opgezet dat alle leerlingen ze kunnen begrijpen en volgen. We bieden alle informatie die nodig is om een succesvolle programmeur te worden, van de basisprincipes tot het schrijven van complexe programma’s.

    Hulp bij het leren programmeren

    Naast het leren van de programmeertalen biedt BJOC.nl ook begeleiding en ondersteuning aan leerlingen. Ons forum is een geweldige plek om vragen te stellen en hulp te krijgen van andere programmeurs. We hebben ook een sectie met tips en trucs om leerlingen te helpen tijdens het leerproces.

    Begin vandaag nog met onze gratis cursus en ontdek de wereld van programmeren! Wij zijn ervan overtuigd dat onze cursus een waardevolle aanvulling zal zijn op jouw lesprogramma. Aan de slag, op naar bjoc.nl. Deze cursus kun je ook gebruiken om in te zetten bij het leergebied Digitale Geletterdheid

  • Blown to Bits

    Blown to Bits

    Druk 2 is uit!

    Met plezier heb ik delen uit druk 1 gebruikt in de lessen. Het geeft een goede en onderbouwde inkijk op de invloed van technologie op ons leven, ons geluk en onze vrijheden. Werd er in druk 1 nog een voorbeeld genoemd om een telefoon te lokaliseren met verschillende zendmasten omdat de technologie van Find my nog niet was uitgevonden. In druk 2 komen privacy en de gevolgen van technologie nog beter tot zijn recht. De explosie van digitale technologie heeft alles opgeblazen – en de explosie heeft nieuwe uitdagingen en kansen opgeleverd. Deze tweede editie van Blown to Bits levert de kennis die je nodig hebt om meer controle over je informatieomgeving te krijgen en te gedijen in een wereld die eraan komt, of je het nu leuk vindt of niet.

    Technologie die een explosie veroorzaakt? Zie het als een verschil tussen piramidebouwers en informatiedelers. De eerste deelt een steen en zit met twee kleine stenen. Materie kun je wel delen, maar in totaal blijft de hoeveelheid hetzelfde. Informatiedelers delen ook, maar in plaats van dat de hoeveelheid hetzelfde blijft, vindt er een verdubbeling plaats. Informatie delen was ‘vroeger’ voorbehouden tot de elite die kon lezen en schrijven. Met de opkomst van de boekdrukkunst, het massaal kunnen vermenigvuldigen van informatie, werd er al voor gewaarschuwd. Met de opkomst van digitale technologie zoals internet en social media is de invloed op onze wereld zo sterk veranderd dat er zelfs klokkenluiders bij bedrijven opstaan die geen producten verkopen. Facebook verkoopt advertenties, maar niet aan de gebruikers.

    Hoofdstukken Blown to Bits

    En, gratis te gebruiken!

    Blown to Bits is volledig herzien met de laatste controverses over sociale media, ‘nepnieuws’, big data, bedreigingen uit cyberspace, privacy, kunstmatige intelligentie en machine learning, zelfrijdende auto’s, Internet of Things en nog veel meer… Digitale Geletterdheid is acuteler dan ooit! We schreven er al eens een visie Digitale Geletterheid in het onderwijs over.

    Creative Commons License CC BY-NC-SA

    Blown to Bits: Your Life, Liberty, and Happiness After the Digital Explosion, Second Edition, is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 4.0 License.

  • De Schoonheid en Vreugde van Programmeren

    De Schoonheid en Vreugde van Programmeren

    i&i is sinds aantal maanden 'eigenaar' van de Nederlandstalige versie van The Beauty and Joy of Computing. Maar Eigenaar is niet het perfecte begrip. Deze lesmethode is met een grote groep vrijwilligers vertaald naar het Nederlands, alle voorbeelden zijn niet alleen vertaald maar ook gelokaliseerd. Het materiaal is afkomstig uit de VS en heeft daar een grote gebruikersgroep. Met deze vertaling hoopt de vakvereniging i&i dat wij een positieve bijdrage leveren aan het leren programmeren in het Nederlands. Minder 'cognitive load' en daardoor meer energie voor mooie en leuke dingen!  Onze visie op Digitale geletterdheid vind je hier. Meer overleg kan via het ieni-forum!

    Waarom kan de Schoonheid en Vreugde fantastisch zijn?

    Programmeren kan fantastisch zijn. Je bent niet alleen creatief maar ook inventief bezig. Daarnaast geeft programmeren een hoeveelheid controle die je niet terugziet in de meeste andere activiteiten. Jijzelf bent degene die bepaalt of je programma werkt, in plaats van bijvoorbeeld een docent. Het is een spel waar je vaardigheid in moet krijgen, zoals schaken, maar dan zonder het competitieve aspect. Dit is de beste reden om informatica als vak te leren en wij willen dat alle kinderen de vreugde van programmeren kunnen ervaren. Daarom hebben we ’the beauty and joy of computing’ vertaald naar De Schoonheid en Vreugde van Programmeren.

    Computer Science Principles en basisprincipes van de Schoonheid en Vreugde van Programmeren

    BJOC is gebaseerd op het kader van de Amerikaanse AP CS Principles, wat draait om zeven ‘Grote Ideeën’ (dingen om te leren) en zes “Goeie Gewoontes met Computational Thinking” (dingen om te doen)

    Computer Science Principles en basisprincipes van de Schoonheid en Vreugde van Programmeren
    Computer Science Principles en basisprincipes van de Schoonheid en Vreugde van Programmeren

    Er is veel overlap tussen de Ideeën en Oefeningen. Creativiteit is een idee, maar creëren is een toepassing.

    Grote Ideeën

    • Creativiteit komt vooral terug in de programmeerprojecten
    • Abstractie wordt door ons gezien als het centrale idee van informatica, en we leggen de nadruk op het gebruik van abstractie in de context van programmeren. Dit omvat zowel het abstraheren van functies als van data, om de implementatie van een abstract data-type los te koppelen van zijn gebruik.
    • Data en Informatie kent een belangrijke plek in deze lesmethode.
    • Algoritmes, net als met creativiteit wordt hierover impliciet geleerd tijdens het programmeren. Er wordt dus niet vaak over algoritmes gesproken als een apart onderwerp, behalve dan bij een aantal onderwerpen zoals het analyseren van algoritmes en asymptotische volgordes van groei.
    • Programmeren, De schoonheid en Vreugde van Programmeren legt hier de nadruk. Wij geloven dat Snap!, de programmeertaal die we gebruiken, ons in staat stelt om een diverse samenstelling van beginners te bereiken.
    • Het Internet Leerlingen leren bijvoorbeld veilig om te gaan met informatie op het internet.
    • Globale Impact, hierop ligt na Abstractie de grootste nadruk ligt. Dit begrip omvat de sociale betrekkingen van programmeren. We gebruiken lezingen en discussies om verschillende aspecten van dit onderwerp te verkennen in ieder hoofdstuk van de lessen. Details over de onderwerpen en leerdoelen staan verderop in deze tekst.

    Goeie Gewoontes met Computational Thinking

    • Connecting Computing kan betekenen dat je het programmeren aan hobby’s of aan de industrie verbindt, of misschien zelfs aan de wetenschap. Maar nog belangrijker, voor ons, is dat leerlingen programmeren verbinden aan hun sociale toepassingen, onze tweede grootste focus.
    • Computational Artifacts Maken, dezew term  slaat op video’s, presentaties, blogs, programma’s, muziek, spreadsheets — en wat je nog meer met de computer kan creëren. Creëren vinden wij het belangrijkste. . Maar zij maakt de spel door. Maar de leerling laat ook creativiteit zijn in het ontwerpen van de structuur van het programma.
    • Abstraheren, net als dat het idee van abstractie onafscheidelijk is van het idee van programmeren, is het beoefenen van abstractie onafscheidelijk van programmeren.
    • Problemen en Artefacten Analyseren, Bijna net zo belangrijk als het analyseren van programma’s: debugging, het voorspellen van het gedrag van iemands code en het in acht nemen van de efficiëntie. Maar we benadrukken dat deze vaardigheid niet het uiteindelijke doel is; uiteindelijk is het de bedoeling dat men op zijn of haar werk programma’s kan maken.
    • Communiceren en Samenwerken zijn belangrijk, maar bij BJOC ligt er minder de nadruk op. Aan het begin van de les onderwijzen we het process van pair programming.

    Visueel Programmeren met De Schoonheid en Vreugde van Programmeren

    Snap!, de programmeertaal ontworpen om deze les te ondersteunen, maakt gebruik van hetzelfde ontwerp als Scratch waar blokken met code aan elkaar worden gezet.

    De vormen en kleuren van de blokken herinneren de gebruikers aan de categorieën waarin de blokken vallen.

    Voorbeeld code van Snap!. De Schoonheid en Vreugde van Programmeren
    Voorbeeld code van Snap!

    Het blok met een C-vorm is een lus, en omsluit ook visueel de code die herhaald wordt. De groene blokken worden gebruikt om te tekenen en de blauwe blokken om objecten te bewegen.

    Omdat Scratch ontworpen is om gebruikt te worden door achtjarigen, hebben de makers cruciale onderdelen voor het leren van informatica weggelaten. Bij Snap! zijn de nodige mogelijkheden voor abstractie toegevoegd, zonder de zorgvuldig ontworpen visuele metaforen te verstoren waar Scratch zo goed gebruik van maakt.

    Voorbeeld code van Snap!. De Schoonheid en Vreugde van Programmeren
    Code van onderstaande boom
    Voorbeeld project in Snap!. De Schoonheid en Vreugde van Programmeren
    Boom op basis van Snap!

    Uitbreidingsmogelijkheden

    Voor leerlingen die erop staan om te programmeren met tekst, geeft Snap! toegang tot een Javascript-omgeving waarin dit mogelijk is zoals je hieronder kunt zien.

    Met deze functionaliteit krijg je het beste van beide werelden, met respect voor het (zinloze, vinden wij) argument over visuele talen tegenover traditionele talen. We leren geen Javascript bij BJOC, maar het is een mogelijkheid als verrijkende activiteit, indien gewenst.

    Daarnaast, omdat Snap! op elke moderne browser beschikbaar is, kunnen leerlingen mobiele apps maken voor iOS of Android door een snelkoppeling te maken naar de URL van het project op het bureaublad van het betreffende apparaat.

    Snap! werkt ook met Finch, Hummingbird, Sphero, Lego NXT, Wiimote, LEAP Motion en Arduino!

    Javascript-omgeving met Snap!
    Javascript-omgeving met Snap!

    Maatschappelijke invloed van programmeren met De Schoonheid en Vreugde van Programmeren 

    Wij zijn van mening dat iedere technologie voor- en nadelen heeft. Het zijn mensen die beslissen hoe ze de risico’s minimaliseren en de voordelen maximaliseren. Daarom is bij elk van deze onderwerpen ons doel om alle vormen van vooroordelen te ontwijken. We kijken naar alle invalshoeken van een onderwerp. We nemen als voorbeeld het gebruik van gecopyright werk. Een liedje luisteren zonder dat je ervoor betaald hebt, wordt vaak gezien als iets negatiefs. Als er niet betaald wordt voor dat liedje, verdient de artiest geen geld. Toch zijn er ook andere manieren om geld te verdienen, bijvoorbeeld door een concert te geven of merchandise te verkopen. Op die manier wordt het liedje eerder een advertentie voor de artiest, die dus gewoon gratis kan zijn.

    We gebruiken het boek Blown to Bits (gratis te lezen) als onderdeel van de cursus. Het boek is bedoeld voor volwassen lezers en is geschreven in het Engels. Om het toch in deze cursus te gebruiken zijn er korte fragmenten gebruikt. Deze fragmenten zijn ook goed geschikt om klassikaal te lezen. Het materiaal is gratis te gebruiken, zoals alles in deze cursus.

    naar is niet het perfecte begrip. Deze lesmethode is met een grote groep vrijwilligers vertaald naar het Nederlands, alle voorbeelden zijn niet alleen vertaald maar ook gelokaliseerd. Het materiaal is afkomstig uit de VS en heeft daar een grote gebruikersgroep. Met deze vertaling hoopt de vakvereniging i&i dat wij een positieve bijdrage leveren aan het leren programmeren in het Nederlands. Minder 'cognitive load' en daardoor meer energie voor mooie en leuke dingen!
    Blown to Bits, second edition, een rode draad van De Schoonheid en Vreugde van Programmeren.