This course is archived · This course is now in read-only mode. You can’t register or make new submissions anymore, but your previous work and results are still available.

Python-oefeningen (2021–2022)

Jessie Robijns · De Prins Diest

Deze oefeningen werden geselecteerd en opgesteld als begeleidende oefeningen bij de Youtube videoreeks die “jou leert programmeren in Python”.

Zoek op Youtube naar het kanaal “UHasselt tutorials” en abonneer je erop (zodat je de reeks de volgende keer - via je abonnementen - makkelijk terug vindt). Daar er soms maanden zitten tussen het verschijnen van nieuwe video’s kan het zinvol zijn om “meldingen” te activeren.

Na het bekijken van een video is het raadzaam om de kennis uit de video te verwerken aan de hand van het werkboek. Deze aanpak garandeert dat de kennis met aandacht verwerkt wordt, dat jargon eigen gemaakt wordt en dat het oplossen van oefeningen daarna vlotter verloopt. Bovendien bouwt men zo een “eigen” syllabus op die nadien vlot raadpleegbaar is. (Computationeel denken en handelen - Programmeren met Python - Pelckmans - ISBN 978-94-6401-371-9)

De oefeningen in deze reeks zijn meestal erg kort, en zijn bedoeld om heel specifieke kennis in te oefenen. De eerste 71 oefeningen (tem for-lus) kunnen opgelost worden na het bekijken van de eerste 32 video’s van de videoreeks. Dit omvat de leerstof die in 1 schooljaar behandeld kan worden naar rato van 1 lesuur/week.

Voor de leerstof nodig voor het oplossen van de resterende oefeningen (48 van 119) verwijzen we op dit moment graag door naar het fantastische boek “de programmeursleerling”. Voor het verwerken van de leerstof en het maken van deze oefeningen is opnieuw 1 schooljaar nodig naar rato van 1 lesuur/week.

Dit betekent natuurlijk ook dat, naar rato van 2 lesuren/week, het haalbaar moet zijn om alle kennis en alle oefeningen uit deze reeks te behandelen in 1 schooljaar.

Wil je graag - in het Nederlands - contact hebben met anderen die de videoreeks volgen, die aan de oefeningen werken, die Python aan het leren zijn … dan ben je welkom op onze discord server. Hier is de link –> https://discord.gg/TbdFCp4

Opgelet! Dodona is op dit moment niet bedoeld om de code in te ontwikkelen, enkel om deze te evalueren. Code schrijven doe je beter in een echte IDE (Integrated Development Environment). Vervolgens copy-paste je de code naar Dodona om in te dienen. Er zijn online IDE”s (bv. replit.com) maar ook IDE’s die je kan installeren op je computer (bv IDLE, Mu, Pycharm, Visual Studio Code, …). Als je geen ervaring hebt, is een online omgeving makkelijker.

De oefeningen zijn geïnspireerd op het werk van Vitaly Pavlenko (www.snakify.org).

You are not a member of this course.

Learning path

What's next in this course

Reeks 1: Input/print

Oefeningen die je aanleren om vlot te werken met de inbegrepen Python functies input() en print().

Deze functies maken invoer via het toetsenbord en uitvoer naar het scherm (afdrukken) mogelijk.

Zonder invoer en uitvoer is interactie dmv een Python programma/script niet mogelijk.

Je kan al deze oefeningen oplossen na het bekijken van de video’s 1 tem 10.

(Aanvulling: voor het oplossen van de laatste oefening uit deze reeks moet je video 12 bekijken)

Reeks 2: Werken met getallen

Oefeningen die je allerlei berekeningen laten uitvoeren.

Natuurlijk gaat dat over de som, het verschil, de vermenigvuldiging en de deling.

Maar ook de machtsverheffing, de geheeltallige deling (floor division) en de restberekening (modulo) komen aan bod.

Je kan al deze oefeningen oplossen na het bekijken van de video’s tem 18.

Reeks 3: if/else

Oefeningen die het if\else-statement inoefenen, alvorens (binnen dezelfde reeks) uit te breiden naar het if\elif\else-statement.

Na de if of elif hoort steeds een bewering (Booleaanse expressie) te staan.

Het bouwen van zinvolle Booleaanse expressies, is (in deze oefeningenreeks) net zo belangrijk als het onder de knie krijgen van de if/elif/else-syntax.

Het opstellen van zinvolle Booleaanse expressies, vereist al snel het gebruik van relationele operatoren, Booleaanse operatoren, ingebouwde functies zoals abs(), max(), min(), len(), …

Geraak je er niet meteen uit, dan heb je misschien één van de nodige onderwerpen nog niet behandeld gezien in de video’s, kijk dan even verder.

Na het maken van deze oeningen zullen de begrippen relationele operator, takenlijst, indentatie en booleaanse waarde geen geheimen meer hebben.

Je kan al deze oefeningen oplossen na het bekijken van de video’s tem 27.

Status Type Title Class progress Status Actions
Smallest of 2 numbers
Odd or even
3 digit number
Chessgame - dark square
Chessgame - same color squares
Digits in order
Chessgame - knight move
1 out of 2 is positive
Chessgame - Rook move
Palindrome of 4 digits
The next day
Leap year
Chessgame - Bishop move
Chessgame - King move
Chessgame - Queen move
Greater, smaller, equal to 0
Number of days in a month
The black sheep
The 4th corner
Sort 3 numbers
Linear equation
Smallest of 3 numbers
Number of equal numbers
Smallest of 5 numbers

Reeks 5: for-lus

Oefeningen die je aanleren om vlot te werken met de eerste van 2 lussen; namelijk de for-lus.

Zoals je in de videoreeks leert is de for-lus bruikbaar wanneer je op voorhand weet hoe vaak een herhaling zal worden uitgevoerd.

Of wel omdat je het op voorhand vastlegt, ofwel om dat je beschikbare collectie gebruikt.

Je kan al deze oefeningen oplossen na het bekijken van de video’s tem 32.

Status Type Title Class progress Status Actions
Sum of 10 numbers
Sum of N numbers
Count the number of zeros
Print the numbers x through y
Calculate a factorial
Sum of 3rd powers
Sum of factorials
The lost card
Ladder of digits
Print the numbers x through y up or down

Reeks 6: Werken met strings

Oefeningen die je aanleren om vlot manipulaties te kunnen uitvoeren op waarden van het datatype string.

Slicing, len(), …

Voorlopig zijn er geen video’s beschikbaar die de nodige kennis overbrengen, al zitten ze wel in de pijplijn.

Deze oefeningen kunnen klassiek opgelost worden (zonder het gebruik van string-methodes), al is het vaak makkelijker om wel string-methodes te gebruiken. Leerkrachten kunnen zowel een model-oplossing met en zonder string-methodes terugvinden.

Wil je verder doen met de oefeningen uit deze reeks, schakel dan over naar het boek “De programmeursleerling” van Prof. Spronck. Zijn boek (pdf) is gratis downloadbaar via zijn “website”. Na het doornemen van hoofdstuk 10, ben je in staat om de oefeningen uit deze reeks te maken.

Status Type Title Class progress Status Actions
Slicing basics
two half strings
Erase every 3rd character
Word count
Word swap
Second appearance
First and last appearance
Remove the intermediate part
Reverse the intermediate part
Replace substring
Remove character
Replace within fragment

Reeks 7: Werken met lists

Oefeningen die je aanleren om vlot manipulaties te kunnen uitvoeren op waarden van het datatype list.

Slicing, len(), …

List methodes zoals append(), extend(), pop(), …

Voorlopig zijn er geen video’s beschikbaar die de nodige kennis overbrengen.

Wil je verder doen met de oefeningen uit deze reeks, schakel dan over naar het boek “De programmeursleerling” van Prof. Spronck. Zijn boek (pdf) is gratis downloadbaar via zijn “website”. Na het doornemen van hoofdstuk 12, ben je in staat om de oefeningen uit deze reeks te maken.

Status Type Title Class progress Status Actions
Make and print numberlist
Make and print undefined numberlist
Make numberlist from string
Even indices
Even values
Greater than left neighbour
Good neighbours
Number greater than both neighbours
Number of different values
Neighbours swap places
Maximum from list
Swap places of minimum and maximum
Number of pairs in list
Unique values
Eight queens
Bowling