Banner image by Sebastian Niedlich on Flickr, CC BY-NC-SA 2.0
Programmeermethoden NA, Najaar 2016
Docent: dr. K. F. D. Rietveld
Practicumassistenten: Koen Griffioen, Hanjo Boekhout, Pim Bax,
Jelmer de Boer.
Beschrijving
Tijdens het college Programmeermethoden NA zal de programmeertaal Python uitgebreid, maar niet geheel, worden behandeld. Naast het leren programmeren in een concrete programmeertaal staat de studie van algoritmen centraal; zo wordt er onder meer aandacht besteed aan sorteeralgoritmen. Principes uit de software engineering komen aan bod. Tevens zal er aandacht worden besteed aan het gebruik van Python in een wetenschappelijk context: het doen van numeriek rekenmerk, dataverwerking en analyse, en het maken van plots van hoge kwaliteit.
Het vak heeft voor ogen elke student de basisbeginselen en concepten van programmeren mee te geven, waaronder een ‘working knowledge’ van Python. Een student die dit vak behaald heeft zal dan in zijn verdere studieloopbaan eigen ontwikkelde computerprogramma’s Python of een andere taal kunnen gebruiken tijdens onderwijs of onderzoek.
Examinering
De beoordeling geschiedt op basis van een schriftelijk tentamen dat voor tweederde het eindcijfer bepaalt, en een programmeerpracticum dat voor eenderde meetelt. Het programmeerpracticum bestaat uit drie opdrachten. Deze opdrachten worden apart becijferd en hiervan wordt het gemiddelde genomen om het cijfer voor het programmeerpracticum te bepalen. Zowel het tentamencijfer als het programmeerpracticumcijfer moeten voldoende zijn (tenminste 5.5) om te kunnen slagen voor het vak.
Het eindcijfer wordt als volgt berekend:
P = (O1 + O2 + O3) / 3.0 Eindcijfer = (P + 2T) / 3.0, afgerond naar het dichtstbijzijnde getal uit {1,2,3,4,5, 6,6.5,7,7.5,8,8.5,9,9.5,10} Hierbij: Ox: Opdracht x, x = 1,2,3; P: Programmeercijfer; T: TentamencijferLet op: als het cijfer van het schriftelijk tentamen onvoldoende is, is dit meteen het eindcijfer! En als dit wel voldoende is, maar het programmeerwerk is niet af, wordt er nog geen eindcijfer opgemaakt!
Literatuur
Dictaten
- Dictaat Computers en Programmeren
- Het dictaat met een beknopte behandeling van Python. Versie november 2016, met nieuwe secties over globale variabelen, OOP, algoritmen en herordening van de sectie over lijsten. De voorgaande versie is hier nog te downloaden..
Slides hoorcolleges
- Hoorcollege 1: Introductie, Python, UNIX
- Hoorcollege 2: Types
- Hoorcollege 3: Controlestructuren
- Hoorcollege 4: Files en functies
- Hoorcollege 5: Functies (vervolg) en lijsten
- Hoorcollege 6: Lijsten (incl. wijzigingen naar aanleiding van vragen tijdens hoorcollege).
- Hoorcollege 7: OOP en modules
- Hoorcollege 8: NumPy
- Hoorcollege 9: NumPy (vervolg) & matplotlib
- Hoorcollege 10: NumPy (vervolg), iPython, Python module showcase
Voor de werkcolleges, zie het weekschema.
Tentamenstof
Onder de tentamenstof valt al hetgeen besproken tijdens de hoorcolleges. Zie de hoorcollegesheets en het dictaat hierboven.
En zie de oefententamens hieronder. Er wordt altijd wel iets gevraagd over sorteren en zoeken, functieparameters en globale variabelen, lijsten, 2-dimensionale arrays (incl. slicing en indexing daarvan).
Oefententamen
Oefenopgaven Werkcollege 9 en de uitwerking.
Oefententamen (gebaseerd op het C++ tentamen voor studenten Natuur/sterrenkunde van november 2015). Uitwerking.
Tentamen 16 december 2016, Uitwerking.
Links en referenties
Websites
- Officiële website van Python
- Python Tutorial van python.org
- Python Library Reference, hier staan alle modules van de Python standaard bibliotheek beschreven.
- Visualize Python, deze website kan het uitvoeren van (simpele) Python programma's grafisch weergeven. Erg handig als je moeite hebt van het begrijpen van Python datastructuren!
- Scipy Lecture Notes tutorial en oefeningen voor NumPy, Scipy en matplotlib.
Extra's
Boeken
- Dr. Eric Ayars, Computational Physics With Python (PDF, 7.55MB, 194 pagina's).
- Computational Physics With Python, een aantal hoofdstukken van dit boek zijn gratis te downloaden.
- Doing Math With Python
- Effective Computation in Physics
Vakken waarbij Python wordt gebruikt
Bij verschillende vakken in de studies Natuurkunde en Sterrenkunde wordt gebruik gemaakt van Python. Hier worden de basisprincipes van Python als bekend verondersteld en zal je Python gaan gebruiken als gereedschap bij het doen van onderzoek.