Programmeren (2017–2018)
Peter Dawyndt · Universiteit Gent
Welkom op de Dodona-cursus van het opleidingsonderdeel Programmeren (Universiteit Gent, faculteit Wetenschappen). Deze cursus bevat een groot aantal Python programmeeroefeningen die voorzien zijn van automatische feedback. De oefeningen zijn per programmeertechniek ingedeeld in tien reeksen.
Onderstaand overzicht bevat een lijst van 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 lijst van 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 Minerva. Hou zelf het overzicht 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 Minerva, 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 gebruik maken 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 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)
You are not a member of this course.
Register- handboek: lees hoofdstukken 0 en 1
- installatie van Python en PyCharm: handleiding
- videohandleidingen
- bijkomende informatie
- stijlregels van Python (PEP-8)
math
module (Python Standard Library)
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over variabelen, expressies en statements
Title | Class progress | |||
---|---|---|---|---|
ISBN | ||||
Sum of two integers | ||||
Best laid plans | ||||
Human Development Index | ||||
The pudding guy | ||||
The stopped clock |
- handboek: lees hoofdstuk 2
- videohandleidingen
- voorbeeldoefeningen met instructievideo
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over voorwaardelijke opdrachten
Title | Class progress | |||
---|---|---|---|---|
ISBN | ||||
Reynolds number | ||||
Rock-paper-scissors | ||||
Seasons | ||||
Trilateration | ||||
Darts |
- handboek: lees hoofdstukken 2 en 3
- videohandleidingen
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over controlelussen
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Chaos | |||||
German tanks | |||||
Hitchhikers problem | |||||
Monkeys and coconuts | |||||
Pythagorean triples |
- handboek: lees hoofdstuk 4
- bijkomende informatie
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over strings
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Balanced parentheses | |||||
Powerful numbers | |||||
Andrianampoinimerina | |||||
Wepe speapeak p | |||||
Cowsay |
- handboek: lees hoofdstukken 5 en 6
- videohandleidingen
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over functies
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Word sums | |||||
Transitions and transversions | |||||
The ouroboros dream | |||||
Corkscrew | |||||
Penney Ante |
- handboek: lees hoofdstuk 7
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over lijsten en tuples
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Kaprekar series | |||||
Zigzag | |||||
Partitioning the phone book | |||||
Polka Dot | |||||
Stable marriage |
- handboek: lees hoofdstuk 8
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over geavanceerde functies en modules
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Colorful fruits | |||||
Friday the 13th | |||||
Route | |||||
Long count | |||||
Square routes |
- handboek: lees hoofdstuk 9
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over verzamelingen en dictionaries
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Applied chemistry | |||||
Isomers | |||||
Adjacent numbers | |||||
Chutes and ladders | |||||
Equidivision |
- handboek: lees hoofdstukken 5, 10 en 14
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over tekstbestanden
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Sanger sequencing | |||||
Spectroscopy | |||||
Huntington-Hill method | |||||
Living former presidents | |||||
Bacon's cipher |
- handboek: lees hoofdstukken 11, 12 en 13
- specifieke tips & tricks voor opgelegde oefeningen
- bijkomende oefeningen over objectgericht programmeren
Title | Class progress | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Traffic light | |||||
Clock | |||||
Huntington-Hill method | |||||
Mangarevan counting | |||||
Point Nemo |