| |
| |
| |
| |
Nederlandstalige beginnerscursus Python
De workshop wordt gegeven in #ubuntu-nl-klas en vragen kunnen gesteld worden in #ubuntu-nl-mwanzo. Via de webchat kunt u beide kanalen binnengaan. Meer info.
Workshop leider(s): Marten de Vries (commandoline), Stefan de Vries (StefandeVries).
Inhoud |
Lessen
Deze cursus is nu afgelopen, het is mogelijk om de lessen na te lezen in de logs (zie voor links het kopje 'Onderwerpen van de lessen'). Voor vragen stellen kan je terecht in het chatkanaal #ubuntu-nl-mwanzo op irc.freenode.net, wat je o.a. kan openen door hier te klikken.
Er wordt momenteel gewerkt aan uitgebreidere samenvattingen op de subpagina Samenvattingen.
Dag |
Tijd |
Geweest |
Zaterdag 15-01-11 |
19:30-20:30 CET |
Ja |
Zaterdag 29-01-11 |
19:30-20:30 CET |
Ja |
Zaterdag 05-02-11 |
19:30-20:30 CET |
Ja |
Zaterdag 12-02-11 |
19:30-20:30 CET |
Ja |
Zaterdag 05-03-11 |
19:30-20:30 CET |
Ja |
Zaterdag 12-03-11 |
19:30-20:30 CET |
Ja |
Zaterdag 19-03-11 |
19:30-20:30 CET |
Ja |
Zaterdag 02-04-11 |
19:30-20:30 CET |
Ja |
Zaterdag 09-04-11 |
19:30-20:30 CET |
Ja |
Zaterdag 16-04-11 |
19:30-20:30 CET |
Ja |
Zaterdag 23-04-11 |
19:30-20:30 CET |
Ja |
Zaterdag 30-04-11 |
19:30-20:30 CET |
Ja |
Zaterdag 21-05-11 |
19:30-20:30 CET |
Ja |
Wat is Python?
Python is een programmeertaal die vaak wordt aangeraden voor beginners, maar tegelijkertijd is het een volwaardige taal, waarin veel open source projecten in geschreven zijn. Zie voor meer informatie over Python Wikipedia of de Nederlandse vertaling van ThinkPython.
Voor wie is deze cursus bedoeld?
Deze cursus is bedoeld voor iedereen die kennis wil maken met programmeren of graag wil meehelpen met programmeren bij een open-source project. Hoewel deze cursus gericht is op Python, leer je veel dingen die ook van toepassing zijn op andere programmeertalen. Na deze cursus is het dus een stuk makkelijker om nog een programmeertaal te leren.
Als je al kan programmeren is deze cursus waarschijnlijk te makkelijk voor je omdat je veel principes al kent, maar omdat alles besproken werd, is het ook voor die mensen mogelijk om kennis te maken met Python.
Onderwerpen van de lessen
Zaterdag 15-01-11
Tijdens deze les werd eerst uitgelegd wat programmeren nou eigenlijk is. Daarna is uitgelegd hoe Python gestart wordt, en zijn de volgende vragen beantwoord:
Hoe laat je iets zien aan de gebruiker? => print statement
Hoe krijg je invoer van de gebruiker? => raw_input functie
Hoe sla je bepaalde data op voor later gebruik? => variabelen
Hoe kan je python bepaalde code alleen laten uitvoeren als aan een bepaalde conditie is voldaan? => if/else statements, hier is alleen een begin gemaakt.
Uitgewerkte les (pdf, met dank aan emiel1976): les1.pdf
Logs:
van de les: Lees mee vanaf 18.30 (i.v.m. UTC)
van de vragen: Lees mee vanaf 18.32 (i.v.m. UTC)
_
Het plan was om deze keer de dingen die we vorige keer hebben behandeld, in de praktijk te brengen. Om dat te doen, hebben we een simpele rekenmachine gemaakt, waarvan de code hier te zien is. Wat we allemaal hebben gedaan: huiswerk besproken: uitwerking het rekenmachineprogramma uitwerking Logs: van de les: Lees mee vanaf 18.31 (i.v.m. UTC) van de vragen: Lees mee vanaf 18.29 Zaterdag 29-01-11
_
Zaterdag 05-02-11
Deze keer hebben we ons gericht op 'lists' (lijsten), ook de for-loop hebben we besproken. Om dat alles in de praktijk te brengen hebben we ten slotte een programma gemaakt dat een onbeperkt aantal cijfers als invoer krijgt, en vervolgens het gemiddelde als resultaat geeft.
Nog even puntsgewijs en iets uitgebreider, we hebben:
lijsten (aanmaken, toevoegen, verwijderen van items) & de for loop bekeken aan de hand van het winkel inventaris-voorbeeld.
het gemiddeldeprogramma gemaakt uitwerking, met daarin nieuw:
- len()
- float()
vragen gesteld & beantwoord
Logs:
van de les: Lees mee vanaf 18.30 (i.v.m. UTC)
van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC)
_
Deze les hebben we dictionary's behandeld, net als de for-loop, gebruikt in combinatie met print, om de inhoud van een dictionary te tonen. Als voorbeelden kozen we voor een simpele winkelinventaris en een uitgebreider adresprogramma. Bij de dictionary's hebben we de begrippen entry, key en value uitgelegd; ook het toevoegen aan, bewerken van en verwijderen van entry's uit een dictionary zijn behandeld. Logs: van de les: Lees mee vanaf 18.30 (i.v.m. UTC) van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC) Zaterdag 12-02-11
_
Zaterdag 05-03-2011
De les omvatte het bespreken van het huiswerk van 12 februari, waarover nog een aantal vragen binnenkwam. Vervolgens gingen we door met het uitleggen van functies; wat ze zijn, hoe je ze opstelt en hoe ze ingezet kunnen worden. Dit hebben we gedaan aan de hand van een uitbreiding van het eerder gemaakte adresboekprogramma.
Logs:
van de les: Lees mee vanaf 18.30 (i.v.m. UTC)
van de vragen: Lees mee vanaf 18.32 (i.v.m. UTC)
_
Deze les hebben we besteed aan een vervolg op functies. We hebben enkele functies uit de standaard modules os, math, subprocess en sys laten zien. Met deze vaakgebruikte modules is het bijvoorbeeld mogelijk acties in het onderliggende besturingssysteem uit te voeren, zoals het aanroepen van externe programma's. Zie de logs voor een uitleg over de meest gebruikte functies uit elke genoemde module. Logs: van de les: Lees mee vanaf 18.30 (i.v.m. UTC) van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC) Zaterdag 12-03-2011
_
Zaterdag 19-03-2011
We begonnen de les met het huiswerk bespreken. Daarna hebben we iets nieuws geïntroduceerd, namelijk OOP (Object-oriented Programming). We behandelden wat dat inhoudt en besproken 'klassen/classes', het hulpmiddel in Python om objectgeoriënteerd te programmeren. Dat deden we aan de hand van de adresboekclass. Lees de logs voor meer informatie.
Logs:
van de les: Lees mee vanaf 18.30 (i.v.m. UTC)
van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC)
_
We hebben eerst live een uitwerking van het huiswerk gemaakt, het resultaat staat hier. We hebben ook een uitgebreidere uitwerking gegeven. De rest van de les hebben we besteed aan het maken van een class die de basis kan vormen voor het spel galgje. Zie voor meer uitleg en het huiswerk de logs: Logs: van de les: Lees mee vanaf 18.30 (i.v.m. UTC) van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC) Zaterdag 02-04-2011
_
Zaterdag 09-04-2011
Besproken huiswerk:
Deze les hebben we 'inheritance/overerving' uitgelegd, een onderdeel van OOP. Dit deden we aan de hand van het voertuigenvoorbeeld.
Logs:
van de les: Lees mee vanaf 18.30 (i.v.m. UTC)
van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC)
_
Deze les verliep wat anders dan normaal. Marten (commandoline) was op de Ubuntu Jam in Burgum en vanaf daar is de les live gestreamd. Cas (CasW) heeft alles wat besproken werd daarnaast samengevat op IRC, terwijl Stefan (StefandeVries) alle vragen beantwoordde in #ubuntu-nl-mwanzo. Een opname van Dooitze (DooitzedeJong) volgt nog. We begonnen met het huiswerk: Daarna hebben we het gehad over exceptions en bestanden. Exceptions werden uitgelegd aan de hand van: Bestanden aan de hand van: twee simpele programma's. Logs: van de les: Lees mee vanaf 18.30 (i.v.m. UTC) van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC) Zaterdag 16-04-2011
_
Zaterdag 23-04-2011
We zijn begonnen met het door commandoline en DooitzedeJong uitgewerkte huiswerk, waarvan we de Woordenlijst-class hebben besproken omdat daar alle logica van het programma in zat.
Daarna hebben we 'tuples' besproken, die lijken op lists maar na het aanmaken niet meer aan te passen zijn. Vervolgens kwamen 'variable length argument lists' (*args, **kwargs) aan bod, aan de hand van dit voorbeeld en dit voorbeeld. Daarbij maakte we een uitstapje naar default values.
Logs:
van de les: Lees mee vanaf 18.30 (i.v.m. UTC)
van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC)
_
Deze les hebben we decorators en een aantal modules besproken. Decorators (functies die als argument een method/functie krijgen) aan de hand van dit voorbeeld. Verder bespraken we de modules urllib2 en xml.dom.minidom, met dit voorbeeld. Dat programma haalde de titels uit de RSS feed van Planet Ubuntu NL. (website/rss) Zie voor meer informatie de logs. Het huiswerk werd om dit programma van commentaar te voorzien, waarover al wel wat uitleg werd gegeven. Het programma gebruikt de sqlite3 module. Logs: van de les: Lees mee vanaf 18.30 (i.v.m. UTC) van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC) Zaterdag 30-04-2011
_
Zaterdag 21-05-2011
Dit was de laatste les, we begonnen met het huiswerk bespreken. Daarna was er ruimte voor algemene vragen (zie de logs). Daarna werd er verteld wat een mogelijk vervolg zou zijn op deze cursus, bijv. voor zelfstudie of vervolgworkshops binnen Mwanzo. De les werd afgesloten met het noemen van een aantal (door Nederlandse Ubuntero's opgerichte) projecten waaraan je mee zou kunnen werken, namelijk:
Als je de les hebt gemist en alsnog mee wilt werken met een of meerdere van die projecten, dan kan je om hulp vragen in het chatkanaal #ubuntu-nl-mwanzo op irc.freenode.net (wat je ook kan openen door hier te klikken.), of contact opnemen met (de leiders van) de projecten zelf.
Logs:
van de les: Lees mee vanaf 18.30 (i.v.m. UTC)
van de vragen: Lees mee vanaf 18.30 (i.v.m. UTC)
_
Als je een account maakt op de wiki kan je de pagina bewerken en je naam op de lijst zetten. http://wiki.ubuntu-nl.org/StartPagina?action=newaccount nr Naam IRC nick 1 leoquant leoquant 2 Manuèla Popping hajour 3 Jan-Pieter jpjacobs 4 emiel emiel1976 5 Timothy de Bock TimoDB 6 Keimpe de Jong UndiFineD 7 Francis 8 Ron r0n 9 Pascal ppaass 10 Dimitri Dimi77 11 Luuk de Leest Luuk 12 fujisan fujisan 13 Tjibba Tjibba 14 Joshua Joshua822 15 Dooitze de Jong 16 Sander M SanderM 17 Jeroen L Jeroenl81 18 Viper Out'Of'Control 19 20 erkan erkan^ 21 exalt exalt 22 FOAD FOAD 23 Cugel Cugel 24 MedUsaXIII MedUsaXIII 25 Hannie Hannie 26 bakeds bakeds 27 Thomas de Graaff Thomas de Graaff 28 Inschrijven