Studiewijzer

Inleiding programmeren voor Natuur- en Sterrenkunde
September 2020

Python

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 opgaves die digitaal ingeleverd moeten worden.

Let op! De toetsing voor dit vak ligt nog niet vast. Duidelijk is dat je alle opdrachten ingeleverd moet hebben om het vak te kunnen halen. Daar zit het meeste werk in. Voor de andere delen van de toetsing (tentamen) wordt nog een alternatief gezocht.

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 uit je groepje. 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 intellectueel werk is. Het beste is dus om medestudenten in te schakelen in de fase vóór het echte programmeren.

Ed: altijd beschikbaar, de belangrijkste plek voor hulp. Klik op de link onderaan deze site om naar Ed te gaan (een uitnodiging volgt na het eerste college).

  • vragen over wat er in de opdracht bedoeld wordt
  • technische vragen over programmeren en bugs
  • medestudenten en assistenten beantwoorden je vragen

Assistentie: direct contact met een assistent, voor moeilijk te formuleren vragen. Klik op de ? rechtsbovenaan om jezelf in de rij te plaatsen.

  • hulp via een videogesprek waar je je scherm kunt delen
  • je weet niet waar te beginnen of een onvindbare bug
  • 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: neem direct contact op met Zoom via de link die in de mededelingen staat.

  • laptop werkt niet meer
  • installatieproblemen voor de benodigde software
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 — 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 — 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:

    1. uitzonderlijk goede kwaliteit op basis van een doordacht ontwerp
    2. zeer goede kwaliteit, beperkt ruimte voor verbetering
    3. degelijke kwaliteit op de genoemde aspecten, met ruimte voor verbetering
    4. net voldoende aandacht voor de genoemde aspecten, erg veel ruimte voor verbetering
    5. enige zichtbare aandacht voor een beperkt aantal aspecten
    6. onvoldoende zichtbare aandacht voor de kwaliteitsaspecten

Omvang en stijl tellen evenveel mee, en samen kun je er een 9 mee halen.

  • Extra — als je de extra opdracht hebt gedaan levert dit je je laatste punt voor de module op.

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

De deadline voor het inleveren van alle code is voor elke module op de maandagavond in de week nadat de module afgesloten is. Op dat moment wordt het ingeleverde werk verdeeld onder de nakijkers en gaan zij aan de slag. Er is geen mogelijkheid om het later in te leveren, dus lever sowieso in wat je hebt! Om te zorgen dat je de assistent alle vragen kan stellen en hem/haar kan vragen je code te bekijken is het natuurlijk verstandiger om te zorgen dat je alles af hebt aan het eind van het laatste practicum.

opdracht deadline
module 1 ma 14 sep 10:59
module 2 ma 28 sep 10:59
module 3 ma 12 okt 10:59
module 4 ma 19 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 50% 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 12,5%
module 2 12,5%
module 3 12,5%
module 4 12,5%
tentamen 50%

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: