46120 Videnskabelig Programmering for Vindenergi

2024/2025

Kursusinformation
Scientific Programming for Wind Energy
Engelsk
5
Kandidat
Retningsspecifikt kursus (MSc), Sustainable Energy Systems
Retningsspecifikt kursus (MSc), Sustainable Energy Technologies
F2B (tors 8-12)
Campus Lyngby
Kurset undervises hybrid. Studerende kan deltage på Lyngby Campus, Risø Campus eller online.
Forelæsninger og gruppearbejde på opgaver (3-4 studerende pr. gruppe)
13-uger
F2B
Skriftlig eksamen og bedømmelse af rapport(er)
Den individuelle karakter bedømmes som en kumulativ evaluering af bidrag til det final programmeringsprojekt, der indsendes via et GitLab-repository, og en individuel skriftlig quiz.
Skriftlig eksamen: 1 time
Ingen hjælpemidler
bestået/ikke bestået , intern bedømmelse
02160/02161/02162
Jenni Rinker , Lyngby Campus, Bygning 403 , rink@dtu.dk
Ju Feng , Lyngby Campus, Bygning 403 , jufen@dtu.dk
46 Institut for Vind og Energisystemer
I studieplanlæggeren

Studerende fra Vindenergi og Bæredygtig Energi kandidat prioriteres.
Dette kursus giver den studerende en mulighed for at lave eller forberede et projekt som kan deltage i DTUs studenterkonference om bæredygtighed, klimateknologi og miljø (GRØN DYST). Se mere på http://www.groendyst.dtu.dk
Overordnede kursusmål
At skrive kode til at løse komplekse videnskabelige og tekniske problemer er blevet en vigtig færdighed for forskere og ingeniører. Dette kursus hjælper studerende med at udvikle denne færdighed gennem: at lære kerneprincipper og bedste praksis for programmering; at øve brugen af grundlæggende softwareudviklingsværktøjer og teknikker som versionskontrol, pakning og arkitekturdesign; at udnytte videnskabelige beregningsværktøjer, der ofte bruges i videnskabelig Python, som numpy, matplotlib og scipy; at udvikle, evaluere og kommunikere Python-biblioteker til vindenergiapplikationer gennem praktiske gruppeprojekter, peer code reviews og kodepræsentationer. Gennem dette kursus vil den studerendes materielle, kognitive og sociale computerfærdigheder i høj grad blive forbedret sammen med evnen til at formulere computerproblemer inden for vindenergi og løse dem med programmering.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • Bruge Python-pakker, der er almindelige for vindenergi, såsom numpy, matplotlib, scipy, PyWake, TOPFARM, xarray, pandas osv.
  • Manipulere data, der er gemt i de mest almindelige vindenergiformater, og demonstrere færdigheder som at indlæse fra/gemme til fil, udføre beregninger og visualisere resultater.
  • Designe og publicere en Python-pakke til en vindenergi-applikation med tests og dokumentation.
  • Samarbejde med et team om en kodebase, der er hostet på GitLab, og demonstrere grundlæggende git-færdigheder som at tilføje, committe, pushe og branching.
  • Udvikle, debugge, og linte kode med VS Code og relateret udvidelser.
  • Kommunikere kode mundtligt og skriftligt via diagrammer, kommentarer, commit-meddelelser og dokumentation.
  • Kritisk analysere kode for god kodningspraksis såsom modularitet, vedligeholdelighed, overholdelse af stilistiske konventioner osv.
  • Skrive tests til videnskabelig kode.
  • Eksekvere kode på en computerklynge.
Kursusindhold
Indholdet i dette kursus er egnet til studerende, der har nogen eller ingen erfaring med programmering, og som ønsker at tage andre kurser på DTU Wind. Kurset bruger programmeringssproget Python. I løbet af kurset arbejder studerende i små grupper med øvelser under undervisning, ugentlige opgaver og to projekter. En studerende skal bestå det første projekt for at indsende det andet projekt. Den endelige karakter evalueres på baggrund af det andet projekt. Kommunikation om videnskabelig kode øves ved ugentlige gruppe-til-gruppe-præsentationer af løsningerne på ugens opgave.

I den første del af kurset lærer de studerende, hvordan man samarbejder i grupper om kode ved hjælp af versionsstyringssoftwaren git/GitLab, som bruges hele semesteret. Derefter bruger de studerende de grundlæggende pakker til videnskabelig Python-programmering (numpy, matplotlib, scipy) til at øve grundlæggende færdigheder som numerisk array-manipulation, indlæsning/​lagring/​visualisering af data og skrivning/import af funktioner. Disse færdigheder cementeres i det første projekt, hvor grupperne beregner en simpel vindmøllemodels tidsmarcherende respons på forskellige turbulente vindforhold og visualiserer de resulterende statistikker.

Når det første projekt er afleveret, præsenteres mere avancerede emner. Dette inkluderer mere abstrakte koncepter fra generel programmering - såsom objektorienteret praksis, design af pakkearkitekturer og linting - samt mere vindspecifikke emner - f.eks. pakker og dataformater, der almindeligvis bruges i vindenergi. Kurset slutter med det afsluttende projekt, hvor de studerende arbejder individuelt eller i grupper for at udgive en Python-pakke til vindenergi, komplet med test og dokumentation. Der er en liste over foruddefinerede afsluttende projekter, men de studerende kan indsende en anmodning om et andet projekt, hvis de har en idé, de gerne vil forfølge.
Sidst opdateret
02. maj, 2024