DOT programmeren/Hulpmiddelen

Uit Inf20
Versie door Eelco (overleg | bijdragen) op 24 nov 2015 om 17:35 (→‎Jupyter Notebook)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen
DOT programmeren
  1. Problemen
  2. Beschikbaar materiaal
  3. Hulpmiddelen
  4. Keuzes en prioriteiten

Manier van werken

Zie ook Regels en richtlijnen
Zie ook Artikelen bewerken

Programmeren met blokken

Voor beginnende programmeurs is het vaak lastig om met een tekst-representatie te werken. Niet alleen moet je heel zorgvuldig zijn om syntaxfouten e.d. te voorkomen: je hebt ook een bijna onbeperkte keuze aan opdrachten eb besturingsstructuren. Het gebruik van een beperkte set van blokken (grafisch weergegeven) kan dan helpen.

Blockly

Code.org: app lab

Met app lab kun je apps programmeren in JavaScript. Je hebt de keuze uit twee representaties: blokken, of tekst. Je kunt de ene representatie omzetten in de andere.

  • mogelijk moet je je registreren (suggestie: als docent) om hiermee aan de slag te gaan.
  • je kunt je eigen klas, met je eigen leerlingen, organiseren, en hun voortgang volgen.


(code.org heeft veel materiaal voor het CS Principles curriculum, zie elders op deze wiki.)

Scratch

Python tutor

Python tutor biedt een toepassing voor het visualiseren van de uitvoering van een programma. Je kunt stap voor stap een programma uitvoeren, vooruit en achteruit, en bij elke stap zien hoe de toestand van het proces verandert. Dit kun je bijvoorbeeld gebruiken om te laten zien hoe variabelen en toekenning werken, hoe lijsten werken, en bijv. recursie.

  • je kunt de voorbeelden direct op de website van Python tutor uitproberen;
    • je vindt daar een serie voorbeelden;
    • je kunt daar je eigen voorbeelden invoeren.
  • je kunt een sessie via het web delen met iemand anders: je ziet dan dezelfde visualisatie, je kunt beide ingrijpen, en je kunt communiceren via "chat".
  • je kunt een voorbeeld op een eigen webpagina toevoegen.
    • dan heb je alleen de mogelijkheid om het voorbeeld af te spelen, niet om de programmatekst te veranderen

Inmiddels is dit hulpmiddel ook beschikbaar voor andere talen zoals Java en JavaScript.

Jupyter Notebook

Met Jupyter Notebook kun je in één document tekst en uitvoerbare programmacode combineren. Oorspronkelijk is dit ontworpen voor Python (IPython Notebook), maar tegenwoordig zijn er ook andere talen beschikbaar.

De programmacode wordt uitgevoerd op de server; daar kun je ook de data bewaren. Het notebook wordt weergegeven in een browser-venster. Daar kun je eventueel ook HTML- en JavaScript-code toevoegen.

  • Jupyter Notebook wordt veel gebruikt voor "Data Science"; je kunt dan experimenteren met allerlei analyses en transformaties op de data, terwijl je dit tegelijkertijd documenteert. Zelfs de uiteindelijke publicatie kan in de vorm van een Notebook.
  • GitHub geeft Notebooks weer in de statische vorm - je kunt de programmatekst niet uitvoeren, maar de uitvoer wel bekijken;
  • O'Reilly (de uitgever) gebruikt Jupyter Notebooks als één van de formaten om een boek te schrijven. Zie bijvoorbeeld:

Voor het gebruiken van "actieve" notebooks, waarin de code door de lezer uitgevoerd kan worden, heb je een server nodig.

GitHub

GitHub is een web-platform voor git, een veelgebruikt systeem voor versiebeheer. GitHub wordt gebruikt door een groot aantal open source projecten. GitHub kan als centrale opslag dienen voor een project waarin meerdere mensen samenwerken.

Een "open" account voor GitHub is gratis. Je bestanden zijn dan wel voor iedereen zichtbaar. Een account met prive-bestanden is tegen betaling mogelijk.

Gebruik voor het onderwijs

GitHub heeft ook "educational accounts", voor docenten die hun leerlingen via GitHub willen laten (samen)werken. Leerlingen kunnen hun opdrachten krijgen via GitHub, en hun uitwerkingen, inclusief documentatie, via GitHub inleveren. Feedback kan ook via de GitHub-middelen daarvoor (o.a. het issue-systeem).

Trello

Trello is een eenvoudig middel voor het maken van planningen, en voor het bijhouden van de voortgang daarvan. Je kunt dit organiseren als een Scrum-bord. Trello is laagdrempelig, maar heeft veel "groei-mogelijkheden".

Trello is aan veel andere diensten te koppelen; dit kan soms via Trello zelf, en soms via een externe dienst. (Zowel Trello als GitHub hebben API's die daarvoor gebruikt kunnen worden.)

Er zijn diensten en uitbreidingen voor het gebruik van Trello in een Scrum-proces.

Je kunt een planning in Trello maken voor je leerlingen. Deze kunnen dan zelf hun voortgang bijhouden. In een later stadium kunnen de leerlingen een groter deel van de planning zelf maken. Voor een eindproject kunnen de leerlingen de complete planning zelf maken.

Met wat extra hulp kun je de voortgang van een groep leerlingen met eenzelfde planning bijhouden (P.M.)

Cloud 9

  • https:// c9.io

Via cloud9 kun je "in the cloud" programma's ontwikkelen, bijvoorbeeld voor het web. Je kunt uittesten hoe je web-app eruit ziet voor je gebruikers.

Cloud9 is niet bedoeld voor het hosten van je web-app: daarvoor heb je een hosting server nodig. Vanuit cloud9 kun je eenvoudig je software daarop overbrengen (bijvoorbeeld via git).

Je kunt een cloud9-workspace verbinden aan een GitHub repository. Je slaat je bestanden op bij GitHub, en je doet de ontwikkeling via cloud9.

Via cloud9 kun je met iemand anders samen aan de code werken: je hebt dan een gedeeld venster op dezelfde workspace, je kunt eventueel allebeide de code aanpassen, en je kunt communiceren via een chat window.

Gebruik voor het onderwijs

Voor gebruik in het onderwijs heeft cloud9 een aantal voordelen:

  • je kunt leerlingen altijd een goede werkomgeving bieden,
  • leerlingen hebben hun software "in the cloud" staan, en kunnen deze niet vergeten mee naar school (of naar huis) te nemen;
  • leerlingen kunnen via "the cloud" samenwerken, ook vanuit thuis.
  • als docent kun je eenvoudig het resultaat bekijken (eventueel via GitHub - waar je commentaar kunt leveren).