Scriptingtalen (2023–2024)
Peter Dawyndt · Universiteit Gent
Welkom op de Dodona-cursus van het opleidingsonderdeel Scriptingtalen (Universiteit Gent, faculteit Wetenschappen). Deze cursus bevat een groot aantal programmeeroefeningen in Python en JavaScript die voorzien zijn van automatische feedback.
Onderstaand leerpad 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, 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 Ufora. 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 Scriptingtalen worden voor 20% (4/20) berekend op basis van niet-periodegebonden evaluatie (dagelijks werk) en voor 80% (16/20) op basis van periodegebonden evaluatie (examen). Er zijn in totaal twee niet-periodegebonden evaluatiemomenten die samen de score van de niet-periodegebonden evaluatie bepalen.
Voor de eerste niet-periodegebonden evaluatie (Python) krijgen de studenten een reeks van 44 Python oefeningen opgelegd. Op basis van de behandelde programmeertechnieken worden deze oefeningen onderverdeeld in 10 reeksen. 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 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 dinsdag om 22:00 in de week van het werkcollege gewijd aan de oefeningenreeks). Studenten kunnen gebruik maken van het overzicht op Dodona om op te volgen voor welke oefeningen ze reeds een correcte oplossing hebben ingediend. Dodona geeft immers een handig overzicht van de opgelegde oefeningen uit de opeenvolgende reeksen, de bijhorende deadlines en de tijd waarop voor het eerste een correcte oplossing voor de oefening werd ingediend.
De eerste niet-periodegebonden evaluatie (Python) wordt afgesloten met een evaluatiemoment tijdens het eerste werkcollege dat volgt op de deadline voor het indienen van de oplossingen van de laatste oefeningenreeks. Bij deze evaluaties krijgen de studenten twee uur de tijd om twee nieuwe Python 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 van hetzelfde niveau als deze van de opgaven die tijdens de periodegebonden evaluatie (het examen) worden voorgelegd. Bovendien volgt dit evaluatiemoment 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.
Voor de tweede niet-periodegebonden evaluatie (JavaScript) krijgen de studenten een reeks van JavaScript oefeningen opgelegd. Met deze oefeningen kunnen de studenten zelf aan de slag om hun kennis en vaardigheden van JavaScript in de praktijk te brengen. Studenten moeten hun oplossingen voor de opgelegde oefeningen van elke reeks indienen via het online leerplatform Dodona tegen vooraf vastgelegde deadlines (telkens op dinsdag om 22:00 in de week van het werkcollege gewijd aan de oefeningenreeks). Studenten kunnen gebruik maken van de online leeromgeving Dodona om de correctheid van hun oplossingen na te gaan en onmiddellijk geautomatiseerde feedback te krijgen op hun ingediende oplossingen.
De tweede niet-periodegebonden evaluatie (JavaScript) wordt afgesloten met een evaluatiemoment tijdens het eerste werkcollege dat volgt op de deadline voor het indienen van de oplossingen van de laatste oefeningenreeks. Bij deze evaluaties krijgen de studenten twee uur de tijd om twee nieuwe JavaScript programmeeroefeningen op te lossen. Hierbij kunnen ze gebruik maken van het online leerplatform Dodona om de correctheid van hun oplossingen te testen. 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 van hetzelfde niveau als deze van de opgaven die tijdens de periodegebonden evaluatie (het examen) worden voorgelegd. Bovendien volgt dit evaluatiemoment 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 derde niet-periodegebonden evaluatie omvat een opdracht waarbij de studenten een client-server toepassing moeten implementeren die gebruik maakt van Python aan de serverzijde (CGI) en JavaScript aan de clientzijde (browser). De oplossing voor deze opdracht moet ingediend worden tegen een vooraf vastgelegde deadline, en wordt beoordeeld op basis van correctheid, keuzes die genomen werden bij het ontwerp en de implementatie, en gebruiksvriendelijkheid van de oplossing.
De score van de niet-periodegebonden evaluaties 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 die correct werden ingediend tegen de wekelijkse deadlines, en a staat voor het aantal opgelegde oefeningen. Een student die bijvoorbeeld 16/20 behaald heeft voor zijn evaluatie-oefeningen en alle 44 opgelegde oefeningen correct heeft ingediend voorafgaand aan de wekelijkse deadlines, krijgt voor die evaluatiereeks een score van 16 * 44/44 = 16 op 20. Als die student echter nog steeds 16/20 had behaald voor zijn evaluatie-oefeningen, maar slechts 30/44 opgelegde oefeningen correct had ingediend voorafgaand aan de wekelijkse deadlines, dan houdt die student slechts een score van 16 * 30/44 = 10.9 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 evaluaties kunnen 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 nietperiodegebonden 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 4 uur om vier programmeeroefeningen op te lossen: twee Python-oefeningen en twee JavaScript oefeningen. Daarbij kunnen de studenten opnieuw gebruikmaken van Dodona 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
Je bent niet geregistreerd voor deze cursus.
Registreren- handboek: How to Think Like a Computer Scientist
- installatie van Python en PyCharm: handleiding
- videohandleidingen
- bijkomende informatie
- stijlregels van Python (PEP-8)
math
module (Python Standard Library)
- voorbeeldoefeningen met instructievideo
- specifieke tips & tricks voor opgelegde oefeningen:
- bijkomende oefeningen
Titel | Voortgang groep | |||
---|---|---|---|---|
ISBN | ||||
Som van twee getallen | ||||
The pudding guy | ||||
ISBN | ||||
Stopwatchbaby | ||||
Vierkant | ||||
ISBN | ||||
Ronde getallen | ||||
Liftparadox | ||||
Pythagorese drietallen |
- handboek: How to Think Like a Computer Scientist
- videohandleidingen
- bijkomende informatie
- specifieke tips & tricks voor opgelegde oefeningen:
- bijkomende oefeningen
- handboek: How to Think Like a Computer Scientist
- specifieke tips & tricks voor opgelegde oefeningen:
- bijkomende oefeningen
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Lineup | |||||
Bitcoins | |||||
3 + 1 gratis | |||||
Triplerotatie | |||||
Koninginnen, paarden en pionnen | |||||
Spoorhekcodering |
- handboek: How to Think Like a Computer Scientist
- specifieke tips & tricks voor opgelegde oefeningen:
- bijkomende oefeningen
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Zoemzinnen | |||||
Perfecte zwaluwstaart | |||||
Koprolkalender | |||||
ISBN | |||||
Geen drie-op-een-rij | |||||
Evendeling | |||||
Bergbeklimmers |
- handboek: How to Think Like a Computer Scientist
- specifieke tips & tricks voor opgelegde oefeningen:
- bijkomende oefeningen
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Pokémon | |||||
Vind je lief | |||||
Bedriegelijk galgje | |||||
De Bixbybrief | |||||
#ThankYouAshAndPikachu |
- handboek: How to Think Like a Computer Scientist
- specifieke tips & tricks voor opgelegde oefeningen:
- bijkomende oefeningen
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
ISBN | |||||
Panini | |||||
#ThankYouAshAndPikachu | |||||
Huffmancodering | |||||
Kluizenaar | |||||
Japanse getallen |
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.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Afspraken voor evaluaties | |||||
Verklaring op eer | |||||
Handig | |||||
Bellen en blokken |
Het luik JavaScript wordt zo georganiseerd dat je elke week een aantal aspecten van de programmeertaal en haar binding met externe omgevingen (in het bijzonder de browser) bestudeert onder de vorm van zelfstudie (blended learning). Deze aspecten worden in de hoorcolleges geïllustreerd door het uitwerken van voorbeelden, waarbij ook de kans geboden wordt om vragen te stellen over het gedeelte dat via zelfstudie moest verwerkt worden (flipped classroom). Tijdens de werkcolleges moet je zelfstandig een aantal opgelegde opdrachten uitvoeren tegen vooropgestelde deadlines, waarbij vragen kunnen gesteld worden aan de aanwezig begeleiders of via het forum op Ufora.
- handboek “MDN JavaScript guide”
- Crockford on JavaScript (Douglas Crockford)
- deel 1: Volume 1: The Early Years: a short history of computing/programming
- deel 2: Chapter 2: And Then There Was JavaScript: JS basics (including ES5)
- deel 8: Section 8: Programming Style & Your Brain
- lesvoorbeelden
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Chromosomale crossover | |||||
Complementaire reeksen | |||||
Quipu | |||||
Geheimschrift van Dumas | |||||
Zonnestelsel | |||||
Marsrovers |
- handboek “MDN JavaScript guide”
- slides “prototypal inheritance” (PDF, PPT)
- Crockford on JavaScript (Douglas Crockford)
- deel 3: Act III: Function the Ultimate: functions
- deel 4: Episode IV: The Metamorphosis of Ajax: DOM and Ajax
- deel 5: Part 5: The End of All Things
- lesvoorbeelden
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Zeshoek | |||||
Immuunsysteem | |||||
Kolomtranspositie | |||||
Metrokaart der exacte wetenschap | |||||
Theseus en de Minotaurus |
- handboek “MDN JavaScript guide”
- Closures
- closure demo: make_adder (python, javascript)
- closure demo: memoization (python)
- Crockford on JavaScript (Douglas Crockford)
- bekijk deel 6: Scene 6: Loopage
- bekijk deel 7: Level 7: ECMAScript 5: The New Parts: ES5 additions
- lesvoorbeelden
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Five up | |||||
Het vijfde element | |||||
Diana Cryptosystem | |||||
Samensmelten | |||||
Kleurendoolhof |
- nieuwe features in ES6
- handboek “MDN JavaScript guide”
- elektronisch handboek “jQuery Learning Center”
- hoofdstuk 1: About jQuery
- hoofdstuk 2: Using jQuery Core
- hoofdstuk 3: Events
- lesvoorbeelden
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Nim | |||||
Magische kaarten | |||||
Str8ts | |||||
Hill-versleuteling |
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.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Afspraken voor evaluaties | |||||
Verklaring op eer | |||||
Beaufort | |||||
Geruchtenmolen |
Je hebt enkel geldig deelgenomen aan het examen als de twee documenten “Afspraken voor examen” 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 exam” 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.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Afspraken voor examens | |||||
Verklaring op eer | |||||
Mudcraft | |||||
Alberticijfer | |||||
Geheimschreiber | |||||
Grille |
Je hebt enkel geldig deelgenomen aan het examen als de twee documenten “Afspraken voor online 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 online 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.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Afspraken voor examens | |||||
Verklaring op eer | |||||
Soapserie | |||||
Dat verklaart alles | |||||
Kaarten omkeren | |||||
Chaocipher |