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.
RegisterOefeningen 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)
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 |