Programming - Programmeren (2023–2024)
Peter Dawyndt · Universiteit Gent
Welkom op de Dodona-cursus van het opleidingsonderdeel Programmeren (Universiteit Gent, faculteit Wetenschappen). Deze cursus bevat Python programmeeroefeningen die voorzien zijn van automatische feedback. De oefeningen zijn per programmeertechniek ingedeeld in tien reeksen.
Onderstaand leerpad bevat een reeks opdrachten die je wekelijks moet afwerken. Dit omvat onder meer de hoofdstukken uit het handboek die als voorbereiding op de hoorcolleges moeten gelezen worden, extra opdrachten als voorbereiding op het oplossen van de programmeeroefeningen, tips & tricks die je kunt gebruiken bij het oplossen van de oefeningen, en een reeks opgelegde oefeningen die wekelijks moeten ingediend worden voor dinsdagavond 22:00. Merk op dat de ISBN-oefeningen deel uitmaken van de opgelegde oefeningen en dus ook moeten ingediend worden voor de wekelijkse deadlines op dinsdag. Voorbeeldoplossingen van de ISBN-oefeningen vind je op Ufora. Hou zelf je leerpad in de gaten om te zien voor welke opgelegde oefeningen je reeds een (correcte) oplossing hebt ingediend.
De punten voor het opleidingsonderdeel Programmeren worden voor 20% (4/20) berekend op basis van de niet-periodegebonden evaluatie (dagelijks werk) en voor 80% (16/20) op basis van de periodegebonden evaluatie (examen). De niet-periodegebonden evaluatie (dagelijks werk) bestaat uit twee componenten die samen de score van de niet-periodegebonden evaluatie bepalen.
Voor het eerste deel van de niet-periodegebonden evaluatie krijgen de studenten een reeks van 60 oefeningen opgelegd. Op basis van de behandelde programmeertechnieken worden deze oefeningen onderverdeeld in 10 reeksen, waarbij elke reeks bestaat uit 6 opgelegde oefeningen. De eerste oefening van elke reeks is telkens een variant op het werken met ISBN-nummers. Een voorbeeldoplossing van deze oefening is gegeven op Ufora, en in een bijhorende instructievideo wordt uitgelegd hoe we tot deze voorbeeldoplossing gekomen zijn. Met deze ISBN-oefening zetten we uiteen hoe de nieuw aangebrachte programmeertechniek van de oefeningenreeks in de praktijk kan gebracht worden. Met deze voorbereiding kunnen de studenten zelf aan de slag om de programmeertechniek in de praktijk te brengen via het oplossen van de andere vijf opgelegde oefeningen uit de reeks. Studenten moeten hun oplossingen voor de opgelegde oefeningen van elke reeks (inclusief de ISBN-oefening) indienen via het online leerplatform Dodona tegen vooraf vastgelegde deadlines (telkens op de dinsdag om 22:00 volgend op de week van het werkcollege gewijd aan de oefeningenreeks). Op Dodona krijgen studenten een overzicht van hun status voor de opgelegde oefeningen, zodat ze makkelijk kunnen opvolgen voor welke oefeningen ze reeds een correcte oplossing hebben ingediend.
Voor het tweede deel van de niet-periodegebonden evaluatie organiseren we twee evaluatiemomenten tijdens de werkcolleges die volgen op het afwerken van vijf oefeningenreeksen. Bij deze evaluaties krijgen de studenten telkens twee uur de tijd om twee nieuwe programmeeroefeningen op te lossen. Hierbij kunnen ze gebruikmaken van het online leerplatform Dodona om de correctheid van hun oplossingen na te gaan. De ingediende oplossingen van deze evaluatie-oefeningen worden echter met de hand nagekeken door de lesgever en zijn begeleiders, en beoordeeld op correctheid, gebruikte programmeerstijl, keuzes gemaakt bij het gebruik van de verschillende programmeertechnieken en de kwaliteit van de oplossingsmethode. De moeilijkheidsgraad van deze evaluatie-oefeningen is lager dan deze van de oefeningen die tijdens de periodegebonden evaluatie (het examen) worden voorgelegd, aangezien we op dit tijdstip van het semester voornamelijk willen nagaan of de studenten de basisvaardigheden van het programmeren beheersen. Bovendien volgen deze evaluatiemomenten dezelfde procedure die gebruikt wordt tijdens de periodegebonden evaluatie, zodat studenten op basis van hun ervaring eventueel hun werkmethode kunnen bijsturen in voorbereiding naar het examen.
De score van de niet-periodegebonden evaluatie wordt bepaald volgens de formule s * c / a. Hierbij staat s voor de score die de studenten behaald hebben op basis van hun ingediende evaluatie-oefeningen (uitgedrukt op 20), c staat voor het aantal opgelegde oefeningen dat correct werd ingediend tegen de wekelijkse deadlines, en a staat voor het aantal opgelegde oefeningen (30 per evaluatiereeks). Een student die bijvoorbeeld 16/20 behaald heeft voor zijn evaluatie-oefeningen en alle 30 opgelegde oefeningen correct heeft ingediend voorafgaand aan de wekelijkse deadlines, krijgt voor die evaluatiereeks een score van 16 * 30/30 = 16 op 20. Als die student echter nog steeds 16/20 had behaald voor zijn evaluatie-oefeningen, maar slechts 18/30 opgelegde oefeningen correct had ingediend voorafgaand aan de wekelijkse deadlines, dan houdt die student slechts een score van 16 * 18 / 30 = 9.6 op 20 over.
Studenten krijgen zo snel mogelijk na een evaluatie per email hun score toegestuurd. Tijdens het daaropvolgende werkcollege krijgen de studenten ook de oplossingen die ze ingediend hebben tijdens de evaluatie terug, voorzien van feedback die aangeeft waar er verbeterpunten zijn die ze kunnen meenemen bij het verder oplossen van oefeningen of naar het examen.
De niet-periodegebonden evaluatie kan niet hernomen worden tijdens de tweede examenperiode. Voor de tweede examenperiode wordt enerzijds een score berekend rekening houdend met de punten behaald voor de niet-periodegebonden evaluatie (dus punten dagelijks werk gequoteerd op 4 samen met het examen gequoteerd op 16, zoals dat ook geldt voor de eerste examenperiode) en wordt anderzijds ook een score berekend zonder rekening te houden met de punten behaald voor de niet-periodegebonden evaluatie (examenresultaat rechtstreeks gequoteerd op 20). De eindscore voor de tweede examenperiode is het maximum van de voorgaande twee berekeningen.
Tijdens de periodegebonden evaluatie (examen) krijgen de studenten 3.5 uur om drie programmeeroefeningen op te lossen. Daarvoor kunnen de studenten opnieuw gebruik maken van de Dodona omgeving om hun oplossingen in te dienen en feedback te krijgen op de correctheid en de programmeerstijl ervan. Voor het bepalen van de examenscore worden de ingediende oplossingen evenwel opnieuw met de hand nagekeken en beoordeeld.
- reeks 01: variabelen, expressies en statements
- reeks 02: voorwaardelijke opdrachten
- reeks 03: controlelussen
- reeks 04: strings
- reeks 05: functies
- reeks 06: lijsten en tuples
- reeks 07:geavanceerde functies en modules
- reeks 08: verzamelingen en dictionaries
- reeks 09: tekstbestanden
- reeks 10: objectgericht programmeren
- academiejaar 2022-2023
- academiejaar 2021-2022
- academiejaar 2020-2021
- academiejaar 2019-2020
- academiejaar 2018-2019
- academiejaar 2017-2018
- academiejaar 2016-2017
- academiejaar 2015-2016
- academiejaar 2014-2015
- academiejaar 2013-2014 (tweede semester)
- academiejaar 2013-2014 (eerste semester)
- academiejaar 2012-2013 (tweede semester)
- academiejaar 2012-2013 (eerste semester)
- academiejaar 2011-2012 (tweede semester)
- academiejaar 2011-2012 (eerste semester)
Welcome to the Dodona course for the modules Computational Biosciences (Ghent University, Master of Science in Biology) and Programming and Algorithms (Ghent University, Master of Science in Statistical Data Analysis). The course contains Python programming exercises that support automated feedback. The exercises are categorized into ten series according to programming technique.
The learning path below contains a sequence of tasks assigned to each week of the semester. These include the chapters in the course book that must be read in preparation of the lectures, additional assignments in preparation of solving the programming exercises, tips & tricks you can use when solving the exercises, and a list of mandatory exercises that must be submitted before the weekly deadlines on Tuesday evening 22:00. Please note that the ISBN exercises are also included in the mandatory exercises, and must be submitted as well before the weekly deadlines on Tuesday. Sample solutions for the ISBN exercises can be found on Ufora. Keep an eye on the overview to track mandatory exercises for which you have already submitted a (correct) solution.
In computing the examination mark we take into account both permanent evaluation (20%, 4/20) and periodic evaluation (80%, 16/20). The permanent evaluation has two components that both influence the score for the permanent evaluation.
For the first part of the permanent evaluation, the students have to work on a series of 60 mandatory exercises. Based on the covered programming techniques, these exercises are subdivided into 10 series of 6 mandatory exercises each. The first exercise of each series always is a variation on the manipulation of ISBN numbers. A sample solution of this exercise is available from Ufora, and in an accompanying instruction video we explain how we came to this sample solution. As such, the ISBN exercises explain how the new programming technique from the series can be brought into practice. After these preparatory steps, students are ready to apply the new programming technique themselves in solving the other five programming exercises from the series. Students must submit their solutions of the mandatory exercises in each series (including the ISBN exercise) through the online learning environment Dodona before a set deadline (deadlines always fall at 22:00 on the Tuesday that follows the hands-on session dedicated to the series of exercises). Dodona gives students a nice overview of the mandatory exercises in each series, the submission deadlines and the current status of each exercise.
For the second part of the permanent evaluation, we organise two evaluation sessions during the hands-on sessions that follow after five exercise series. During these evaluations, students have to solve two new programming exercises within the time frame of two hours. It is allowed to make use of the Dodona platform during the evaluations, so that students can check the correctness of their solutions at all times. The submitted solutions for the evaluation exercises are manually evaluated by the lecturer or the teaching assistants and scored based on correctness, programming style used, choice made between the use of different programming techniques and the overall quality of the solution. The level of difficulty of the evaluation exercises is lower than those of the exercises that need to be solved during the periodic evaluation (exam), as we mainly want to check at this time during the semester if the students master the basic programming skills. In addition, these evaluation sessions follow the same procedure that is also used during the periodic evaluations, so that students can use this experience to adjust their approach towards the exam.
The score for the permanent evaluation is determined using the formula s * c / a, where s is the score a student obtains based on his submitted solutions for the evaluation exercises (expressed as a score out of 20), c is the number of mandatory exercices for which at least one correct solutions has been submitted before the weekly deadlines, and a is the total number of mandatory exercises (30 per evaluation series). A student that for example has obtained a score of 16/20 for his evaluation exercises and that has submitted correct solutions for all 30 mandatory exercises before the weekly deadlines, obtains a score of 16 * 30/30 = 16 out of 20 for the evaluation series. If that student still had obtained a score of 16/20 for his evaluation exercises, but only submitted 18/30 correct solutions for the mandatory exercises before the weekly deadlines, he sees his score for the evaluation series reduced to 16 * 18/30 = 9.6 out of 20.
Students will receive an email with their score for the evaluation series as soon as possible after each evaluation session. During the next hands-on session, students can collect their submitted solutions that will have been annotated with feedback that indicates where they can improve their code. They can use this feedback in solving other programming exercises.
It is not possible to retake the permanent evaluation during the second examination period.
To compute the examination mark we compute two scores. One score takes into account both the score for the permanent evaluation (weight 20%) and the periodic evaluation (weight 80%). The other score ignores the score obtained for the permanent evaluation and is only based on the score for the periodic evaluation. The final examination mark is the maximum of these two scores.
During the periodic evaluation (exam) students are given 3.5 hours to solve three programming exercises. It is allowed to make use of the Dodona platform during the periodic evaluation, so that students can check the correctness of their solutions at all times and receive immediate feedback on the correctness and the programming style of their submitted solutions. To determine the score for the periodic solution, the submitted solutions are manually evaluated by the lecturer or the teaching assistants and scored based on correctness, programming style used, choice made between the use of different programming techniques and the overall quality of the solution.
- series 01: variables, expressions and statements
- series 02: conditional statements
- series 03: loops
- series 04: strings
- series 05: functions
- series 06: lists and tuples
- series 07: advanced functions and modules
- series 08: sets and dictionaries
- series 09: text files
- series 10: object oriented programming
You are not a member of this course.
Register01. variables, expressions and statements - variabelen, expressies en statements
October 03, 2023 22:00
- handboek: lees hoofdstukken 0 en 1
- installatie van Python en PyCharm: (Nederlands, Engels)
- videohandleidingen
- bijkomende informatie
- stijlregels van Python (PEP-8)
math
module (Python Standard Library)
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over variabelen, expressies en statements
- Python book: read chapters 0 and 1
- installation instructions for Python and PyCharm (english, dutch)
- video tutorials
- additional information
- Python style guide (PEP-8)
math
module (Python Standard Library)
- sample solution of ISBN exercise (english, dutch)
- specific tips & tricks for mandatory exercises (english, dutch)
- additional exercises about variables, expressions and statements
Title | Class progress | |||
---|---|---|---|---|
ISBN | ||||
Sum of two integers | ||||
The cricket as a thermometer | ||||
Where is the father? | ||||
Great-circle navigation | ||||
IEC units |
- handboek: lees hoofdstuk 2
- videohandleidingen
- voorbeeldoefeningen met instructievideo
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over voorwaardelijke opdrachten
- Python book: read chapter 2
- video tutorials:
- classroom exercises with demo video (only in Dutch description)
- sample solution of ISBN exercise (english, dutch)
- specific tips & tricks for mandatory exercises (english, dutch)
- additional exercises about conditional statements
Title | Class progress | |||
---|---|---|---|---|
ISBN | ||||
Goldilocks principle | ||||
Fizz buzz | ||||
Formula One | ||||
Hertzsprung-Russell diagram | ||||
Rock-paper-scissors-lizard-Spock |
- handboek: lees hoofdstukken 2 en 3
- videohandleidingen
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over controlelussen
- Python book: read chapters 2 and 3
- video tutorials:
- sample solution of ISBN exercise (english, dutch)
- specific tips & tricks for mandatory exercises (english, dutch)
- additional exercises about control loops
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
New York Times | |||||
Confederacy of Squares | |||||
All-or-nothing | |||||
Canvascrack | |||||
Thoughts that count |
- handboek: lees hoofdstuk 4
- bijkomende informatie
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over strings
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Atbash | |||||
Vampire numbers | |||||
Drawing cubes | |||||
Toblerone | |||||
Eleven Cities Tour |
- handboek: lees hoofdstukken 5 en 6
- videohandleidingen
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over functies
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
123 | |||||
Numeronym | |||||
Divide and conquer | |||||
Unfinished business | |||||
Narcissus cipher |
- handboek: lees hoofdstuk 7
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over lijsten en tuples
- Python book: read chapter 7
- sample solution of ISBN exercise (english, dutch)
- specific tips & tricks for mandatory exercises (english, dutch)
- additional exercises about lists and tuples
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Will Rogers phenomenon | |||||
Mutual love | |||||
Compilations | |||||
Order and chaos | |||||
Bitcoins |
- handboek: lees hoofdstuk 8
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over geavanceerde functies en modules
- Python book: read chapter 8
- sample solution of ISBN exercise (english, dutch)
- specific tips & tricks for mandatory exercises (english, dutch)
- additional exercises about advanced functions and modules
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Brush strokes | |||||
Timeless | |||||
ESP game | |||||
Langrenus' cipher | |||||
Keith numbers |
- handboek: lees hoofdstuk 9
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over verzamelingen en dictionaries
- Python book: read chapter 9
- sample solution of ISBN exercise (english, dutch)
- specific tips & tricks for mandatory exercises (english, dutch)
- additional exercises about sets and dictionaries
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Caucasus | |||||
Code 39 | |||||
Smoke signals | |||||
Anthropomorphic emoji | |||||
Fuse |
- handboek: lees hoofdstukken 5, 10 en 14
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over tekstbestanden
- Python book: read chapters 5, 10 and 14
- sample solution of ISBN exercise (english, dutch)
- specific tips & tricks for mandatory exercises (english, dutch)
- additional exercises about text files
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Rebus | |||||
Lipogram | |||||
Wandering fingers | |||||
#ThankYouAshAndPikachu | |||||
Dead Poets Society |
- handboek: lees hoofdstukken 11, 12 en 13
- voorbeeldoplossing ISBN oefening (Nederlands, Engels)
- specifieke tips & tricks voor opgelegde oefeningen (Nederlands, Engels)
- bijkomende oefeningen over objectgericht programmeren
- Python book: read chapters 11, 12 and 13
- sample solution of ISBN exercise (english, dutch)
- specific tips & tricks for mandatory exercises (english, dutch)
- additional exercises about object-oriented programming
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Heating | |||||
#ThankYouAshAndPikachu | |||||
Audition | |||||
A guilty key | |||||
Hermit |
Je hebt enkel geldig deelgenomen aan de evaluatie als de twee documenten “Afspraken voor evaluaties” en “Verklaring op eer” digitaal ondertekend zijn tegen het einde van de evaluatie. Digitaal ondertekenen gebeurt door onder de documenten op de knop “Markeren als gelezen” te klikken.
You have only validly participated in the evaluation if the two documents “Agreements for evaluations” and “Sworn declaration” are digitally signed by the end of the evaluation. Digital signing is done by clicking the “Mark as read” button at the bottom of the documents.
Title | Class progress | Status | |||
---|---|---|---|---|---|
Agreements for evaluations | |||||
Sworn declaration | |||||
Chika's test | |||||
Letter Boxed |
Je hebt enkel geldig deelgenomen aan de evaluatie als de twee documenten “Afspraken voor evaluaties” en “Verklaring op eer” digitaal ondertekend zijn tegen het einde van de evaluatie. Digitaal ondertekenen gebeurt door onder de documenten op de knop “Markeren als gelezen” te klikken.
You have only validly participated in the evaluation if the two documents “Agreements for evaluations” and “Sworn declaration” are digitally signed by the end of the evaluation. Digital signing is done by clicking the “Mark as read” button at the bottom of the documents.
Title | Class progress | Status | |||
---|---|---|---|---|---|
Agreements for evaluations | |||||
Sworn declaration | |||||
Reciprocation | |||||
A broken rule |
Je hebt enkel geldig deelgenomen aan de evaluatie als de twee documenten “Afspraken voor evaluaties” en “Verklaring op eer” digitaal ondertekend zijn tegen het einde van de evaluatie. Digitaal ondertekenen gebeurt door onder de documenten op de knop “Markeren als gelezen” te klikken.
You have only validly participated in the evaluation if the two documents “Agreements for evaluations” and “Sworn declaration” are digitally signed by the end of the evaluation. Digital signing is done by clicking the “Mark as read” button at the bottom of the documents.
Title | Class progress | Status | |||
---|---|---|---|---|---|
Agreements for evaluations | |||||
Sworn declaration | |||||
Immortal truth | |||||
Writing's on the wall |
Je hebt enkel geldig deelgenomen aan de evaluatie als de twee documenten “Afspraken voor evaluaties” en “Verklaring op eer” digitaal ondertekend zijn tegen het einde van de evaluatie. Digitaal ondertekenen gebeurt door onder de documenten op de knop “Markeren als gelezen” te klikken.
You have only validly participated in the evaluation if the two documents “Agreements for evaluations” and “Sworn declaration” are digitally signed by the end of the evaluation. Digital signing is done by clicking the “Mark as read” button at the bottom of the documents.
Title | Class progress | Status | |||
---|---|---|---|---|---|
Agreements for evaluations | |||||
Sworn declaration | |||||
Spelling bee | |||||
Valknut |
Je hebt enkel geldig deelgenomen aan de evaluatie als de twee documenten “Afspraken voor evaluaties” en “Verklaring op eer” digitaal ondertekend zijn tegen het einde van de evaluatie. Digitaal ondertekenen gebeurt door onder de documenten op de knop “Markeren als gelezen” te klikken.
You have only validly participated in the evaluation if the two documents “Agreements for evaluations” and “Sworn declaration” are digitally signed by the end of the evaluation. Digital signing is done by clicking the “Mark as read” button at the bottom of the documents.
Title | Class progress | Status | |||
---|---|---|---|---|---|
Agreements for evaluations | |||||
Sworn declaration | |||||
Ink-cognito | |||||
Migration |
Je hebt enkel geldig deelgenomen aan het examen als de twee documenten “Afspraken voor examens” en “Verklaring op eer” digitaal ondertekend zijn tegen het einde van het examen. Digitaal ondertekenen gebeurt door onder de documenten op de knop “Markeren als gelezen” te klikken.
You have only validly participated in the exam if the two documents “Agreements for exams” and “Sworn declaration” are digitally signed by the end of the exam. Digital signing is done by clicking the “Mark as read” button at the bottom of the documents.
Title | Class progress | Status | |||
---|---|---|---|---|---|
Agreements for exams | |||||
Sworn declaration | |||||
Card flipping | |||||
Bitflip | |||||
Bubbles and boulders |
Je hebt enkel geldig deelgenomen aan het examen als de twee documenten “Afspraken voor examens” en “Verklaring op eer” digitaal ondertekend zijn tegen het einde van het examen. Digitaal ondertekenen gebeurt door onder de documenten op de knop “Markeren als gelezen” te klikken.
You have only validly participated in the exam if the two documents “Agreements for exams” and “Sworn declaration” are digitally signed by the end of the exam. Digital signing is done by clicking the “Mark as read” button at the bottom of the documents.
Title | Class progress | Status | |||
---|---|---|---|---|---|
Agreements for exams | |||||
Sworn declaration | |||||
Choosing sides | |||||
Ghost blitz | |||||
Alberti cipher |