Studiewijzer
Inleiding programmeren voor Natuur- en Sterrenkunde
September 2024
Welkom bij deze cursus inleiding programmeren voor Natuur- en Sterrenkunde! Dit blok gaan aan de slag met de programmeertaal Python om te leren hoe we wetenschappelijke problemen uit de wis-, natuur- en sterrenkunde met behulp van een computer op kunnen lossen.
De cursus is bedoeld voor mensen die nog helemaal geen ervaring hebben met programmeren en bestaat uit vier afzonderlijke modules. Gedurende de cursus leren we steeds meer over programmeren en de manier waarop we complexe problemen gestructureerd aan kunnen pakken. Elke module is opgedeeld in vier dagdelen en per module zijn er een aantal opgaven die digitaal ingeleverd moeten worden.
Docenten en assistenten
De docenten zijn de ontwerpers van deze cursus. Je zult ze af en toe zien of horen in een filmpje en ze denken graag met je mee als je een probleem hebt. Je kunt ze mailen via progns@mprog.nl:
Ivo van Vulpen (Nikhef/UvA)
Martijn Stegeman (UvA)
Voor hulp bij dit vak vak staan bovendien de assistenten voor je klaar. Zij zijn studenten die het vak eerder hebben gevolgd en een heleboel problemen zelf al zijn tegengekomen.
Vragen stellen
Tijdens dit vak zul je vaak de hulp inroepen van de assistenten en medestudenten. Er zijn diverse opties voor het stellen van vragen. De beste optie hangt af van het soort vraag dat je wil stellen.
Jouw eerste aanspreekpunt punt zijn jouw medestudenten. Juist als je bezig bent met het begrijpen van het probleem, het formuleren van jouw oplossing, dan kan een medestudent vaak goed meedenken. Let wel op dat je tijdens het implementeren van jouw oplossing in Python altijd moet zorgen dat elke regel code jouw eigen werk is. Het beste is dus om medestudenten in te schakelen in de fase vóór het echte programmeren.
Assistentie: direct contact met een assistent, voor moeilijk te formuleren vragen.
- de assistent komt naar je toe zodra je aan de beurt bent
- je weet niet waar te beginnen of een onvindbare bug
- je hebt moeite met verzinnen oplossing
- alleen tijdens de geroosterde uren, de wachttijd kan soms oplopen
Mail: contact met de vakcoördinatoren via progns@mprog.nl.
- maken van persoonlijke planningsafspraken
- meedenken over grote problemen met het vak
- andere officiële zaken
- administratie na afloop van het vak
Laptophelpdesk: voor moeilijke installatieproblemen.
- laptop werkt niet meer
- installatieproblemen voor de benodigde software
- loop langs tussen 10 en 16 uur in lokaal B1.19A
- vanaf 23 september alleen nog dinsdag en donderdag 12–13 uur in B1.27A
Kom je helemaal niet verder en heb je even geen hulp?
Juist even niet aan de opdracht werken kan je verder helpen!
-
Neem een halfuurtje echt even afstand van je computer; dit helpt je brein afstand nemen van het probleem. Met een frisse blik kom je dan toch weer verder.
-
Ga even door met de volgende opdracht van de module om te kijken hoe je daar mee gaat.
Leerdoelen
Wat willen we dat je kunt aan het einde van deze cursus?
- Je kunt een omschrijving van een programma omzetten naar werkende code
- Je kunt bijgeleverde bibliotheken gebruiken in je eigen programma’s
- Je kunt code overzichtelijk en beter leesbaar maken door een consistente stijl toe te passen
- Je kunt programmeerfouten opsporen en verbeteren
- Je kunt uitleggen hoe je een aantal numerieke technieken als programma kunt implementeren
Opdrachten
Vanaf de eerste dag van de cursus ga je oefenen met het omzetten van een idee voor een programma naar werkende Python-code. Per module doe je eerst wat kleine oefeningen om de nieuwe programmeerelementen onder de knie te krijgen en ga je daarna aan de slag met wat grotere opdrachten. Aan het eind van de module lever je alles digitaal in.
Voor elke module kun je een cijfer tussen 1 en 10 krijgen. De beoordeling bestaat uit meerdere delen:
-
Omvang — (telt voor 5/9 deel) Heb je alle opdrachten geprobeerd of heb je dingen overgeslagen? Heb je alles precies gedaan zoals de omschrijving vereist? Met
checkpy
bepalen we hoe groot het aandeel correcte opdrachten is. -
Stijl — (telt voor 3/9 deel) Hoe ordelijk en leesbaar is je code? Je assistent kijkt je werk na en beoordeelt de kwaliteit. De wijze van beoordelen staat hieronder.
De stijl wordt beoordeeld met hulp van een aantal aspecten, die je in de Stijlgids kunt vinden. Om te helpen het begrip van deze aspecten te ontwikkelen krijg je na elke module bovendien feedback op de toepassing hiervan. De beoordeling gaat vervolgens zo:
- uitzonderlijk goede kwaliteit op basis van een doordacht ontwerp
- zeer goede kwaliteit, beperkt ruimte voor verbetering
- degelijke kwaliteit op de genoemde aspecten, met ruimte voor verbetering
- net voldoende aandacht voor de genoemde aspecten, erg veel ruimte voor verbetering
- enige zichtbare aandacht voor een beperkt aantal aspecten
- onvoldoende zichtbare aandacht voor de kwaliteitsaspecten
-
Uitdaging — (telt voor 1/9 deel) Als je de uitdagende opdracht hebt gedaan levert dit je je laatste punt voor de module op.
Formule voor module 1 t/m 3: checks / 100 * 5 + stijl / 6 * 3 + uitdagend + 1
Dagelijks ritme
De opdrachten zijn ingedeeld in blokken van een dagdeel. De bedoeling is dan ook dat je voor elk blok ruim een uur of vier aan werk bent. Als je niet alles af hebt aan het eind van het practicum maak dan de opdracht thuis af. Kom je in de problemen? Neem dan contact op!
Deadline inleveren opdrachten
Er zijn twee deadlines voor het inleveren van opdrachten: eerst lever
je van zoveel mogelijk opdrachten jouw oplossing in, waarna deze
automatisch wordt gecontroleerd op werking met checkpy
. We
controleren hierbij dus of je code het juiste antwoord geeft. Daarna
volgt een werkcollege waarin je een code review gaat doen, waarbij de
focus ligt op de stijl van het programma. Je kunt daarna een
verbeterde versie inleveren van dezelfde programma’s. Let wel, het
gaat hierbij om de stijl van het programma. Er wordt dus niet opnieuw
naar de antwoorden van je code gekregen. Deze tweede versie wordt door de assistenten nagekeken.
opdracht | deadline | verbeterd |
---|---|---|
module 1 | ma 16 sep 10:59 | wo 18 sep 19:59 |
module 2 | ma 30 sep 10:59 | wo 2 okt 19:59 |
module 3 | ma 14 okt 10:59 | wo 16 okt 19:59 |
module 4 | ma 21 okt 10:59 | - |
Tentamen
Hoewel het niet toegestaan is zou het mogelijk kunnen zijn om ongemerkt mee te liften met een medestudent tijdens het maken van de practica. Doe dit alsjeblieft niet. De regels wat betreft plagiaat zijn erg streng en we voeren controles uit, dus kom gewoon langs als je moeite hebt met de stof en wat extra hulp nodig hebt, dan helpen we je. Om zeker te zijn dat je zelfstandig de leerdoelen van het vak hebt gehaald sluiten we het vak af met een (individueel) tentamen. Het tentamen telt voor 60% mee voor je eindcijfer en om het vak te halen is er een extra eis dat het tentamen zelf ook met een voldoende afgesloten moet worden.
Eindcijfer
Je krijgt een eindcijfer voor dit vak als je:
- elke module op tijd en naar verwachting hebt ingeleverd;
- een voldoende hebt gehaald voor het tentamen.
Het eindcijfer wordt dan als volgt berekend:
onderdeel | gewicht |
---|---|
module 1 | 10% |
module 2 | 10% |
module 3 | 10% |
module 4 | 10% |
tentamen | 60% |
Samenwerken, fraude en plagiaat
Samenwerken tijdens dit vak is niet toegestaan. Dit vak heeft als doel jouw persoonlijke programmeervaardigheid te ontwikkelen. Bij vervolgvakken is het vaak wél mogelijk om samen te programmeren.
Tijdens de practica is het natuurlijk prima als je de opgave (en strategie) bespreekt met de student die naast je zit. Het is echter niet toegestaan om een regel code van je medestudenten of van internet over te nemen.
Een belangrijk verschil dus: je kunt discussiëren over de manier waarop je een probleem aanpakt, maar je kopieert niet de code van anderen. Om het jezelf niet te makkelijk te maken, is het slim om niet op het scherm van je buren te kijken.
Als je merkt dat je zodanig aan het overleggen bent dat je dezelfde code krijgt als een medestudent, is het hoog tijd om de assistent om hulp te vragen!
Kom je in tijdnood? Bespreek het even met de docenten. We willen het graag zo oplossen dat je het vak zelfstandig kunt halen. Programmeren is echt iets dat je zelf even onder de knie moet krijgen.
Plagiaatregeling
Fraude volgens de UvA: “Het handelen of nalaten van een student waardoor een juist oordeel over zijn kennis, inzicht en vaardigheden geheel of gedeeltelijk onmogelijk wordt.”
We gebruiken bij de beoordeling van de opdrachten plagiaatdetectie. Als blijkt dat je opgave geheel of gedeeltelijk overeenkomt met een andere inzending of een uitwerking van internet, dan zijn er twee mogelijkheden.
-
Er is een bronvermelding: in dat geval voldoe je niet aan de eis van het zelfstandig maken van de opgaven en wordt je inzending afgekeurd. Omdat dit meestal na de deadline is betekent dat doorgaans dat je het vak dit jaar niet kunt afronden.
-
Er is geen bronvermelding: in dat geval rapporteren we aan de examencommissie welke inzendingen overeenkomen, waarna de commissie beslist over te nemen maatregelen.
Zie ook:
- de fraude- en plagiaatwebsite, en
- de onderwijs- en examenregeling van Natuur- en Sterrenkunde.