Wat maakt BJOC speciaal?
Wat maakt BJOC speciaal?
BJOC (The Beauty and Joy of Computing) is een innovatief programma dat de betoverende wereld van programmeren ontsluit. Het richt zich op zeven Grote Ideeën en zes Goede Gewoontes met Computational Thinking, met een sterke nadruk op creativiteit, abstractie en de praktische toepassing van programmeren. BJOC gebruikt Snap!, een visuele programmeertaal, die de toegankelijkheid van Scratch combineert met geavanceerde concepten. Hierdoor is het geschikt voor een breed publiek, inclusief beginners. Daarnaast, stimuleert BJOC kritisch denken over de maatschappelijke impact van technologie, en moedigt het aan om bewuste en geïnformeerde keuzes te maken in de digitale wereld.
Computer Science Principles
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).
Er bestaat een aanzienlijke samenhang tussen de Ideeën en Oefeningen. Zo is creativiteit een concept, terwijl het daadwerkelijk creëren een praktische uitvoering is. Het eerste taartdiagram representeert de inhoud die in het curriculum wordt aangeboden, terwijl het tweede de verdeling van tijd laat zien waaraan leerlingen naar verwachting zullen besteden. De centrale cirkels in de taartdiagrammen symboliseren dat programmeren en creëren de kern vormen van BJC en verweven zijn met alle andere elementen.
Grote Ideeën
- Creativiteit wordt door de leerlingen toegepast in hun programmeerprojecten, maar we bespreken het punt niet zoveel als de andere onderwerpen.
- 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 is belangrijk en wordt uitvoerig behandeld, maar waar mogelijk neemt deze behandeling de vorm aan van activiteiten met programmeren in plaats van, bijvoorbeeld, het gebruik van commerciële databasesoftware.
- 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, BJC legt een zware nadruk op dit punt. Wij geloven dat Snap!, de programmeertaal die we gebruiken, ons in staat stelt om een diverse samenstelling van beginners te bereiken, die in de eerste instantie niet geïnteresseerd in programmeren hoeven te zijn. We denken dit omdat Snap! het gemak van visual programmeren combineert met de kracht die eerder alleen gevonden kon worden in geavanceerde, traditionele programmeertalen. (meer hierover onderaan de pagina.) We gaan ver voorbij de CS Principles vereisten, met de geavanceerde technieken van recursie en functies van hogere ordes.
- Het Internet , dit is ook een belangrijk onderwerp dat veel behandeld wordt. 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, de term “Computational Artifacts” 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 aan de Oefeningen en we zien computerprogramma’s als de belangrijkste artefacten die de leerlingen zullen maken, omdat er 2 dingen gemaakt worden als een leerling een programma schrijft. De leerling is geïnteresseerd in het product, een spel bijvoorbeeld, en past zijn creativiteit toe in het ontwerp van het spel. Maar zij maakt de spel door. Maar de leerling laat ook creativiteit zijn in het ontwerpen van de structuur van het programma. Die laatste is echte informatica.
- Abstraheren, net als dat het idee van abstractie onafscheidelijk is van het idee van programmeren, is het beoefenen van abstractie onafscheidelijk van programmeren. We moedigen leerlingen constant aan om lagen van abstractie toe te passen in de structuur van een programmeerproject.
- 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. We zijn lang niet zo geïnteresseerd in het analyseren van “artefacten” als we zijn in het analyseren van programma’s.
- Communiceren en Samenwerken zijn belangrijk, maar bij BJOC ligt er minder de nadruk op. Zoals de meeste CSP curricula, gebruiken wij pair programming, zodat leerlingen constant overleggen met hun partners en het werk verdelen. Aan het begin van de les onderwijzen we het process van pair programming, en in de discussie van sociale toepassingen van programmeren moeten leerlingen hun ideeën overleggen, maar communiceren en samenwerken zijn niet exclusieve leerpunten voor het vak informatica.
Visueel 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 visuele onderwijsmethode van Scratch maakt het laagdrempelig, waardoor het al op veel scholen zelfstandig gebruikt wordt door achtjarigen. De vormen en kleuren van de blokken herinneren de gebruikers aan de categorieën waarin de blokken vallen.
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. Voor abstractie van functies kunnen de gebruikers van Snap! hun eigen blokken bouwen.
Uitbreidingsmogelijkheden
Snap! kan ook verbonden worden met bepaalde robots en sensoren (Finch, Hummingbird, Sphero, Lego NXT, Wiimote, LEAP Motion, Arduino, etc.) door kleine applicaties te installeren op de computer.