Python-oefeningen bij Youtube videoreeks UHasselt (2023–2024)

Dirk Peeters

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! Je kan tegenwoordig code schrijven en testen binnen Dodona (dat was vroeger niet het geval). Voor beginnende programmeurs raden we dat zeker aan. Meer gevorderde programmeurs kunnen hun code ook schrijven in een andere 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, …).

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

You are not a member of this course.

Register

Exercise series

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.

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.

Title Class progress Status
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

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

Zoals je in de videoreeks leert kan de while-lus altijd gebruikt worden. Men hoeft op voorhand niet te weten hoe vaak een herhaling zal worden uitgevoerd.

Zoals je zag in de videoreeks, sluit de while-lus heel goed aan bij het if-statement. Beiden starten met een booleaanse expressie!

Regelmatig moeten waarden op het scherm verschijnen, zonder dat die steeds op een nieuwe regel verschijnen. Daarvoor zal je de keyword argumenten sep en end, die horen bij de functie print() moeten gebruiken.

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

Title Class progress Status
Series of squares
Smallest integer divider
Powers of 2
Start to Run
Length of a series
Sum of indefinite number series
Average of indefinite number series
Maximum of indefinite number series
Position of max value
Number of even numbers
Greater than previous number
Second highest number in series
Occurrences of highest value in series
Longest streak of equal values in series
Fibonacci sequence
Is it a Fibonacci number

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.

Title Class progress Status
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

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.

Title Class progress Status
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

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.

Title Class progress Status
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

We zien 2D lijsten als een uitbreiding op de gewone lijst.

Een 2D lijst, is een lijst die bestaat uit lijsten.

Een wiskundige matrix, kan makkelijk gemodelleerd worden adhv 2D lijsten.

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.

Dit hoofdstuk nam je reeds door voor de oefeningenreeks over lijsten, een 2D lijst is slechts een kleine uitbreiden van de lijst.

Title Class progress Status
Apply scale
Finding the max value in a 2D list
Crowding the diagonals of a 2D list
Crowding triangles in a 2D list
Swap columns in a 2D list
Snowflake
Checkerboard

Deze oefeningen leren je werken met het datatype set.

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 14, ben je in staat om de oefeningen uit deze reeks te maken.

Title Class progress Status
Value count
Numbercount intersection
Values in intersection
Deja vu
Guess the number

Je leert werken met waarden van het datatype dictionary (dict).

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 13, ben je in staat om de oefeningen uit deze reeks te maken.

Title Class progress Status
Appearances
Opposites
Elections
Most occuring word
Accessrights
Countries and cities
Textanalysis
Dictionary Dutch-Latin